the.ai

Foundations / Optimization

verified

Weight Initialization

The numbers a network starts with, before it has seen anything. It sounds arbitrary and is not: initialise too small and the signal fades as it passes through the layers, too large and it blows up, and either way a deep network fails to train at all. For years this was the difference between depth working and not.

Viz primitive · update-spectruminit-scale = 0.4 · bars = 10

10 values. The left group decays steeply; the right group is 19% of the way to flat, and reads flatter than the left.

Activation magnitudes across a layer at initialisation, before and after the scale is applied. Drag the init scale up to watch the spread flatten out — the gain that keeps this neither collapsing nor exploding is set by the layer's width, in both directions at once.

0.4

Reviewed by opendroid · 2026-08-18

  • arXiv:1502.01852 — Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
  • arXiv:1502.03167 — Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift