Model soups, SWA, checkpoint averaging: take several networks, average the weights, keep the single cheap model. It works often enough that people stopped asking why.
Averaging the weights and averaging the predictions are two different operations, and only one of them is an operation on functions.
See it: https://dev48.infy.uk/dl/day76-weight-averaging.html
The prediction side is a theorem
Under squared loss the mean member's risk splits exactly:
mean member risk = ensemble risk + spread of the members' predictions
The spread term is a variance, so it cannot be negative, so averaging predictions can never cost more than the average member. Checked here as an equation rather than quoted — it closes to 2.4e-17.
The weight side has no such guarantee
Because a network's weights are one arbitrary representative of a whole orbit computing the identical map. Permute the hidden units, scale a ReLU layer up and the next one down: different weights, same function, every time.
Average two members of the same orbit and the result is not in the orbit. There is nothing in the setup that makes the midpoint of two weight vectors compute anything related to the midpoint of two functions.
The measurement is exact, not sampled
A teacher network over an enumerated 64-point input space, 48 of those points shown to a 41-parameter student. Enumerating the input space means the score is an exact population risk — not a test-set estimate with a confidence interval around it.
The practical reading: when weight averaging works, it is telling you the checkpoints were already in one basin, close enough that the orbit argument does not bite. That is a property of the training run you got, not a property of the method.
Verifier 287 assertions, 0 failures.
Top comments (0)