Lerousseau 2020 — MIL Tumor Segmentation (percentile pseudo-labels)
MIL turned into a segmentation method: on a tumour slide, label the top α% of tiles positive and the bottom β% negative by the model’s own current predictions, mask the rest, and iterate — trained on 6,481 frozen TCGA slides whose labels come free from the TCGA barcode, with the released tumour maps as a public by-product.
Read status: full text (arXiv v4) plus source. The companion repository is by the first author and was cloned and read; claims marked verified in code come from there. Figures were not rendered by the text extraction and only their captions were read.
What they did
The wiki’s Weakly Supervised Learning page describes MIL as classification: tiles are scored, scores are pooled (max or attention), and the output is one slide-level label. This paper is the other thing MIL can be — segmentation from slide-level labels — and its formulation is almost aggressively simple:
- A slide labelled normal gives every tile the label 0 (which is exactly true).
- A slide labelled tumour gets pseudo-labels from the model’s own current predictions: the top α% of tiles are labelled 1, the bottom β% labelled 0, and everything between is masked out of the loss. Binary cross-entropy on what remains.
Verified in code (code/models/mil_wrapper.py): torch.topk for the top α%, topk(..., largest=False) for the bottom β%, a loss mask for the middle, gradients stopped through the label computation. It is self-training with a percentage prior standing in for the unknown tumour burden — no attention mechanism, no pooling, and the model’s per-tile outputs are the segmentation.
The second idea costs nothing and is the reason the cohort could be 6,481 slides: the labels come from the TCGA barcode itself. Verified in code (case_factory.py): the sample-type field of the filename (split('-')[3], code < 10) says whether the specimen is tumour or solid-tissue normal. No pathologist labelled anything for training; expert annotation was spent only on the test sets.
The fields that are usually buried
| Dataset | 6,481 flash-frozen TCGA WSIs: kidney 2,334, bronchus/lung 2,168, breast 1,979 |
| Magnification / tiles | 20×, 224×224 tiles (default desired_magnification = 20 in code), ResNet50 (ImageNet-pretrained), batches of 150 tiles |
| Split | 65/15/20 — and case-level, verified in code: split_svs_samples_casewise shuffles unique case IDs and assigns all of a case’s slides to one side, so no patient straddles train and test |
| Ground truth | 130 slides (45 breast, 40 kidney, 45 lung) contoured by a junior pathologist and revised until validated by a senior |
| Selection | 15 (α, β) configurations; the paper states hyper-parameters were optimised on the validation set, and all 15 test results are tabulated |
| External validation | Two kinds: out-of-location — 100 annotated slides from organs never trained on (colon 35, ovary 35, corpus uteri 30) — and PatchCamelyon (FFPE sentinel lymph node) |
The case-level split deserves a sentence, because Weakly Supervised Learning carries “is the split at slide or patient level?” as a standing open question and warns it is the easy-to-miss failure. Here is a 2020 paper whose released code demonstrably gets it right. It can be done, it costs twelve lines, and “not stated in the paper” is not the same as “not done” — this is the first instance in this wiki where the code answered that question rather than raising it.
Results, and what the honest parts say
Pixelwise AUC only — no Dice (precision/recall are mentioned only after threshold selection):
| Evaluation | AUC |
|---|---|
| In-distribution, mean over all 15 configs | 0.675 ± 0.132 |
| In-distribution, best config (α=0.2, β=0.2) | 0.804 |
| Kidney / breast (best regions) | ~0.76 |
| Bronchus/lung | ~0.59 |
| Out-of-location (colon/ovary/uterus, never trained) | 0.679 ± 0.154 |
| PatchCamelyon, 12 of 15 configs | 0.43–0.61 |
| PatchCamelyon, best 3 configs | 0.67–0.80 |
| PatchCamelyon, fully supervised reference | 0.963 |
The out-of-location number is genuinely striking: performance on organs the model never saw (0.679) matches in-distribution performance (0.675), which supports the claim that what is learned is something like “tumour texture” rather than organ appearance.
The PatchCamelyon rows are the paper being honest about its own failure: on FFPE lymph-node tissue, most configurations sit at or near chance, and the authors attribute it to exactly the two covariate shifts present — frozen→FFPE and solid-organ→lymph node.
Reading it critically
- The entire corpus is flash-frozen tissue, and the paper’s own external test shows the frozen→FFPE transfer mostly failing. This is the decision-relevant fact for this group, whose material is FFPE. Twelve of fifteen configurations score 0.43–0.61 on PatchCamelyon — at or below chance — against 0.963 fully supervised. Anything reused from this work (the trained models, the released maps, the reported AUCs) is a claim about frozen sections.
- AUC is a ranking metric, and segmentation is not a ranking task. A pixelwise AUC of 0.804 says tumour tiles tend to score above normal tiles; it does not say what the segmentation looks like at any operating point, and no Dice is reported anywhere. The CurvReg paper filed the day before this one reports Dice throughout — the two notes together show how differently “segmentation quality” can be operationalised. Pixelwise AUC also behaves well under the class imbalance that tumour/normal tissue always has, in the specific sense Class Imbalance and Accuracy warns about: the ranking can be good while the achievable mask at any threshold is poor.
- Lung is barely above chance and the headline mean conceals it. ~0.59 for bronchus/lung against ~0.76 for kidney and breast — the paper does report per-location figures, but any onward quotation of “0.675” or “0.804” silently averages over a region where the method roughly does not work. The authors flag it (“twice as much AUC error”) without explaining it.
- The 130-slide reference standard is one junior pathologist revised by one senior. No inter-observer figure, no second independent reader — so the ceiling Interobserver Agreement describes is unmeasured here too, in the now-familiar pattern of Aust 2010 — Serrated Polyp Diagnostic Criteria (German consensus). For tumour-versus-normal contouring at 224-px granularity the stakes are lower than for grading, but the number is still an agreement-bounded estimate presented as ground truth.
- No comparison to any other weakly supervised method. No CAM baseline, no attention-MIL, no prior art in the results — the only comparator anywhere is the fully supervised PatchCamelyon reference. For a MICCAI paper this is unusual, and it means the numbers cannot place the method relative to its alternatives, only relative to nothing.
- Small internal inconsistencies, recorded because they would otherwise get quoted onward. The README’s release link says 6461 tumour maps; its feature list, the results README and the abstract say 6481. And the released maps were generated at 10× (224-px tiles → 112×112 µm granularity) by a three-model ensemble plus a decision tree, although training ran at 20× — with all tiles of normal-labelled slides “manually put to 0”, which is why the collection is called semi-automatic. None of this is concealed; all of it is only in the repository, not the paper.
[unverified]which count is right.
Why it earns space here
- It adds the missing half of the MIL page. Weakly Supervised Learning covers classification MIL, attention pooling, and the fake-MIL-that-is-mean-pooling trap. This is the opposite corner: hard instance selection (top-k, not attention weights), producing a segmentation rather than a slide label, with the slide label used only to decide which pseudo-labelling rule applies. For Liver Tru-Cut — Tumour Origin AI — which the page names as the local MIL setting — it is a second architecture family to know exists, one that yields maps rather than heatmaps-as-side-effects.
- The released tumour maps are a usable TCGA derivative — 6,481 maps covering the entire snap-frozen breast, kidney and lung TCGA slides, as raw tile probabilities and 0.3-thresholded binaries. For anyone tiling frozen TCGA slides, that is a free tumour-region filter. The caveats travel with it: frozen sections only, ensemble-generated rather than annotated, AGPL licence on the release. Recorded on TCGA.
- It is this wiki’s first verified positive example of a case-level split — the standing open question on the MIL page, answered in code rather than in prose.
Related: Weakly Supervised Learning — the page this fills out: segmentation MIL with percentile pseudo-labels, beside the classification MIL it already covers. Related: TCGA — the labels-from-barcode trick, the frozen-versus-diagnostic slide distinction this forces, and the released tumour maps. Related: Class Imbalance and Accuracy — pixelwise AUC as the metric choice that a tumour-fraction imbalance flatters. Related: Interobserver Agreement — a one-plus-one reader reference standard with no agreement figure, bounding every AUC in the paper. Related: Patch Extraction — the repository doubles as a complete GDC-manifest→tiles pipeline (download, tiling, background removal, label extraction), dormant since 2021 and AGPL, noted here rather than adopted. Related: Zabihollahy 2026 — CurvReg (multi-stain liver biopsy registration) — filed the previous day and the instructive contrast on metrics: Dice throughout there, AUC only here, for the same nominal task of saying where tissue of one kind is.
The companion repository (36 commits, v1.0.0, dormant since 2021-08-05, AGPL-3.0, effectively single-author) gets no separate project page, per the §6 gate and the curvereg precedent: it is the paper’s implementation plus its released artefact, and both are documented here and on TCGA. It is not a tool this group would adopt — the tiling pipeline duplicates what Patch Extraction already records with maintained alternatives.