Xavier

正确的权重初始化有利于网络收敛,权重初始化的目的是防止激活值饱导致梯度不能传播。两种权重初始化方式:Xavier和hekaiming。本文介绍Xavier,论文名:Understanding the difficulty of training deep feedforward neural 。

1 Xavier概述

Xavier初始化是2010年由Xavier提出来的。这篇文章假设条件比较多,模型结构为简单的5层全连阶层,主要用于初始化全连接层,假设激活函数有如下性质:

  1. 当激活函数是线性激活函数。
  2. 满足 f ′ ( 0 ) = 1 f'(0)=1 f(0)=1
  3. 激活函数关于原点对称,这样可以使均值为0.

论文首先使用标准的初始化方法 W i , j W_{i,j} Wi,j~ U [ − 1 n , 1 n ] U[-\frac{1}{\sqrt n},\frac{1}{\sqrt n}] U[n 1,n 1],使用tanh激活函数,观察激活值(图1.1)、反向梯度(图1.2)和对权重的梯度图。
Xavier_第1张图片

图1.1 激活值图:上图是标准初始化,下图是Xavier初始化

Xavier_第2张图片

图1.2 反向梯度值图:上图是标准初始化,下图是Xavier初始化

2 Xavier推导

2.1 前向传播

保证每层激活值的方差相等就可以了。推导过程:
z i = w i ∗ h i − 1 z^i=w^i*h^{i-1} zi=wihi1 h i = f ( z i ) h^i=f(z^i) hi=f(zi),注意本文的公式与论文中的不同。则根据bp推导:
Xavier_第3张图片
Xavier_第4张图片
根据 V a r ( h l i ) = V a r ( h l i + 1 ) Var(h^i_l)=Var(h^{i+1}_l) Var(hli)=Var(hli+1)可得:
在这里插入图片描述

2.2 反向传播

保证反向传播的梯度(损失函数对激活函数的输入值的求导)的方差相等就可以了。
Xavier_第5张图片
根据 V a r ( ∂ C o s t ∂ z i ) = V a r ( ∂ C o s t ∂ z i + 1 ) Var(\frac{\partial{Cost}}{\partial z^i})=Var(\frac{\partial{Cost}}{\partial z^{i+1}}) Var(ziCost)=Var(zi+1Cost),可得:
在这里插入图片描述
根据前向传播和反向传播,取一个中间值:

在这里插入图片描述
可得:
在这里插入图片描述
V a r ( W ) = 1 n Var(W)=\frac{1}{n} Var(W)=n1
除此之外还可以求得(并未参与其他计算):
Xavier_第6张图片

3 缺点

  1. 对激活函数限制太多。
  2. 只能用于几层的神经网络(论文中为5层)。

注:参考文章

你可能感兴趣的:(论文阅读)