:PROPERTIES: :ID: 6294e2be-6189-4473-b363-a1dd9a75ff9b :END: #+title: thesis #+filetags: :project: :knowledge: * thesis BGU MSc thesis on the ROLL method (Rate Optimized Likelihood Loss). See [[id:d23011c5-d925-4f14-b05a-0a1f4bdbe860][impl]] for the implementation project this thesis documents. ** Architecture - =main.tex= — root document; defines all title/author/supervisor commands, includes all chapters - =Main_pages/= — cover_page, title_page, abstract, acknowledgements, abstract_heb, cover_heb - =content//= — one folder per chapter with its own .tex file - =content/images/= — shared image path (set via =\graphicspath=) - =bibliography/thesis.bib= — references - =bibliography/unsrtnat_adjusted_for_bgu_thesis.bst= — custom BGU bibliography style (do not edit) ** Conventions - Thesis metadata (title, author, supervisor, month, year) defined as commands at top of =main.tex= - Hebrew title/author/supervisor have =he= suffix commands (=\thesistitlehe=, etc.) - Both English and Hebrew ToC, abstract, and cover pages are required by BGU - Chapters added via =\input{content//}= with a matching =\addtocontents{tocheb}= line - Build engine: pdflatex (uses =\usepackage[utf8x]{inputenc}=, not xelatex) - Math notation: data points are bold (=\mathbf{x}_i=); batches are =\mathcal{B}_0= / =\mathcal{B}_1= - KDE background (general technique) in Ch. 2 (=sec:kde-background=); Ch. 3 back-references it - =sec:imbalanced-tpr-fpr= and =sec:neyman-pearson= live in Ch. 2; Ch. 3 =sec:problem-formulation= \Cref's them — do not rename ** Mentor Direction (2026-08-17) Primary narrative focus agreed with mentor: - *Main story*: noise resistance and AUC optimization — this is the thesis core - *Hero method*: =roll-aoc= (AUC variant) — primary contribution - *Primary competitor*: =libauc-auroc= (Yuan et al. AUCMLoss + PESG) — already implemented - *Single-point optimization* (=roll-tpr90=): touch on briefly as secondary result - *Pacing*: get to the differentiating, strong results quickly — don't bury the lede ** Baselines (all in =impl/src/roll.py= + =impl/experiments/keel/_base.py=) | Experiment name | Class | What it is | |---|---|---| | =bce-weighted= | BCE + pos_weight | Standard imbalance fix | | =libauc-auroc= | =libauc_auc_loss= + PESG | Yuan et al. 2021 compositional AUC — primary AUC competitor | | =gce-0.7= | =gce_loss= | Generalized Cross-Entropy (noise-robust) | | =mae= | =mae_loss= | MAE loss (noise-robust) | | =focal-loss= | =focal_loss= | Focal Loss | | =roll-aoc= | =kernelized_roll_aoc= | *ROLL AUC variant — hero method* | | =roll-tpr90= | =kernelized_roll_tpr= | ROLL TPR@FPR variant — secondary result | Note: =libauc-auroc= requires PESG optimizer (not Adam) — already wired up in impl. ** Chapter Structure See subnodes for per-chapter guidelines and section details. | Ch. | Title | File | Target | |-----|-------|------|--------| | 1 | Introduction | =content/introduction/introduction.tex= | 4–6 pp | | 2 | Background / Related Work | =content/related_work/related_work.tex= | 15–20 pp | | 3 | Method | =content/method/method.tex= | ~30 pp | | 4 | Experiments | =content/experiments/experiments.tex= | 15–20 pp | | 5–6 | Discussion + Conclusion | =content/discussion_and_conclusions/= | 8–12 pp | ** Gotchas - Template uses =utf8x= inputenc, which requires the =ucs= nix/texlive package - Hebrew rendering via =babel-hebrew= (pdflatex approach, not fontspec/xelatex) - Example images in =content/related_work/images/= are from the template — safe to delete - =flake.nix= uses =rec= on the derivation so =buildInputs= is in scope for PATH export - =nix develop= devShell includes python3+sympy — use it to verify math claims, never check mentally - KDE backward pass uses inverse-function-theorem approach deliberately (user must explain it verbally) - Correct gradient of threshold w.r.t. negative-class score: σ'(τ−x_i) / Σ_j σ'(τ−x_j) — sympy-verified - *(NIX BUILD) New .tex files must be =git add='ed before =nix build=.* Nix flakes use git to enumerate source files; untracked files are invisible to the build. Symptom: silent LaTeX failure — TOC, LoF, and LoT all appear empty in the output PDF. Fix: =git add =, then rebuild. ** Key Files - =flake.nix= — Nix build; =nix build= produces =result/main.pdf=; =nix develop= for dev shell - =flake.lock= — pinned to nixpkgs-unstable as of 2026-06-16 - =main.tex= — fill in =\thesistitle=, =\thesisauthorname=, =\thesissupervisername=, =\thesismonth=, =\thesisyear= ** Subnodes - [[id:c4a0d60f-49d3-4185-8c5b-f8a5a10a2ccc][thesis/introduction]] — Ch. 1 guidelines: structure, length, what to include - [[id:cd785954-008e-4b64-957d-25d1dbeac127][thesis/related-work]] — Ch. 2 section structure, placement markers, label conventions - [[id:0543ac39-af9b-40fd-9973-e60576a20695][thesis/method]] — Ch. 3 section status table, derivation gotchas - [[id:c41756b5-fd5f-456e-ab2b-18f27db7d61d][thesis/experiments]] — Ch. 4 data sources, key results, section status - [[id:9b50caf2-d259-4848-b7f5-22a9288e8ba2][thesis/discussion]] — Ch. 5–6 guidelines: failure modes, future work - [[id:151159e8-1105-4a84-af9c-72d31c5e0660][thesis/todos]] — project TODOs - [[id:bd98ede2-d6ec-4e93-8d10-4800fe528ff7][thesis/citations]] — sources justifying implementation choices (architectures, baselines) - [[id:2c598296-d2f0-4333-9cdd-3625f8375e03][thesis/work-history/recent]] — session work log * todo ** TODO Basic structure - take it into account ** TODO Import and make sense of all references ** TODO Continue to auto-summarize references continuously