「Deep Learning」Note on the Shattered Gradients Problem

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dgyuanshaofeng/article/details/83099563

Sina Weibo:小锋子Shawn
Tencent E-mail:[email protected]
http://blog.csdn.net/dgyuanshaofeng/article/details/83099563

破碎梯度问题[1]是ICML 2017的一篇文章。标题 The Shattered Gradients Problem If Resnets are the Answer Then What is the Question 十分骚,揭示残差网络真正要解决的问题,使得网络得以加深,效果越好。值得提醒的是,这篇文章仅是从一个角度去解释残差网络,其实学界现在存在很多理论文章研究、解读残差网络。

假设1(典型数据点):如果一层神经元,超过一半处于激活,并且,两层神经元,超过四分之一处于互激活(co-active),那么称计算层 x ( i ) x^{{(i)}} x ( j ) x^{{(j)}} 是典型数据点(typical datapoint)。在文中,假设每对数据点都是典型的。

定义1:令 i : = p = 1 P f p n ( x ( i ) ) \nabla_{i}:=\sum_{p=1}^{P} \frac{\partial f_{p}}{\partial n}(x^{(i)}) 为给定输入 x ( i ) D x^{(i)} \in D ,网络输出的第 p t h p^{th} 坐标对神经元 n n 的导数。对每一输入 x ( i ) x^{(i)} ,导数 i \nabla_{i} 为实值随机变量。因为权重采样自零均值分布,导数具有零均值。下面两式分别为梯度的协方差和相关性:
C ( i , j ) = E [ i , j ] , C(i,j)=E[\nabla_{i}, \nabla_{j}],
R ( i , j ) = E [ i , j ] E [ i 2 ] E [ j 2 ] R(i,j)=\frac{E[\nabla_{i}, \nabla_{j}]}{\sqrt {E[\nabla_{i}^{2}] \cdot E[\nabla_{j}^{2}]}}
其中,数学期望为对分布的权重的梯度/导数求。

定理1(前向网络的梯度协方差):按照He et al. [2],假设权重由方差 σ 2 = 2 N \sigma_{2}=\frac{2}{N} 初始化,那么
a) 给定输入 x ( i ) x^{(i)} ,梯度的方差为 C f n n ( i ) = 1 C^{fnn}(i)=1
b) 给定两输入 x ( i ) x^{(i)} x ( j ) x^{(j)} ,梯度的协方差为 C f n n ( i , j ) = 1 2 L C^{fnn}(i,j)=\frac{1}{2^{L}}

定理2(残差网络的梯度协方差):考虑batch normalization disabled的残差网络,并且 α = β = 1 \alpha=\beta=1 ,初始化方法同上[2],那么
a) 给定输入 x ( i ) x^{(i)} ,梯度的方差为 C r e s ( i ) = 2 L C^{res}(i)=2^{L}
b) 给定两输入 x ( i ) x^{(i)} x ( j ) x^{(j)} ,梯度的协方差为 C r e s ( i , j ) = ( 3 2 ) L C^{res}(i,j)=(\frac{3}{2})^{L} ,相关性为 R r e s ( i , j ) = ( 3 4 ) L R^{res}(i,j)=(\frac{3}{4})^{L}

定理3(残差网络的梯度协方差,考虑BN和rescaling):

[1] The Shattered Gradients Problem If Resnets are the Answer Then What is the Question ICML 2017 [paper]
[2]

猜你喜欢

转载自blog.csdn.net/dgyuanshaofeng/article/details/83099563