PigeonColumba compressa

Low-rank factorization (SVD)

Replace each 256x256 matrix with a rank-r product. How low can r go, and how does it compare per-parameter with deleting neurons?

Methods: Low-rank factorization (SVD)

Line chart of test accuracy (20-way) against parameters (nonzero) (log scale), one line per method, with a dashed reference line for the teacher. Titled “Low-rank factorization (SVD)”. The numbers are in the table below.
Test accuracy (20-way) against parameters (nonzero)

Table

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

Rank / widthMethodTest accuracy (20-way)Target-class AP ('bird')Test NLLKL(Bayes || model)Parameters (nonzero)
128SVD, no recovery0.9140.9890.3840.309140,052
128SVD + KD0.919 ± 0.0000.989 ± 0.0000.306 ± 0.0010.227 ± 0.001140,052
64SVD, no recovery0.8850.9830.4860.41174,644
64SVD + KD0.921 ± 0.0020.990 ± 0.0000.292 ± 0.0020.215 ± 0.00274,644
32SVD, no recovery0.7900.9600.9160.83641,812
32SVD + KD0.920 ± 0.0000.990 ± 0.0000.292 ± 0.0010.217 ± 0.00141,812
16SVD, no recovery0.4200.5483.9823.88824,708
16SVD + KD0.911 ± 0.0000.986 ± 0.0000.301 ± 0.0010.226 ± 0.00124,708
8SVD, no recovery0.0660.0787.0206.93213,364
8SVD + KD0.735 ± 0.0020.928 ± 0.0020.819 ± 0.0000.744 ± 0.00013,364
4SVD, no recovery0.0740.0653.5763.4927,076
4SVD + KD0.375 ± 0.0040.659 ± 0.0041.833 ± 0.0141.749 ± 0.0147,076
2SVD, no recovery0.0560.0563.1303.0463,932
2SVD + KD0.249 ± 0.0000.571 ± 0.0082.240 ± 0.0002.155 ± 0.0003,932
128neuron prune (taylor) + KD0.915 ± 0.0010.990 ± 0.0000.285 ± 0.0010.204 ± 0.00137,268
64neuron prune (taylor) + KD0.893 ± 0.0020.981 ± 0.0000.321 ± 0.0000.245 ± 0.00010,452
32neuron prune (taylor) + KD0.791 ± 0.0000.944 ± 0.0020.636 ± 0.0020.554 ± 0.0023,188
16neuron prune (taylor) + KD0.587 ± 0.0020.799 ± 0.0021.242 ± 0.0071.162 ± 0.0071,092

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 16 smaller models hatch 9 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.