Skip to content

10 — Fusion, loss, thresholds

flowchart LR
    A["branch A logits\nsignal model"] --> AVG["average votes"]
    B["branch B logits\nscalogram model"] --> AVG
    AVG --> THR["per-class thresholds\nV set low: catch more"]
    THR --> OUT["N / V / S / F / Q"]
  • Logits: five raw scores, one per class — one vector per branch.
  • Sigmoid: squashes each score to 0–1, five independent yes/no dials. Threshold 0.5 default.
  • BCE loss: punishes wrong dials, rare classes weighted heavier. The default head.
  • Cross-entropy: alternative if beats turn out single-label — same five dials, only loss + decision rule change.
  • Fusion: combine the two branches by averaging logits; learned gate only if averaging disappoints.

Threshold tuning slides each class along its precision-recall tradeoff (lesson 04). V's threshold drops low — accept false alarms, because misses kill. Approach B skips fusion with one shared model on concatenated features.

Next: 11-reading-papers.md, then start ../research/plan.md Phase 1.