一、提出PReLU激活函数
二、提出适合ReLU与PReLU激活函数的初始化方法MSRA,可有效抵抗梯度消失,训练深度网络
发现了网络的"退化"问题,2016年的时候提出了相应的解决方案——残差结构
PReLU可以解决ReLU带来的神经元"死亡"问题,但有可能牺牲ReLU带来的稀疏性(论文中并未说明PReLU提出的目的,这是我自己的理解)
a i a_i ai是学习性参数,论文建议初始时刻将其设置为0.25, y i y_i yi表示第 i i i个通道上的值
若同一特征图上所有的通道共享同一个系数 a i a_i ai,则成为 c h a n n e l channel channel- s h a r e share share,若特征图上不同通道对应不同的系数 a i a_i ai,则称为 c h a n n e l channel channel- w i s e wise wise
相比于权重以及偏差的参数数目而言,PReLU引入的学习性参数数目基本可以忽略不计,整个模型的复杂度提升不大,因此不必过分担心过拟合的问题
假设已经求出了第n层的第 l l l张特征图的误差 δ l n \delta^n_l δln,特征图上的值为 y l n y_l^n yln,对于 c h a n n e l channel channel- w i s e wise wise而言,设该特征图的PReLU参数为 a l n a_l^n aln,则有
∂ c o s t ∂ a l n = ∑ y l n δ l n ☉ ∂ f ( y l n ) ∂ a l n \frac{\partial cost}{\partial a^n_l}=\sum_{y_l^n}\delta_l^n☉\frac{\partial f(y_l^n)}{\partial a^n_l} ∂aln∂cost=yln∑δln☉∂aln∂f(yln)
∑ y l n \sum_{y_l^n} ∑yln表示将矩阵上所有的值相加,对于 c h a n n e l channel channel- s h a r e share share而言,设第 n n n层PReLU参数为 a n a_n an,有 m m m张特征图,则有
∂ c o s t ∂ a n = ∑ l = 1 m ∑ y l n δ l n ☉ ∂ f ( y l n ) ∂ a l n \frac{\partial cost}{\partial a_n}=\sum_{l=1}^m\sum_{y_l^n}\delta_l^n☉\frac{\partial f(y_l^n)}{\partial a^n_l} ∂an∂cost=l=1∑myln∑δln☉∂aln∂f(yln)
对于存活的神经元而言,ReLU可以使梯度很好的进行传输,不会出现梯度弥散的现象,但若神经元大规模死亡,此时便会出现梯度消失的现象,整个神经网络的参数几乎无法更新,导致神经网络无法收敛,换句话说,相比于sigmoid函数,ReLU函数只是减少了梯度消失,但仍然可能出现梯度消失的情况,为了缓解ReLU带来的梯度弥散问题,我们有了MSRA初始化
1、卷积核的参数独立同分布,均值为0,概率密度函数为偶函数
2、卷积核的输入独立同分布
3、卷积核的输入与卷积核的参数相互独立
以下推导假设第 l l l层一个卷积核的大小为 n l n_l nl,第 l l l层一个卷积操作可以表示为
Y l = W l X l + b l \begin{aligned} Y_l=W_lX_l+b_l \end{aligned} Yl=WlXl+bl
其中, X l X_l Xl是一个 k l 2 c l ∗ 1 k_l^2c_l*1 kl2cl∗1的向量, k l ∗ k l k_l*k_l kl∗kl表示第 l l l层卷积大小, c l c_l cl表示第 l l l层通道个数,则有 n l = k l 2 c l n_l=k_l^2c_l nl=kl2cl, W l W_l Wl是一个 d l ∗ n l d_l*n_l dl∗nl的矩阵, d l d_l dl表示第 l l l层卷积核的个数,每行表示一个卷积,使用 y l y_l yl表示 Y l Y_l Yl向量中的第 l l l维度的值, w l n w_{ln} wln表示第 l l l行,第 n n n列元素的值, x l n x_{ln} xln表示 x l x_l xl中第n维的元素,依据下述假设:
1、卷积核的参数独立同分布
2、卷积核的输入独立同分布
3、卷积核的输入与卷积核中的值相互独立
则有
(式1.0) V a r ( y l ) = V a r ( w l 1 x l 1 + w l 2 x l 2 + . . . . . + w l n l x l n l + b l ) = V a r ( w l 1 x l 1 ) + V a r ( w l 2 x l 2 ) + . . . . . + V a r ( w l n l x l n l ) = n l V a r ( w l x l ) \begin{aligned} Var(y_l)&=Var(w_{l1}x_{l1}+w_{l2}x_{l2}+.....+w_{ln_l}x_{ln_l}+b_l)\\ &=Var(w_{l1}x_{l1})+Var(w_{l2}x_{l2})+.....+Var(w_{ln_l}x_{ln_l})\\ &=n_lVar(w_lx_l) \tag{式1.0} \end{aligned} Var(yl)=Var(wl1xl1+wl2xl2+.....+wlnlxlnl+bl)=Var(wl1xl1)+Var(wl2xl2)+.....+Var(wlnlxlnl)=nlVar(wlxl)(式1.0)
其中, w l w_l wl表示卷积核中值的随机变量, x l x_l xl表示输入值的随机变量, y l y_l yl表示输出值的随机变量
对于期望与方差,我们有下列计算公式
V a r ( x ) = E ( x 2 ) − E ( x ) 2 E ( A B ) = E ( A ) E ( B ) \begin{aligned} Var(x)=&E(x^2)-E(x)^2\\ E(AB)=&E(A)E(B) \end{aligned} Var(x)=E(AB)=E(x2)−E(x)2E(A)E(B)
基于上述性质,对于相互独立的随机变量x、y,我们有
(式1.1) V a r ( x y ) = E ( x 2 ) E ( y 2 ) − E ( x ) 2 E ( y ) 2 = [ V a r ( x ) + E ( x ) 2 ] [ V a r ( y ) + E ( y ) 2 ] − E ( x ) 2 E ( y ) 2 = V a r ( x ) V a r ( y ) + V a r ( y ) E ( x ) 2 + V a r ( x ) E ( y ) 2 = V a r ( y ) E ( x ) 2 + V a r ( x ) E ( y 2 ) \begin{aligned} Var(xy)=&E(x^2)E(y^2)-E(x)^2E(y)^2\\ =&[Var(x)+E(x)^2][Var(y)+E(y)^2]-E(x)^2E(y)^2\\ =&Var(x)Var(y)+Var(y)E(x)^2+Var(x)E(y)^2\\ =&Var(y)E(x)^2+Var(x)E(y^2) \end{aligned}\tag{式1.1} Var(xy)====E(x2)E(y2)−E(x)2E(y)2[Var(x)+E(x)2][Var(y)+E(y)2]−E(x)2E(y)2Var(x)Var(y)+Var(y)E(x)2+Var(x)E(y)2Var(y)E(x)2+Var(x)E(y2)(式1.1)
基于式1.1,式1.0可变为
(式1.2) V a r ( y l ) = n l V a r ( w l x l ) = n l [ V a r ( x l ) E ( w l ) 2 + V a r ( w l ) E ( x l 2 ) ] \begin{aligned} Var (y_l)=&n_l Var(w_lx_l)\\ =&n_l[Var(x_l)E(w_l)^2+Var(w_l)E(x_l^2)] \end{aligned}\tag{式1.2} Var(yl)==nlVar(wlxl)nl[Var(xl)E(wl)2+Var(wl)E(xl2)](式1.2)
假设 w L w_L wL的均值为0,则式1.2变为
V a r ( y l ) = n l V a r ( w l x l ) = n l V a r ( w l ) E ( x l 2 ) ( 式 1.3 ) Var (y_l)=n_l Var(w_lx_l)=n_lVar(w_l)E(x_l^2)(式1.3) Var(yl)=nlVar(wlxl)=nlVar(wl)E(xl2)(式1.3)
在卷积神经网络中,假设使用ReLu激活函数,有
x l = m a x ( 0 , y l − 1 ) x_l=max(0,y_{l-1}) xl=max(0,yl−1)
我们先引入下列定理:
假设随机变量x的概率密度函数为g(x),则x的复合函数f(x)的均值为
E ( f ( x ) ) = ∫ − ∞ + ∞ f ( x ) g ( x ) d x E(f(x))=\int_{-\infty}^{+\infty}f(x)g(x)dx E(f(x))=∫−∞+∞f(x)g(x)dx
依据下述假设
卷积核的参数均值为0,概率密度函数为偶函数
令 b l b_l bl=0,由于
y l = w l x l y_l=w_lx_l yl=wlxl
E [ y l ] = E [ w l x l ] = E [ w l ] E [ x l ] = 0 E[y_l]=E[w_lx_l]=E[w_l]E[x_l]=0 E[yl]=E[wlxl]=E[wl]E[xl]=0
f ( y l ) = ∫ − ∞ + ∞ 1 ∣ x l ∣ f ( y l x l ) f ( x l ) d x l = ∫ − ∞ + ∞ 1 ∣ x l ∣ f ( w l ) f ( x l ) d x l f(y_l)=\int_{-\infty}^{+\infty}\frac{1}{|x_{l}|}f(\frac{y_l}{x_l})f(x_l)dx_l=\int_{-\infty}^{+\infty}\frac{1}{|x_{l}|}f(w_l)f(x_l)dx_l f(yl)=∫−∞+∞∣xl∣1f(xlyl)f(xl)dxl=∫−∞+∞∣xl∣1f(wl)f(xl)dxl
f ( − y l ) = ∫ − ∞ + ∞ 1 ∣ x l ∣ f ( − y l x l ) f ( x l ) d x l = ∫ − ∞ + ∞ 1 ∣ x l ∣ f ( w l ) f ( x l ) d x l f(-y_l)=\int_{-\infty}^{+\infty}\frac{1}{|x_{l}|}f(\frac{-y_l}{x_l})f(x_l)dx_l=\int_{-\infty}^{+\infty}\frac{1}{|x_{l}|}f(w_l)f(x_l)dx_l f(−yl)=∫−∞+∞∣xl∣1f(xl−yl)f(xl)dxl=∫−∞+∞∣xl∣1f(wl)f(xl)dxl
则 y l y_l yl均值也为0,概率密度函数也为偶函数。
设 Z ( y l − 1 ) = x l 2 = [ m a x ( 0 , y l − 1 ) ] 2 Z(y_{l-1})=x_l^2=[max(0,y_{l-1})]^2 Z(yl−1)=xl2=[max(0,yl−1)]2,随机变量 y l − 1 y_{l-1} yl−1的概率密度函数为 f ( y l − 1 ) f(y_{l-1}) f(yl−1),则有
E ( Z ( y l − 1 ) ) = E ( x l 2 ) = ∫ − ∞ + ∞ [ m a x ( 0 , y l − 1 ) ] 2 f ( y l − 1 ) d y l − 1 = ∫ − ∞ 0 [ m a x ( 0 , y l − 1 ) ] 2 f ( y l − 1 ) d y l − 1 + ∫ 0 + ∞ [ m a x ( 0 , y l − 1 ) ] 2 f ( y l − 1 ) d y l − 1 = ∫ 0 + ∞ [ m a x ( 0 , y l − 1 ) ] 2 f ( y l − 1 ) d y l − 1 = ∫ 0 + ∞ y l − 1 2 f ( y l − 1 ) d y l − 1 \begin{aligned} E(Z(y_{l-1}))=E(x_l^2)&=\int_{-\infty}^{+\infty}[max(0,y_{l-1})]^2f(y_{l-1})dy_{l-1}\\ &=\int_{-\infty}^{0}[max(0,y_{l-1})]^2f(y_{l-1})dy_{l-1}+\int_{0}^{+\infty}[max(0,y_{l-1})]^2f(y_{l-1})dy_{l-1}\\ &=\int_{0}^{+\infty}[max(0,y_{l-1})]^2f(y_{l-1})dy_{l-1}\\ &=\int_{0}^{+\infty}y_{l-1}^2f(y_{l-1})dy_{l-1} \end{aligned} E(Z(yl−1))=E(xl2)=∫−∞+∞[max(0,yl−1)]2f(yl−1)dyl−1=∫−∞0[max(0,yl−1)]2f(yl−1)dyl−1+∫0+∞[max(0,yl−1)]2f(yl−1)dyl−1=∫0+∞[max(0,yl−1)]2f(yl−1)dyl−1=∫0+∞yl−12f(yl−1)dyl−1
V a r ( y l − 1 ) = ∫ − ∞ + ∞ y l − 1 2 f ( y l − 1 ) d y l − 1 = ∫ − ∞ 0 y l − 1 2 f ( y l − 1 ) d y l − 1 + ∫ 0 + ∞ y l − 1 2 f ( y l − 1 ) d y l − 1 = 2 ∫ 0 + ∞ y l − 1 2 f ( y l − 1 ) d y l − 1 ( y l − 1 2 f ( y l − 1 ) 是 偶 函 数 ) \begin{aligned} Var(y_{l-1})=&\int_{-\infty}^{+\infty}y_{l-1}^2f(y_{l-1})dy_{l-1}\\ =&\int_{-\infty}^{0}y_{l-1}^2f(y_{l-1})dy_{l-1}+\int_{0}^{+\infty}y_{l-1}^2f(y_{l-1})dy_{l-1}\\ =&2\int_{0}^{+\infty}y_{l-1}^2f(y_{l-1})dy_{l-1}\\ \\&(y_{l-1}^2f(y_{l-1})是偶函数) \end{aligned} Var(yl−1)===∫−∞+∞yl−12f(yl−1)dyl−1∫−∞0yl−12f(yl−1)dyl−1+∫0+∞yl−12f(yl−1)dyl−12∫0+∞yl−12f(yl−1)dyl−1(yl−12f(yl−1)是偶函数)
所以有
E ( x l 2 ) = 1 2 V a r ( y l − 1 ) E(x_l^2)=\frac{1}{2}Var(y_{l-1}) E(xl2)=21Var(yl−1)
将其代入式1.3,则有
V a r ( y l ) = n l V a r ( w l x l ) = 1 2 n l V a r ( w l ) V a r ( y l − 1 ) Var (y_l)=n_l Var(w_lx_l)=\frac{1}{2}n_lVar(w_l)Var(y_{l-1}) Var(yl)=nlVar(wlxl)=21nlVar(wl)Var(yl−1)
为了让 l l l层与 l − 1 l-1 l−1层的输出方差一致,即 V a r ( y l ) = V a r ( y l − 1 ) Var(y_l)=Var(y_{l-1}) Var(yl)=Var(yl−1),则有
(式1.3) V a r ( w l ) = 2 n l Var(w_l)=\frac{2}{n_l}\tag{式1.3} Var(wl)=nl2(式1.3)
若使用 Δ x l c \Delta x^c_l Δxlc表示第 l l l层特征图的通道方向的误差,若通道数为 c l c_l cl,则 Δ x l c l \Delta x^{c_l}_l Δxlcl是一个 c l ∗ 1 c_l*1 cl∗1的向量,设第 l l l层卷积核的空间分辨率为 k l ∗ k l k_l*k_l kl∗kl,使用 Δ y l \Delta y_l Δyl表示第 l l l层卷积后输出的 k l ∗ k l k_l*k_l kl∗kl像素的误差,若通道数为 d l d_l dl,设 n ^ = k l 2 d l \hat n=k_l^2d_l n^=kl2dl,则 w ^ l \hat w_l w^l是一个 c ∗ n ^ c*\hat n c∗n^的矩阵, Δ y l \Delta y_l Δyl是一个 n ^ ∗ 1 \hat n*1 n^∗1的向量,则有
(式2.0) Δ x l c = w ^ l Δ y l \Delta x^c_l=\hat w_l\Delta y_l \tag{式2.0} Δxlc=w^lΔyl(式2.0)
(上述式子我推不出来,若有哪位同学推出来了,望告知我,不胜感激)
1、第 l l l层卷积核的参数 w l w_l wl与第 l l l层特征图卷积后输出的 k ∗ k k*k k∗k像素的误差 Δ y l \Delta y_l Δyl相互独立
2、第 l l l层卷积核的参数 w l w_l wl服从均值为0的对称分布
3、第 l + 1 l+1 l+1层输入的导数 f ′ ( y l ) f'(y_l) f′(yl)与第 l + 1 l+1 l+1层的误差 Δ x l + 1 \Delta x_{l+1} Δxl+1相互独立
4、第 l l l层的误差 Δ x l + 1 \Delta x_{l+1} Δxl+1独立同分布
依据上述假设以及式2.0,我们有
E ( Δ x l ) = E ( Δ x l c ) = E ( w ^ l Δ y l ) = E ( w ^ l ) E ( Δ y l ) = 0 E(\Delta x_l)=E(\Delta x^c_l)=E(\hat w_l \Delta y_l)=E(\hat w_l)E(\Delta y_l)=0\\ E(Δxl)=E(Δxlc)=E(w^lΔyl)=E(w^l)E(Δyl)=0
f ( Δ x l ) = ∫ − ∞ + ∞ 1 ∣ Δ y l ∣ f ( Δ x l Δ y l ) f ( Δ y l ) d y l = ∫ − ∞ + ∞ 1 ∣ Δ y l ∣ f ( w ^ l ) f ( Δ y l ) d Δ y l f(\Delta x_l)=\int_{-\infty}^{+\infty}\frac{1}{|\Delta y_{l}|}f(\frac{\Delta x_l}{ \Delta y_l})f(\Delta y_l)dy_l=\int_{-\infty}^{+\infty}\frac{1}{|\Delta y_{l}|}f(\hat w_l)f(\Delta y_l)d\Delta y_l f(Δxl)=∫−∞+∞∣Δyl∣1f(ΔylΔxl)f(Δyl)dyl=∫−∞+∞∣Δyl∣1f(w^l)f(Δyl)dΔyl
f ( − Δ x l ) = ∫ − ∞ + ∞ 1 ∣ Δ y l ∣ f ( − Δ x l Δ y l ) f ( Δ y l ) d y l = ∫ − ∞ + ∞ 1 ∣ Δ y l ∣ f ( w ^ l ) f ( Δ y l ) d Δ y l f(-\Delta x_l)=\int_{-\infty}^{+\infty}\frac{1}{|\Delta y_{l}|}f(\frac{-\Delta x_l}{ \Delta y_l})f(\Delta y_l)dy_l=\int_{-\infty}^{+\infty}\frac{1}{|\Delta y_{l}|}f(\hat w_l)f(\Delta y_l)d\Delta y_l f(−Δxl)=∫−∞+∞∣Δyl∣1f(Δyl−Δxl)f(Δyl)dyl=∫−∞+∞∣Δyl∣1f(w^l)f(Δyl)dΔyl
因此, Δ x l \Delta x_l Δxl也为服从均值为0的对称分布
由于 Δ y l = f ′ ( y l ) Δ x l + 1 \Delta y_l=f'(y_l)\Delta x_{l+1} Δyl=f′(yl)Δxl+1,则有
E ( Δ y l ) = E ( f ′ ( y l ) Δ x l + 1 ) = E ( f ′ ( y l ) ) E ( Δ x l + 1 ) = 0 E(\Delta y_l)=E(f'(y_l)\Delta x_{l+1})=E(f'(y_l))E(\Delta x_{l+1})=0 E(Δyl)=E(f′(yl)Δxl+1)=E(f′(yl))E(Δxl+1)=0
V a r ( Δ y l ) = E [ ( Δ y l ) 2 ] = ∫ − ∞ + ∞ ( f ′ ( y l ) Δ x l + 1 ) 2 g ( Δ x l + 1 ) d ( Δ x l + 1 ) = ∫ 0 + ∞ ( Δ x l + 1 ) 2 g ( Δ x l + 1 ) d ( Δ x l + 1 ) = 1 2 V a r ( Δ x l + 1 ) \begin{aligned} Var(\Delta y_l)=E[(\Delta y_l)^2]=&\int_{-\infty}^{+\infty}(f'(y_l)\Delta x_{l+1})^2g(\Delta x_{l+1})d(\Delta x_{l+1})\\ =&\int_{0}^{+\infty}(\Delta x_{l+1})^2g(\Delta x_{l+1})d(\Delta x_{l+1})\\ =&\frac{1}{2} Var(\Delta x_{l+1}) \end{aligned} Var(Δyl)=E[(Δyl)2]===∫−∞+∞(f′(yl)Δxl+1)2g(Δxl+1)d(Δxl+1)∫0+∞(Δxl+1)2g(Δxl+1)d(Δxl+1)21Var(Δxl+1)
因此有
V a r ( Δ x l ) = V a r ( Δ x l c ) = n ^ l V a r ( w ^ ) V a r ( Δ y l ) = 1 2 n ^ l V a r ( w ^ ) V a r ( Δ x l + 1 ) Var(\Delta x_l)=Var(\Delta x_l^c)=\hat n_lVar(\hat w)Var(\Delta y_l)=\frac{1}{2}\hat n_l Var(\hat w)Var(\Delta x_{l+1}) Var(Δxl)=Var(Δxlc)=n^lVar(w^)Var(Δyl)=21n^lVar(w^)Var(Δxl+1)
为了让 l + 1 l+1 l+1层与 l l l层的梯度一致,则有
(式2.1) V a r ( w l ) = 2 n ^ l Var(w_l)=\frac{2}{\hat n_l}\tag{式2.1} Var(wl)=n^l2(式2.1)
与式1.3不同的地方在于式1.3中的 n l n_l nl是第 l − 1 l-1 l−1层特征图的个数,而 n ^ l \hat n_{l} n^l是第 l l l层的特征图的个数
MSRA初始化时,只会单独使用式2.1或是式1.3,如果单独使用式2.1,设第 l l l层的特征图数目为 d l d_l dl,对于前向传播而言,则有
V a r ( y L ) = V a r ( y 1 ) ∏ l = 2 L 1 2 n l V a r ( w l ) = V a r ( y 1 ) ∏ l = 2 L n l n ^ l = d 1 d L V a r ( y 1 ) Var (y_L)=Var(y_{1})\prod_{l=2}^{L}\frac{1}{2}n_lVar(w_l)=Var(y_{1})\prod_{l=2}^{L}\frac{n_l}{\hat n_l}=\frac{d_1}{d_L}Var(y_1) Var(yL)=Var(y1)l=2∏L21nlVar(wl)=Var(y1)l=2∏Ln^lnl=dLd1Var(y1)
一般来说,第一层与最后一层卷积核的卷积核个数相差基本不大(至少对于凯明老师的一些网络来说,是这样),因此,单独使用式2.1,并不会导致前向传播的信息大规模的衰减,对于式1.3,同理
由于权重应该服从对称分布,因此我们将其初始化为均值为0的高斯分布
可以看到,不论是MSRA初始化还是Xavier初始化,均以方差相等来进行分析,这是为什么呢?以下为本人的猜测。
使用方差作为分析工具,应该是假定了梯度本身服从均值为0的正态分布,若把梯度看成是无限个随机事件叠加的结果,依据中心极限定理,梯度应该服从正态分布,均值为0我暂时想不到咋回事,而xavier初始化的论文中,也贴出了梯度的归一化直方图,大致上的确为均值为0的正态分布,而正态分布的方差越小,概率密度函数越高瘦,梯度取值为0的概率越大,若不同层的方差一致,则不会出现反向传播越靠后的层,梯度为0的概率越大的情况