Post
25
A 339 KB linear probe on frozen features beats the fine-tuned baseline on ChestX-ray14.
Linear(5376, 14) on frozen google/gemma-4-31B-it hidden states. No fine-tuning, no radiology pretraining, no augmentation. All 112,120 images, official test_list.txt.
Wang et al. 2017, ResNet-50 fine-tuned end to end 0.7451
this probe, frozen backbone + linear head 0.7590
view-position only (shortcut baseline) 0.5896
shuffled labels (refit floor) 0.5002
Ahead on 12 of 14 findings.
The comparison is split-matched, and that took care to get right. The number everyone quotes, CheXNet's 0.8414, is on a different test set: their own random 70/10/20 partition, not the official list. Do not compare 0.7590 to it. The matched row is from Wang's v5 appendix, added specifically to report the published split. I had this wrong in our own code for a day, quoting a cross-split reference as a head-to-head, which is the error worth not repeating in public.
Three controls, because a bare AUROC here is not interpretable. Shuffled labels catch leakage. View-only catches the shortcut, since portable AP films are taken of sicker patients, and it is folded, because Hernia's raw view-only of 0.3436 is really 0.6564 of shortcut once flipped. Intervals resample patients and not images, since the test split is 25,596 films from 2,797 patients.
Banked negatives are on the card too. Max-pooling and top-16 pooling were predicted to help focal findings and did the opposite, costing 0.0537 and 0.0225. Readout depth barely matters, 0.7600 to 0.7605.
Scope: detection, not early detection. Research artifact, not a diagnostic device.
The backbone never runs in the demo. What ships is the reading.
Space: RiverRider/srt-cxr14-probe
Model: RiverRider/srt-cxr14-linear-probe
Data + states: RiverRider/srt-cxr14-frozen-probe
Linear(5376, 14) on frozen google/gemma-4-31B-it hidden states. No fine-tuning, no radiology pretraining, no augmentation. All 112,120 images, official test_list.txt.
Wang et al. 2017, ResNet-50 fine-tuned end to end 0.7451
this probe, frozen backbone + linear head 0.7590
view-position only (shortcut baseline) 0.5896
shuffled labels (refit floor) 0.5002
Ahead on 12 of 14 findings.
The comparison is split-matched, and that took care to get right. The number everyone quotes, CheXNet's 0.8414, is on a different test set: their own random 70/10/20 partition, not the official list. Do not compare 0.7590 to it. The matched row is from Wang's v5 appendix, added specifically to report the published split. I had this wrong in our own code for a day, quoting a cross-split reference as a head-to-head, which is the error worth not repeating in public.
Three controls, because a bare AUROC here is not interpretable. Shuffled labels catch leakage. View-only catches the shortcut, since portable AP films are taken of sicker patients, and it is folded, because Hernia's raw view-only of 0.3436 is really 0.6564 of shortcut once flipped. Intervals resample patients and not images, since the test split is 25,596 films from 2,797 patients.
Banked negatives are on the card too. Max-pooling and top-16 pooling were predicted to help focal findings and did the opposite, costing 0.0537 and 0.0225. Readout depth barely matters, 0.7600 to 0.7605.
Scope: detection, not early detection. Research artifact, not a diagnostic device.
The backbone never runs in the demo. What ships is the reading.
Space: RiverRider/srt-cxr14-probe
Model: RiverRider/srt-cxr14-linear-probe
Data + states: RiverRider/srt-cxr14-frozen-probe