04 · The study

What happens when a hospital lies about rare diseases.

408 federated runs on real hospital data: eight aggregation methods, three attacks and no attack, two splits, three seeds each. Every setting, attacker and pass mark was written down before the first run. This is now the project's main result - Fallback F1 in the design doc.
Gate G1 · is the problem real?

The attack works - but not quietly enough to pass the gate.

G1 asked for three things at once under Camp A (weighting hospitals by the evidence in their updates): the attacker gains at least 2x its FedAvg weight on a rare disease, that disease's F1 falls by at least 0.15, and overall balanced accuracy falls by less than 0.03 - so nobody would notice.

S1 · natural split

DiseaseWeight ≥ 2xF1 drop ≥ 0.15
Dermatofibroma4.96x ✓0.086 ✕
Vascular lesion5.53x ✓0.017 ✕

Balanced-accuracy drop (must be < 0.03)0.011 ✓

S2 · specialist split

DiseaseWeight ≥ 2xF1 drop ≥ 0.15
Dermatofibroma4.81x ✓0.207 ✓
Vascular lesion4.65x ✓0.237 ✓

Balanced-accuracy drop (must be < 0.03)0.051 ✕

Decision, fixed in advance

The attack succeeds on neither split: Fallback F1 - an empirical study of how rare-class-aware aggregation behaves on a real hospital split.

On S1 the attacker grabs about five times its fair share of the rare-disease rows, but three or four honest holders pull the model back. On S2 the attack does real damage, but it also costs 0.051 balanced accuracy - visible, so it misses the "quiet" condition. Both results are reported as they came out.

The attacks

Three ways to cheat, fixed before any run.

none

No attack

-

Every hospital trains honestly.

A1

A1 · Sudden expert

Centre 4 (holds no rare images)

Flips rare labels to nevus and inflates its rare-disease rows to look like a big holder, every round.

A2

A2 · Sleeper

Centre 1 (a real holder on S1)

Honest for 15 rounds to build a record, then behaves exactly like A1.

A3

A3 · Scaling

Centre 4

Flips rare labels and multiplies its whole update by 10 to dominate the average.

Rare-disease F1

Every method, every attack.

Mean F1 over the two rare diseases on the pooled test set after 100 rounds; whiskers are ± one standard deviation over seeds 42, 43, 44.

S1 · natural split

Fed-ISIC2019's real six hospitals, unchanged. Each rare disease has 3-4 holders.

S2 · specialist split

Constructed and disclosed: 90% of every other hospital's rare images moved to centre 2, so one hospital holds each rare disease.

What we learned

Four findings, each measured.

1 · Evidence weighting backfires

Camp A reading evidence from the updates gives the specialist less say than plain FedAvg (12.6% vs 14.5% on the dermatofibroma row) and lower rare F1 (0.558 vs 0.592). It is the inverted G0a signal at work: the hospitals that never see a disease move its row the most.

2 · Honest counts help, lying counts hurt

Weighting by reported class counts is the best method with no attack on S1 (rare F1 0.605). But a hospital that simply claims to be a big holder captures 7.4x its fair weight on S2, and rare F1 falls to 0.327.

3 · The sleeper is the worst attack

A genuine holder that turns after 15 honest rounds cuts FedAvg's rare F1 on S1 from 0.592 to 0.286. Clipping updates to the median size recovers most of it (0.538). On S2 the best method, Multi-Krum, reaches only 0.397 ± 0.167; most fall close to zero.

4 · Robust filters can erase a lone specialist

On the natural split Krum actually favours centre 2 (it is the one update Krum keeps in 60.0% of rounds). But when one hospital holds a disease (S2), Multi-Krum gives it 0.0% of the rare rows and rare F1 is 0.000 - the "odd one out" is exactly the expert.

Fairness to the specialist

How much say centre 2 gets on rare diseases.

Mean weight on the rare-disease rows over all rounds, no attack, compared with the share of that disease's images centre 2 actually holds.
MethodS1 · DFS1 · VLS2 · DFS2 · VL
Centre 2's share of the images21.7%31.8%92.4%93.5%
FedAvg14.5%14.5%15.8%15.8%
FedAvg + clipping14.5%14.5%15.8%15.8%
Krum60.0%60.0%0.0%0.0%
Multi-Krum20.0%20.0%0.0%0.0%
Trimmed mean24.5%20.3%6.2%5.4%
Median39.9%25.5%11.5%10.6%
Camp A (update evidence)12.6%13.2%18.5%18.7%
Camp A (reported counts)19.3%23.2%50.0%50.0%
All numbers

The full tables.

S1 · natural split
MethodAttackBalanced accRare F1DF F1VL F1Rare → nevusAttacker weight
FedAvgnone0.536 ± 0.0030.592 ± 0.0050.4720.71219.3%-
A10.526 ± 0.0020.553 ± 0.0060.4160.69022.1%1.00x / 1.00x
A20.448 ± 0.0030.286 ± 0.0200.2050.36738.6%1.00x / 1.00x
A30.489 ± 0.0060.569 ± 0.0050.4500.68919.9%1.00x / 1.00x
FedAvg + clippingnone0.542 ± 0.0040.592 ± 0.0090.4730.71219.3%-
A10.538 ± 0.0020.574 ± 0.0060.4430.70520.9%1.00x / 1.00x
A20.523 ± 0.0080.538 ± 0.0230.4070.66922.1%1.00x / 1.00x
A30.542 ± 0.0040.592 ± 0.0090.4730.71219.3%1.00x / 1.00x
Krumnone0.461 ± 0.0020.541 ± 0.0110.4460.63722.1%-
A10.438 ± 0.0060.545 ± 0.0130.4680.62228.0%0.00x / 0.00x
A20.442 ± 0.0090.546 ± 0.0120.4650.62727.4%0.00x / 0.00x
A30.438 ± 0.0060.545 ± 0.0130.4680.62228.0%0.00x / 0.00x
Multi-Krumnone0.474 ± 0.0110.547 ± 0.0130.4050.68822.7%-
A10.534 ± 0.0030.566 ± 0.0040.4430.69021.5%0.00x / 0.00x
A20.527 ± 0.0030.574 ± 0.0060.4640.68417.4%0.00x / 0.00x
A30.534 ± 0.0030.566 ± 0.0040.4430.69021.5%0.00x / 0.00x
Trimmed meannone0.507 ± 0.0040.560 ± 0.0020.4540.66720.9%-
A10.507 ± 0.0050.555 ± 0.0070.4430.66720.9%3.37x / 3.37x
A20.499 ± 0.0020.564 ± 0.0100.4560.67120.6%0.71x / 0.71x
A30.502 ± 0.0040.554 ± 0.0050.4430.66518.1%1.51x / 1.53x
Mediannone0.490 ± 0.0080.560 ± 0.0040.4470.67321.2%-
A10.491 ± 0.0070.560 ± 0.0100.4440.67621.2%2.74x / 2.90x
A20.482 ± 0.0070.554 ± 0.0110.4410.66720.6%0.62x / 0.71x
A30.493 ± 0.0020.551 ± 0.0170.4350.66717.1%0.03x / 0.02x
Camp A (update evidence)none0.535 ± 0.0030.558 ± 0.0090.4410.67518.7%-
A10.525 ± 0.0030.507 ± 0.0120.3550.65822.7%4.96x / 5.53x
A20.504 ± 0.0080.491 ± 0.0190.4070.57526.5%1.38x / 1.53x
A30.535 ± 0.0030.558 ± 0.0090.4410.67518.7%4.10x / 4.04x
Camp A (reported counts)none0.548 ± 0.0080.605 ± 0.0160.4960.71519.9%-
A10.529 ± 0.0020.534 ± 0.0060.4050.66224.3%5.40x / 4.79x
A20.497 ± 0.0060.442 ± 0.0130.2830.60230.8%1.61x / 1.55x
A30.548 ± 0.0080.605 ± 0.0160.4960.71519.9%0.53x / 0.50x

Attacker weight = its mean weight on the DF / VL rows while attacking, divided by its FedAvg weight. Rare → nevus = share of rare-disease test images classified as the attack's target.

S2 · specialist split
MethodAttackBalanced accRare F1DF F1VL F1Rare → nevusAttacker weight
FedAvgnone0.485 ± 0.0040.490 ± 0.0170.3680.61232.4%-
A10.476 ± 0.0090.454 ± 0.0240.3330.57534.6%1.00x / 1.00x
A20.396 ± 0.0060.012 ± 0.0170.0230.00048.0%1.00x / 1.00x
A30.437 ± 0.0070.408 ± 0.0210.2300.58631.2%1.00x / 1.00x
FedAvg + clippingnone0.484 ± 0.0070.479 ± 0.0060.3470.61133.0%-
A10.477 ± 0.0090.436 ± 0.0210.2800.59234.3%1.00x / 1.00x
A20.411 ± 0.0070.035 ± 0.0500.0340.03643.9%1.00x / 1.00x
A30.484 ± 0.0070.479 ± 0.0060.3470.61133.0%1.00x / 1.00x
Krumnone0.279 ± 0.0210.242 ± 0.0330.0000.48562.6%-
A10.435 ± 0.0230.198 ± 0.1000.0110.38431.8%0.00x / 0.00x
A20.381 ± 0.0400.084 ± 0.0600.0000.16846.4%0.00x / 0.00x
A30.435 ± 0.0230.198 ± 0.1000.0110.38431.8%0.00x / 0.00x
Multi-Krumnone0.354 ± 0.0030.000 ± 0.0000.0000.00049.2%-
A10.486 ± 0.0030.535 ± 0.0030.4600.61034.6%0.00x / 0.00x
A20.444 ± 0.0340.397 ± 0.1670.3600.43534.9%0.17x / 0.17x
A30.486 ± 0.0030.535 ± 0.0030.4600.61034.6%0.00x / 0.00x
Trimmed meannone0.419 ± 0.0130.338 ± 0.0380.2480.42943.3%-
A10.417 ± 0.0160.323 ± 0.0650.2370.41043.3%3.40x / 3.38x
A20.362 ± 0.0050.012 ± 0.0080.0240.00060.1%0.67x / 0.60x
A30.438 ± 0.0100.425 ± 0.0250.2970.55433.0%1.57x / 1.64x
Mediannone0.401 ± 0.0180.326 ± 0.0600.2930.35948.0%-
A10.410 ± 0.0150.366 ± 0.0360.2820.45045.8%2.47x / 2.35x
A20.352 ± 0.0070.044 ± 0.0070.0890.00058.3%0.51x / 0.40x
A30.433 ± 0.0110.442 ± 0.0180.3030.58130.8%0.09x / 0.09x
Camp A (update evidence)none0.493 ± 0.0080.527 ± 0.0120.4370.61629.6%-
A10.442 ± 0.0230.305 ± 0.0920.2300.38040.2%4.81x / 4.65x
A20.391 ± 0.0030.000 ± 0.0000.0000.00044.2%1.56x / 1.66x
A30.493 ± 0.0080.527 ± 0.0120.4370.61629.6%3.32x / 2.97x
Camp A (reported counts)none0.541 ± 0.0070.560 ± 0.0120.4430.67822.4%-
A10.461 ± 0.0130.327 ± 0.0560.2820.37241.1%7.32x / 7.36x
A20.409 ± 0.0030.000 ± 0.0000.0000.00045.2%1.95x / 1.96x
A30.541 ± 0.0070.560 ± 0.0120.4430.67822.4%0.54x / 0.55x

Attacker weight = its mean weight on the DF / VL rows while attacking, divided by its FedAvg weight. Rare → nevus = share of rare-disease test images classified as the attack's target.