Removing weights that were not doing much
Magnitude pruning is the baseline and it is hard to beat: sort the weights, zero the smallest, and the network usually barely notices.
Trained networks tolerate 50 to 90 percent sparsity with a point or two of accuracy loss, which says most weights contribute very little individually.
The principled criterion uses the second derivative: the loss increase from zeroing a weight depends on curvature as well as magnitude.
That is why a large weight in a flat direction can go and a small one in a sharp direction cannot.
The Hessian is intractable at scale, so magnitude survives as the practical approximation.
Structured or not, which decides whether it helps
Unstructured pruning removes individual weights.
Zeroing scattered weights gives a sparse matrix that dense hardware multiplies at exactly the same speed as before. The model is smaller on disk and no faster.
Structured pruning removes whole channels, heads or layers.
Removing an entire output channel makes the matrix genuinely smaller, so the speedup is real on any hardware, and the accuracy cost is much higher for the same parameter count.
Semi-structured patterns are the compromise recent accelerators support directly, giving roughly a twofold speedup at a regular 50 percent sparsity.
One pruning run, in order
- Train the model to convergence first, since pruning an untrained network prunes noise.
- Rank the weights by the chosen criterion.
- Zero the lowest fraction, according to a schedule rather than all at once.
- Fine-tune to let the survivors compensate.
- Repeat, raising the sparsity gradually, and stop when the accuracy stops recovering.
Iterative pruning beats one shot by a wide margin.
Gradual pruning with recovery between rounds reaches far higher sparsity than a single large cut, because the network can redistribute what it lost.
The lottery ticket result
There is a subnetwork that trains to the same accuracy from the original initialisation.
Pruning a trained network, then resetting the surviving weights to their original random values and retraining, can match the full network.
The same subnetwork trained from a fresh random initialisation does not, so what matters is the combination of the structure and the specific starting values.
It is a striking result about why overparameterisation helps, and it has not turned into a practical method, because finding the ticket requires training the full network first.
Where it sits against the alternatives
Quantisation makes a model 4 times smaller, reliably, in minutes.
Pruning makes it 2 times smaller, needs fine-tuning, and speeds it up only if structured.
Quantisation is almost always the first thing to try, and the two compose: a pruned and quantised model is smaller than either alone.
Distillation competes differently by training a smaller dense model rather than emptying a large one, and it usually wins when a target size is fixed in advance.