diff --git a/content/method/method.tex b/content/method/method.tex index 783f0a3..a6aee0b 100644 --- a/content/method/method.tex +++ b/content/method/method.tex @@ -348,15 +348,15 @@ Firstly, we must estimate the parameters to fit the gaussian distributions to the true and false populations of the score output. \begin{equation} - \mu_0 = \frac{\sum_{\mathbf{x}_0 \in \mathcal{B}_0}{f_{\theta}(\mathbf{x}_0)}}{|\mathcal{B}_0|} + \mu_0 = \frac{1}{|\mathcal{B}_0|}\sum_{\mathbf{x}_j \in \mathcal{B}_0}{f_{\theta}(\mathbf{x}_j)} \qquad - \mu_1 = \frac{\sum_{\mathbf{x}_0 \in \mathcal{B}_1}{f_{\theta}(\mathbf{x}_1)}}{|\mathcal{B}_1|} + \mu_1 = \frac{1}{|\mathcal{B}_1|}\sum_{\mathbf{x}_j \in \mathcal{B}_1}{f_{\theta}(\mathbf{x}_j)} \end{equation} \begin{equation} - \sigma_0^2 = \frac{1}{|\mathcal{B}_0|}\sum_{\mathbf{x}_0 \in \mathcal{B}_0}(\mathbf{x}_0 - \mu_0)^2 + \sigma_0^2 = \frac{1}{|\mathcal{B}_0|}\sum_{\mathbf{x}_j \in \mathcal{B}_0}(f_\theta(\mathbf{x}_j) - \mu_0)^2 \qquad - \sigma_1^2 = \frac{1}{|\mathcal{B}_1|}\sum_{\mathbf{x}_1 \in \mathcal{B}_1}(\mathbf{x}_1 - \mu_1)^2 + \sigma_1^2 = \frac{1}{|\mathcal{B}_1|}\sum_{\mathbf{x}_j \in \mathcal{B}_1}(f_\theta(\mathbf{x}_j) - \mu_1)^2 \end{equation} Once these parameters are estimated, we can then define our ROLL objective as required. @@ -369,7 +369,11 @@ and its inverse (quantile function) is: \[ F^{-1}(p) = \mu + \sigma\sqrt{2}\,\text{ierf}(2p - 1) \] -where TODO EXPLAIN ERF AND IERF. Plugging into the general ROLL framework, the threshold +where $\operatorname{erf}(x) = \frac{2}{\sqrt{\pi}}\int_0^x e^{-t^2}\,\mathrm{d}t$ is the Gauss +error function and $\operatorname{ierf}$ denotes its functional inverse, satisfying +$\operatorname{ierf}(\operatorname{erf}(x)) = x$. Neither has a closed form, but both are +available in standard numerical libraries (e.g.\ \texttt{torch.erf} and +\texttt{torch.erfinv}). Plugging into the general ROLL framework, the threshold $\tau$ achieving FPR $= \alpha$ and the resulting loss are: \begin{align} \tau &= \mu_0 + \sigma_0\sqrt{2}\,\text{ierf}(2\alpha - 1) \nonumber \\ @@ -395,7 +399,7 @@ Firstly, for $y_i = 1$. \] \[ - = \frac{1}{\sqrt{2}\sigma_1}\exp\left(\frac{\hat{F}_0^{-1}(\alpha) - \mu_1}{\sqrt{2}\sigma_1}\right) + = -\frac{1}{\sigma_1\sqrt{2\pi}}\exp\!\left(-\frac{(\hat{F}_0^{-1}(\alpha) - \mu_1)^2}{2\sigma_1^2}\right) \] \[ @@ -408,28 +412,75 @@ Firstly, for $y_i = 1$. \] \[ - = \frac{\hat{F}_0^{-1}(\alpha)-\mu_1}{\sqrt{2\pi}\sigma_1^2} \exp\left( - {\left( \frac{\hat{F}_0^{-1}(\alpha) - \mu_1}{\sqrt{2}\sigma_1} \right)}^2 \right) + = \frac{\mu_1 - \hat{F}_0^{-1}(\alpha)}{\sigma_1^2\sqrt{2\pi}} \exp\!\left( -\frac{(\hat{F}_0^{-1}(\alpha) - \mu_1)^2}{2\sigma_1^2} \right) \] \[ - \frac{\partial \sigma_1}{\partial f_{\theta}(\mathbf{x}_i)} = \frac{\mathbf{x}_i - \mu_1}{|\mathcal{B}_1| \sigma_1} + \frac{\partial \sigma_1}{\partial f_{\theta}(\mathbf{x}_i)} = \frac{f_\theta(\mathbf{x}_i) - \mu_1}{|\mathcal{B}_1| \sigma_1} \] -The final derivation, given $y_i = 1$, is given as: +Combining via the chain rule, the gradient for $y_i = 1$ is: +\begin{equation} + \dfrac{\partial \hat{F}_1(\hat{F}_0^{-1}(\alpha))}{\partial f_{\theta}(\mathbf{x}_i)} + = -\frac{1}{|\mathcal{B}_1|\,\sigma_1\sqrt{2\pi}} + \exp\!\left(-\frac{(\tau - \mu_1)^2}{2\sigma_1^2}\right) + \left(1 + \frac{(\tau - \mu_1)(f_\theta(\mathbf{x}_i) - \mu_1)}{\sigma_1^2}\right) + \label{eq:gauss-grad-y1} +\end{equation} +where $\tau = \hat{F}_0^{-1}(\alpha) = \mu_0 + \sigma_0\sqrt{2}\,\operatorname{ierf}(2\alpha - 1)$. +Given $y_i = 0$, the score $f_\theta(\mathbf{x}_i)$ affects the loss only through the threshold +$\tau = \hat{F}_0^{-1}(\alpha)$, which depends on $\mu_0$ and $\sigma_0$. +Applying the chain rule: \[ - \dfrac{\partial \hat{F}_1(\hat{F}_0^{-1}(\alpha))}{\partial f_{\theta}(\mathbf{x}_i)} = \dfrac{\partial \hat{F}_1(\hat{F}_0^{-1}(\alpha))}{\partial \mu_1} \cdot \frac{1}{|\mathcal{B}_1|} + - \dfrac{\partial \hat{F}_1(\hat{F}_0^{-1}(\alpha))}{\partial \sigma_1} \cdot \frac{\partial \sigma_1}{\partial f_{\theta}(\mathbf{x}_i)} = \frac{\mathbf{x}_i - \mu_1}{|\mathcal{B}_1| \sigma_1} + \frac{\partial \hat{F}_1(\tau)}{\partial f_\theta(\mathbf{x}_i)} + = \underbrace{\frac{\partial \hat{F}_1(\tau)}{\partial \tau}}_{\text{PDF of class 1 at }\tau} + \cdot \frac{\partial \tau}{\partial f_\theta(\mathbf{x}_i)} \] -TODO - above equation is based off of mathexchange derivation. Link and reference properly! - -Given $y_i = 0$ we first must derive: - +The first factor is the Gaussian PDF evaluated at $\tau$: \[ - \dfrac{\partial \hat{F}_1(\hat{F}_0^{-1}(\alpha))}{\partial \hat{F}_0^{-1}(\alpha)} = \frac{1}{\sqrt{2 \pi \sigma_1^2}}\exp\left( -{\left( \frac{\hat{F}_0^{-1}(\alpha) - \mu_1}{2\sigma_1^2}\right)}^2\right) + \frac{\partial \hat{F}_1(\tau)}{\partial \tau} + = \frac{1}{\sigma_1\sqrt{2\pi}}\exp\!\left(-\frac{(\tau - \mu_1)^2}{2\sigma_1^2}\right) \] -TODO finish somehow - later! +For the second factor, $\tau = \mu_0 + \sigma_0\sqrt{2}\,\operatorname{ierf}(2\alpha - 1)$, so +$\frac{\partial \tau}{\partial \mu_0} = 1$ and +$\frac{\partial \tau}{\partial \sigma_0} = \sqrt{2}\,\operatorname{ierf}(2\alpha - 1) = \frac{\tau - \mu_0}{\sigma_0}$. +Combined with $\frac{\partial \mu_0}{\partial f_\theta(\mathbf{x}_i)} = \frac{1}{|\mathcal{B}_0|}$ and +$\frac{\partial \sigma_0}{\partial f_\theta(\mathbf{x}_i)} = \frac{f_\theta(\mathbf{x}_i) - \mu_0}{|\mathcal{B}_0|\sigma_0}$: +\[ + \frac{\partial \tau}{\partial f_\theta(\mathbf{x}_i)} + = \frac{1}{|\mathcal{B}_0|}\left(1 + \frac{(\tau - \mu_0)(f_\theta(\mathbf{x}_i) - \mu_0)}{\sigma_0^2}\right) +\] + +Therefore, the gradient for $y_i = 0$ is: +\begin{equation} + \dfrac{\partial \hat{F}_1(\hat{F}_0^{-1}(\alpha))}{\partial f_\theta(\mathbf{x}_i)} + = \frac{1}{|\mathcal{B}_0|\,\sigma_1\sqrt{2\pi}} + \exp\!\left(-\frac{(\tau - \mu_1)^2}{2\sigma_1^2}\right) + \left(1 + \frac{(\tau - \mu_0)(f_\theta(\mathbf{x}_i) - \mu_0)}{\sigma_0^2}\right) + \label{eq:gauss-grad-y0} +\end{equation} + +\paragraph{Combined gradient.} + +Substituting \Cref{eq:gauss-grad-y1} and \Cref{eq:gauss-grad-y0} into \Cref{eq:roll-gradient}, +and letting $\tau = \hat{F}_0^{-1}(\alpha) = \mu_0 + \sigma_0\sqrt{2}\,\operatorname{ierf}(2\alpha-1)$: + +\begin{equation} + \frac{\partial \mathcal{L}_{\text{ROLL-TPR@FPR}}^{\text{GAUSSIAN}}}{\partial f_\theta(\mathbf{x}_i)} = + \begin{cases} + \dfrac{-1}{|\mathcal{B}_1|\,\sigma_1\sqrt{2\pi}} + \exp\!\left(-\dfrac{(\tau-\mu_1)^2}{2\sigma_1^2}\right) + \!\left(1 + \dfrac{(\tau-\mu_1)(f_\theta(\mathbf{x}_i)-\mu_1)}{\sigma_1^2}\right) + & \text{if } y_i = 1 \\[18pt] + \dfrac{1}{|\mathcal{B}_0|\,\sigma_1\sqrt{2\pi}} + \exp\!\left(-\dfrac{(\tau-\mu_1)^2}{2\sigma_1^2}\right) + \!\left(1 + \dfrac{(\tau-\mu_0)(f_\theta(\mathbf{x}_i)-\mu_0)}{\sigma_0^2}\right) + & \text{if } y_i = 0 + \end{cases} + \label{eq:gauss-grad-combined} +\end{equation} \subsection{Beta ROLL} \label{sec:roll-beta}