PigeonColumba compressa

KD across the student-size ladder

How much does distillation help at each student size, and how much of that comes from the teacher's soft labels vs. from extra unlabeled inputs?

Methods: Knowledge distillation (Hinton)

Line chart of test accuracy (20-way) against hidden width (log scale), one line per method, with a dashed reference line for the teacher and the Bayes-optimal classifier. Titled “KD across the student-size ladder”. The numbers are in the table below.
Test accuracy (20-way) against hidden width
Line chart of target-class AP ('bird') against hidden width (log scale), one line per method, with a dashed reference line for the teacher and the Bayes-optimal classifier. Titled “KD across the student-size ladder”. The numbers are in the table below.
Target-class AP ('bird') against hidden width

Table

Mean over the seeds; ± is the standard deviation where more than one seed ran. The experiment took 157 s.

Hidden widthMethodTest accuracy (20-way)Target-class AP ('bird')Agreement with teacherTest NLLKL(Bayes || model)Parameters (nonzero)
4labels only (scratch)0.315 ± 0.0070.634 ± 0.0110.320 ± 0.0062.016 ± 0.0291.931 ± 0.029172
4KD, labeled inputs0.315 ± 0.0070.634 ± 0.0090.319 ± 0.0072.016 ± 0.0291.931 ± 0.029172
4KD, + unlabeled pool0.324 ± 0.0120.648 ± 0.0080.329 ± 0.0101.989 ± 0.0401.904 ± 0.040172
8labels only (scratch)0.443 ± 0.0150.691 ± 0.0300.450 ± 0.0161.634 ± 0.0271.550 ± 0.027356
8KD, labeled inputs0.443 ± 0.0150.690 ± 0.0300.450 ± 0.0161.634 ± 0.0271.550 ± 0.028356
8KD, + unlabeled pool0.456 ± 0.0150.740 ± 0.0330.464 ± 0.0181.603 ± 0.0281.519 ± 0.029356
16labels only (scratch)0.664 ± 0.0090.843 ± 0.0050.674 ± 0.0101.018 ± 0.0270.936 ± 0.028820
16KD, labeled inputs0.663 ± 0.0090.839 ± 0.0030.673 ± 0.0101.018 ± 0.0270.936 ± 0.028820
16KD, + unlabeled pool0.671 ± 0.0080.862 ± 0.0020.684 ± 0.0060.991 ± 0.0230.909 ± 0.023820
32labels only (scratch)0.817 ± 0.0010.952 ± 0.0050.831 ± 0.0030.554 ± 0.0080.476 ± 0.0082,132
32KD, labeled inputs0.818 ± 0.0000.951 ± 0.0050.833 ± 0.0020.553 ± 0.0080.475 ± 0.0082,132
32KD, + unlabeled pool0.832 ± 0.0050.954 ± 0.0050.845 ± 0.0050.511 ± 0.0130.433 ± 0.0152,132
64labels only (scratch)0.882 ± 0.0010.980 ± 0.0020.901 ± 0.0020.363 ± 0.0030.286 ± 0.0016,292
64KD, labeled inputs0.882 ± 0.0010.979 ± 0.0020.901 ± 0.0030.361 ± 0.0020.284 ± 0.0006,292
64KD, + unlabeled pool0.896 ± 0.0010.983 ± 0.0020.916 ± 0.0010.316 ± 0.0030.238 ± 0.0026,292
128labels only (scratch)0.904 ± 0.0020.988 ± 0.0010.932 ± 0.0010.328 ± 0.0080.255 ± 0.01020,756
128KD, labeled inputs0.904 ± 0.0020.988 ± 0.0010.931 ± 0.0030.328 ± 0.0080.255 ± 0.01120,756
128KD, + unlabeled pool0.916 ± 0.0000.989 ± 0.0000.947 ± 0.0010.267 ± 0.0020.190 ± 0.00120,756

Reference points

Teacher (the large model)
The full-size network trained on the labeled data; the smaller models here are measured against it. Test accuracy (20-way) 0.914, target-class AP ('bird') 0.989, test NLL 0.384, KL(Bayes || model) 0.309, parameters (nonzero) 140,052.
Bayes-optimal (the best any model can do on this problem)
Predictions from the exact class probabilities, which the lab can compute because it generated the data. Test accuracy (20-way) 0.973, target-class AP ('bird') 0.999, test NLL 0.079.

Birds in this experiment

The table's 18 smaller models hatch 4 kinds of bird. Each kind is drawn once, for one model: the smallest if the bird is healthy or bones, the one that keeps the most if it's starving.

Measured against this experiment's teacher: 140,052 parameters, 4481.7 kbit, accuracy 0.914. Storage is 32 bits a parameter, the lab's rule for a dense fp32 net, which every model drawn here is. Species follows how many times smaller a model is. A bird stays healthy while its model keeps at least 95% of the reference's score, and turns to bones at 60% or less.

These are the lab's recorded results, so they aren't added to anyone's life list. Birds you hatch yourself, in the Coop or from a Field Guide run, are saved to your life list.