Research prototype / Medical imaging
Uncertain is not negative.
A multi-label chest X-ray classifier over 14 findings, trained across three corpora that do not agree about what they label. The interesting part is not the network. It is the mask that decides which labels are allowed to teach it anything.
01What this is
Three corpora, one label space, and a great deal of silence.
The model predicts 14 findings at once. Only one of its three sources can speak to all 14 of them: NIH ChestX-ray14. CheXpert supplies 7, and the pneumonia set supplies 1. Within the findings CheXpert does carry, an entry can still be explicitly uncertain, or simply not mentioned at all.
The decision that shapes the whole project is what to do with that silence. Treating it as a negative is cheap and wrong: it would teach the model that every CheXpert chest is free of emphysema, fibrosis and hernia, and that every image in the pneumonia set is free of the other thirteen findings. Instead each of those entries is masked, and a masked entry contributes nothing to the loss and nothing to the metrics.
02The loss
Focal weighting, and then a switch that can turn the whole term off.
The loss is a focal loss with label smoothing (0.02), alpha 0.75 so positives are weighted three to one, gamma 2 so confident examples stop dominating, and a class weight applied to positives only so that boosting a rare finding does not also boost the flood of negatives around it. All of that is multiplied by the mask, and normalised by the sum of the mask times the weights rather than by the element count — otherwise batches with a lot of masked entries would be scaled as though those entries had been learned from.
03Splits and evaluation
Split by patient, and judged on the worst finding.
Both CheXpert and NIH are split 80/10/10 at the level of the patient, not the image, so two views of the same person cannot land on both sides of the split. The NIH split is retried until every finding has at least twenty positives in both validation and test, because a split that leaves a rare finding with three positives produces a metric that means nothing.
ROC-AUC per finding, mask-aware, computed only over samples where that channel is certain. The checkpoint is then selected on the minimum class AUC rather than the mean, with Hernia excluded as too rare to steer on — a mean would let a strong majority class hide a finding the model cannot do at all.
Evaluation pipeline implemented; no validated numbers are published in the repository.
Boundaries
A research prototype, and not a clinical one.
- No trained weightsNothing in the repository can make a prediction.
- No patient dataDatasets are downloaded from their owners under their own terms.
- No held-out metricsThe evaluation code exists; its output is not published.
- No clinical validationNot for diagnosis, triage, or treatment decisions.
The repository states that the implementation must not be used for diagnosis, triage, treatment decisions, or any other clinical purpose. Nothing on this page is a medical claim, no image shown anywhere in it is a real radiograph, and no patient data is used, stored, or published.