cfit
- class ModelCfitExtended(amp, w_bkg=0.001, bg_f=None, eff_f=None)[source]
Bases:
Model
- nll(data, mcdata, weight: Tensor = 1.0, batch=None, bg=None, mc_weight=None)[source]
Calculate NLL.
\[\begin{split}-\ln L = -\sum_{x_i \in data } w_i \ln P(x_i;\theta_k) \\ P(x_i;\theta_k) = (1-f_{bg})Amp(x_i; \theta_k) + f_{bg} Bg(x_{i};\theta_k)\end{split}\]\[-\ln L_{2} = -\ln ( L \lambda^{N_{data}} / {N_{data}}! e^{-\lambda}) = -\ L - N_{data} \ln \lambda + \lambda + C\]\[\lambda = 1/(1-f_{bg}) \int Amp(x_i; \theta_k) d \Phi\]- Parameters:
data – Data array
mcdata – MCdata array
weight – Weight of data???
batch – The length of array to calculate as a vector at a time. How to fold the data array may depend on the GPU computability.
bg – Background data array. It can be set to
None
if there is no such thing.
- Returns:
Real number. The value of NLL.
- nll_grad_batch(data, mcdata, weight, mc_weight)[source]
- \[P = (1-frac) \frac{amp(data)}{\sum amp(phsp)} + frac \frac{bg(data)}{\sum bg(phsp)}\]\[nll = - \sum log(p)\]\[\frac{\partial nll}{\partial \theta} = -\sum \frac{1}{p} \frac{\partial p}{\partial \theta} = - \sum \frac{\partial \ln \bar{p}}{\partial \theta } +\frac{\partial nll}{\partial I_{sig} } \frac{\partial I_{sig} }{\partial \theta} +\frac{\partial nll}{\partial I_{bg}}\frac{\partial I_{sig}}{\partial \theta}\]
- nll_grad_hessian(data, mcdata, weight=1.0, batch=24000, bg=None, mc_weight=1.0)[source]
The parameters are the same with
self.nll()
, but it will return Hessian as well.\[\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial y_k}{\partial x_i} \frac{\partial^2 f}{\partial y_k \partial y_l} \frac{\partial y_l}{\partial x_j} + \frac{\partial f}{\partial y_k} \frac{\partial^2 y_k}{\partial x_i \partial x_j}\]\[y = \{x_i; I_{sig}, I_{bg}\}\]\[\frac{\partial y_k }{\partial x_i} = (\delta_{ik};\frac{\partial I_{sig}}{\partial x_i}, \frac{\partial I_{bg}}{\partial x_i})\]- Return NLL:
Real number. The value of NLL.
- Return gradients:
List of real numbers. The gradients for each variable.
- Return Hessian:
2-D Array of real numbers. The Hessian matrix of the variables.
- class Model_cfit(amp, w_bkg=0.001, bg_f=None, eff_f=None, resolution_size=1)[source]
Bases:
Model
- nll(data, mcdata, weight: Tensor = 1.0, batch=None, bg=None, mc_weight=None)[source]
Calculate NLL.
\[\begin{split}-\ln L = -\sum_{x_i \in data } w_i \ln P(x_i;\theta_k) \\ P(x_i;\theta_k) = (1-f_{bg})Amp(x_i; \theta_k) + f_{bg} Bg(x_{i};\theta_k)\end{split}\]- Parameters:
data – Data array
mcdata – MCdata array
weight – Weight of data???
batch – The length of array to calculate as a vector at a time. How to fold the data array may depend on the GPU computability.
bg – Background data array. It can be set to
None
if there is no such thing.
- Returns:
Real number. The value of NLL.
- nll_grad_batch(data, mcdata, weight, mc_weight)[source]
- \[P = (1-frac) \frac{amp(data)}{\sum amp(phsp)} + frac \frac{bg(data)}{\sum bg(phsp)}\]\[nll = - \sum log(p)\]\[\frac{\partial nll}{\partial \theta} = -\sum \frac{1}{p} \frac{\partial p}{\partial \theta} = - \sum \frac{\partial \ln \bar{p}}{\partial \theta } +\frac{\partial nll}{\partial I_{sig} } \frac{\partial I_{sig} }{\partial \theta} +\frac{\partial nll}{\partial I_{bg}}\frac{\partial I_{sig}}{\partial \theta}\]
- nll_grad_hessian(data, mcdata, weight=1.0, batch=24000, bg=None, mc_weight=1.0)[source]
The parameters are the same with
self.nll()
, but it will return Hessian as well.\[\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial y_k}{\partial x_i} \frac{\partial^2 f}{\partial y_k \partial y_l} \frac{\partial y_l}{\partial x_j} + \frac{\partial f}{\partial y_k} \frac{\partial^2 y_k}{\partial x_i \partial x_j}\]\[y = \{x_i; I_{sig}, I_{bg}\}\]\[\frac{\partial y_k }{\partial x_i} = (\delta_{ik};\frac{\partial I_{sig}}{\partial x_i}, \frac{\partial I_{bg}}{\partial x_i})\]- Return NLL:
Real number. The value of NLL.
- Return gradients:
List of real numbers. The gradients for each variable.
- Return Hessian:
2-D Array of real numbers. The Hessian matrix of the variables.
- class Model_cfit_cached(amp, w_bkg=0.001, bg_f=None, eff_f=None)[source]
Bases:
Model_cfit
- nll_grad_batch(data, mcdata, weight, mc_weight)[source]
- \[P = (1-frac) \frac{amp(data)}{\sum amp(phsp)} + frac \frac{bg(data)}{\sum bg(phsp)}\]\[nll = - \sum log(p)\]\[\frac{\partial nll}{\partial \theta} = -\sum \frac{1}{p} \frac{\partial p}{\partial \theta} = - \sum \frac{\partial \ln \bar{p}}{\partial \theta } +\frac{\partial nll}{\partial I_{sig} } \frac{\partial I_{sig} }{\partial \theta} +\frac{\partial nll}{\partial I_{bg}}\frac{\partial I_{sig}}{\partial \theta}\]