正确的权重初始化有利于网络收敛,权重初始化的目的是防止**值饱导致梯度不能传播。两种权重初始化方式:Xavier和hekaiming。本文介绍Xavier,论文名:Understanding the difficulty of training deep feedforward neural 。
1 Xavier概述
Xavier初始化是2010年由Xavier提出来的。这篇文章假设条件比较多,模型结构为简单的5层全连阶层,假设**函数有如下性质:
- 当**函数是线性**函数。
- 满足。
- **函数关于原点对称,这样可以使均值为0.
论文首先使用标准的初始化方法~,使用tanh**函数,观察**值(图1.1)、反向梯度(图1.2)和对权重的梯度图。
2 Xavier推导
2.1 前向传播
保证每层**值的方差相等就可以了。推导过程:
设、,注意本文的公式与论文中的不同。则根据bp推导:
根据可得:
2.2 反向传播
保证反向传播的梯度(损失函数对**函数的输入值的求导)的方差相等就可以了。
根据,可得:
根据前向传播和反向传播,取一个中间值:
可得:
除此之外还可以求得(并未参与其他计算):
3 缺点
- 对**函数限制太多。
- 只能用于几层的神经网络(论文中为5层)。
注:参考文章