From 96d74ef901998bd098b7d4b1e67395e00f8bfed4 Mon Sep 17 00:00:00 2001 From: Aner Zakobar Date: Fri, 3 Jul 2026 22:15:05 +0300 Subject: [PATCH] Improvements! And another figure. --- content/method/figures/roll_principle.png | Bin 0 -> 85476 bytes content/method/figures/roll_principle.py | 125 ++++++++++++++++++++++ content/method/method.tex | 17 +++ flake.nix | 2 +- 4 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 content/method/figures/roll_principle.png create mode 100644 content/method/figures/roll_principle.py diff --git a/content/method/figures/roll_principle.png b/content/method/figures/roll_principle.png new file mode 100644 index 0000000000000000000000000000000000000000..630ea65755dc40f993b663d005727ad65e3106ce GIT binary patch literal 85476 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≪`=kQ0SbG* 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 j^}p|7{1=k4k>!", color="black", + lw=0.8, mutation_scale=10)) +ax2.text(x_bracket + 0.12, (1.0 + F1_tau) / 2, + f"TPR\n= {tpr*100:.0f}%", + fontsize=7.5, va="center", ha="left", color="black") + +ax2.set_ylabel("CDF", fontsize=9) +ax2.set_xlabel(r"Score $f_\theta(\mathbf{x})$", fontsize=9) +ax2.set_yticks([0.0, 0.25, 0.50, 0.75, 1.0]) +ax2.set_yticklabels(["0", "0.25", "0.5", "0.75", "1"], fontsize=7.5) +ax2.set_xlim(x[0] - 0.3, x[-1]) +ax2.legend(fontsize=7.5, loc="upper left", framealpha=0.88) + +for ax in (ax1, ax2): + ax.tick_params(labelsize=8) + ax.spines[["top", "right"]].set_visible(False) + +fig.savefig(f"{OUT_DIR}/roll_principle.pdf", bbox_inches="tight") +fig.savefig(f"{OUT_DIR}/roll_principle.png", bbox_inches="tight", dpi=180) +print(f"Saved to {OUT_DIR}/roll_principle.{{pdf,png}}") +print(f"tau={tau:.3f} F0(tau)={F0_tau:.3f} F1(tau)={F1_tau:.3f} TPR={tpr:.3f}") diff --git a/content/method/method.tex b/content/method/method.tex index 673c343..42a51cc 100644 --- a/content/method/method.tex +++ b/content/method/method.tex @@ -251,6 +251,23 @@ of the two populations, turning a TPR@FPR objective into a FPR@TPR one. Because two objectives are therefore interchangeable at the implementation level, all derivations and implementation details below are given for \eqref{eq:roll-tpr-at-fpr} only; \eqref{eq:roll-fpr-at-tpr} follows by the same transformation applied to the inputs. +\Cref{fig:roll-principle} provides a geometric view of \eqref{eq:roll-tpr-at-fpr}. + +\begin{figure}[H] + \centering + \includegraphics[width=0.85\textwidth]{content/method/figures/roll_principle.png} + \caption{Geometric picture of the ROLL TPR@FPR objective. \textit{Upper}: score PDFs + for the negative (blue, $y=0$) and positive (orange, $y=1$) classes. The operating + threshold $\tau$ (dashed) is placed at the $(1-\alpha)$-quantile of the negative + class, so that exactly $\alpha$ fraction of negative scores exceed it ($\operatorname{FPR}=\alpha$). + The shaded area under the positive-class PDF to the left of $\tau$ is + $\hat{F}_1(\tau)$ --- the ROLL loss we minimize. Tick marks along the bottom represent + observed positive-class scores. \textit{Lower}: corresponding CDFs $\hat{F}_0$ (blue) + and $\hat{F}_1$ (orange). Reading horizontally at height $1-\alpha$ on $\hat{F}_0$ + gives $\tau$; reading $\hat{F}_1(\tau)$ off $\hat{F}_1$ at the same $\tau$ gives the + loss; the distance from $\hat{F}_1(\tau)$ to $1$ is the resulting TPR.} + \label{fig:roll-principle} +\end{figure} We now derive the gradient of \eqref{eq:roll-tpr-at-fpr} with respect to $f_\theta(\mathbf{x}_i)$. diff --git a/flake.nix b/flake.nix index b1a8122..d1c3140 100644 --- a/flake.nix +++ b/flake.nix @@ -62,7 +62,7 @@ (pkgs.texlive.combine texPkgs) pkgs.culmus pkgs.fontconfig - (pkgs.python3.withPackages (ps: [ ps.sympy ps.numpy ps.matplotlib ])) + (pkgs.python3.withPackages (ps: [ ps.sympy ps.numpy ps.matplotlib ps.scipy ])) ]; shellHook = '' export FONTCONFIG_FILE="${fontsConf}"