深度学习论文笔记(MSRA初始化与PReLU):Surpassing Human-Level Performance on ImageNet Classification

文章目录

  • 主要工作
  • PReLU激活函数
    • PReLU定义
    • PReLU中参数的反向传播
  • MSRA初始化
    • 目的
    • 前向传播
      • 假设
      • 推导
    • 反向传播
      • 假设与推导
    • MSRA初始化
    • 为什么以方差作为分析工具

主要工作

一、提出PReLU激活函数
二、提出适合ReLU与PReLU激活函数的初始化方法MSRA,可有效抵抗梯度消失,训练深度网络

发现了网络的"退化"问题,2016年的时候提出了相应的解决方案——残差结构
PReLU可以解决ReLU带来的神经元"死亡"问题,但有可能牺牲ReLU带来的稀疏性(论文中并未说明PReLU提出的目的,这是我自己的理解)


PReLU激活函数


PReLU定义

深度学习论文笔记(MSRA初始化与PReLU):Surpassing Human-Level Performance on ImageNet Classification_第1张图片

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引入的学习性参数数目基本可以忽略不计,整个模型的复杂度提升不大,因此不必过分担心过拟合的问题


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} alncost=ylnδlnalnf(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} ancost=l=1mylnδlnalnf(yln)


MSRA初始化


目的

对于存活的神经元而言,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 kl2cl1的向量, k l ∗ k l k_l*k_l klkl表示第 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 dlnl的矩阵, 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,yl1)

我们先引入下列定理:

假设随机变量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)=+xl1f(xlyl)f(xl)dxl=+xl1f(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)=+xl1f(xlyl)f(xl)dxl=+xl1f(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(yl1)=xl2=[max(0,yl1)]2,随机变量 y l − 1 y_{l-1} yl1的概率密度函数为 f ( y l − 1 ) f(y_{l-1}) f(yl1),则有
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(yl1))=E(xl2)=+[max(0,yl1)]2f(yl1)dyl1=0[max(0,yl1)]2f(yl1)dyl1+0+[max(0,yl1)]2f(yl1)dyl1=0+[max(0,yl1)]2f(yl1)dyl1=0+yl12f(yl1)dyl1



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(yl1)===+yl12f(yl1)dyl10yl12f(yl1)dyl1+0+yl12f(yl1)dyl120+yl12f(yl1)dyl1(yl12f(yl1))

所以有
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(yl1)
将其代入式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(yl1)

为了让 l l l层与 l − 1 l-1 l1层的输出方差一致,即 V a r ( y l ) = V a r ( y l − 1 ) Var(y_l)=Var(y_{l-1}) Var(yl)=Var(yl1),则有
(式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 cl1的向量,设第 l l l层卷积核的空间分辨率为 k l ∗ k l k_l*k_l klkl,使用 Δ y l \Delta y_l Δyl表示第 l l l层卷积后输出的 k l ∗ k l k_l*k_l klkl像素的误差,若通道数为 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 cn^的矩阵, Δ 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 kk像素的误差 Δ 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)=+Δyl1f(ΔylΔxl)f(Δyl)dyl=+Δyl1f(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)=+Δyl1f(ΔylΔxl)f(Δyl)dyl=+Δyl1f(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 l1层特征图的个数,而 n ^ l \hat n_{l} n^l是第 l l l层的特征图的个数


MSRA初始化

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=2L21nlVar(wl)=Var(y1)l=2Ln^lnl=dLd1Var(y1)
一般来说,第一层与最后一层卷积核的卷积核个数相差基本不大(至少对于凯明老师的一些网络来说,是这样),因此,单独使用式2.1,并不会导致前向传播的信息大规模的衰减,对于式1.3,同理

由于权重应该服从对称分布,因此我们将其初始化为均值为0的高斯分布


为什么以方差作为分析工具

可以看到,不论是MSRA初始化还是Xavier初始化,均以方差相等来进行分析,这是为什么呢?以下为本人的猜测。
使用方差作为分析工具,应该是假定了梯度本身服从均值为0的正态分布,若把梯度看成是无限个随机事件叠加的结果,依据中心极限定理,梯度应该服从正态分布,均值为0我暂时想不到咋回事,而xavier初始化的论文中,也贴出了梯度的归一化直方图,大致上的确为均值为0的正态分布,而正态分布的方差越小,概率密度函数越高瘦,梯度取值为0的概率越大,若不同层的方差一致,则不会出现反向传播越靠后的层,梯度为0的概率越大的情况

你可能感兴趣的:(深度学习)