总结一下:对于SGD有
Δθ=−η∇θL(θ)\Delta\theta=-\eta\nabla_{\theta}L(\theta)Δθ=−η∇θL(θ)
那么
ΔL≈−η∣∣∇θL(θ)∣∣2\Delta L\approx-\eta||\nabla_{\theta}L(\theta)||^2ΔL≈−η∣∣∇θL(θ)∣∣2
设模型有N层,每层的平均参数量为K,配合Xavier初始化以及各种Normalization手段,我们可以使得多数参数的梯度是𝒪(1)量级,所以
ΔL=O(ηNK)=正比于N\Delta L=O(\eta NK)=正比于NΔL=O(ηNK)=正比于N
对比这两个 ΔL\Delta LΔL的表达式,目标是把参数的梯度∇θL(θ)\nabla_{\theta}L(\theta)∇θL(θ)控制到1N\frac{1}{\sqrt N}N1的量级,这样的话loss的变化不会显著受到层数的影响。
DeepNet怎么控制的呢?DeepNet所提出的两个改进点——增大恒等路径权重和降低残差分支初始化
以下转载自:https://kexue.fm/archives/8978