skipinit
**SkipInit** is an **initialization technique for residual networks that multiplies each residual path by a learnable scalar initialized to zero** — ensuring that at initialization, the network is equivalent to a shallow network (identity function), enabling training of extremely deep networks without BatchNorm.
**How Does SkipInit Work?**
- **Standard Residual**: $y = x + F(x)$
- **SkipInit**: $y = x + alpha cdot F(x)$ where $alpha$ is initialized to 0.
- **At Init**: $y = x$ (identity mapping). The network is effectively 1 layer deep.
- **During Training**: $alpha$ grows from 0, gradually introducing the residual contributions.
- **Paper**: De & Smith (2020).
**Why It Matters**
- **No BatchNorm Needed**: Enables training 10,000+ layer ResNets without any normalization.
- **Simplicity**: One scalar parameter per residual block. Trivial to implement.
- **Theory**: Connects to the insight that deep networks train best when they start as shallow networks and gradually deepen.
**SkipInit** is **starting as nothing** — initializing each residual pathway to zero so the model begins as a simple identity and gradually builds complexity.