常见的四种初始化方式

  • 初始化为常数或者0
  • 权重初始化方式初始化
  • Xavier初始化
  • Kaiming初始化

 相同点:四种更新方式的权重均值都为0

后三种初始化的目的是,设计初始化权重的方差权重初始化方式,使得每层的输出值权重初始化方式 的方差与输入值权重初始化方式的方差是一样的。

----- 输入输出方差一致性

初始化方式 特点

初始化为常数或者0

同层神经元的输入输出完全相同且更新相同

权重初始化方式 初始化

不考虑**函数,只利用状态值,只考虑了正向传播,得到 权重初始化方式

Xavier初始化

不考虑**函数,只利用状态值,既考虑正向传播又考虑反向传播,使用调和平均数,得到权重初始化方式
Kaiming初始化 考虑**函数(ReLu),既考虑正向又考虑反向传播,但是只任取其一即可,得到权重初始化方式

注:后三种方式网络的权重初始化,是指对每一层分别按照0均值,不同方差(与权重初始化方式权重初始化方式有关)的正态分布进行初始化。

正向传播过程

权重初始化方式

权重初始化方式

权重初始化方式

权重初始化方式

权重初始化方式

本文以全连接网络为例

1. 初始化化为常数(或者0)

(1)分析对权重初始化方式 的导数

权重初始化方式

可以看出,如果将权重初始化为常数,那么网络同一层神经元的输出值都是一样的,从而导致梯度也相同,权重的更新也相同,那么同一层的神经元都完全相同,显然是不合理的。

更特殊的是如果权重和偏置都设置为0,那么梯度也为0,整个网络将不能更新

(2)分析对权重初始化方式的导数

权重初始化方式

可以看出每层bias的更新都是相同的

 

2. 权重初始化方式 初始化

一些假设:

权重初始化方式

由于前两个假设条件,我们可以将**函数看做是恒等映射,也就是相当于没有**函数。

那么要解决的问题就是将权重W初始化成什么值可以使得输入权重初始化方式 输出权重初始化方式 的方差保持不变。

下面将通过权重初始化方式 、权重初始化方式 与 权重初始化方式 之间的关系推导得出:想要保证输入输出方差不变时,权重初始化方式 需要满足的条件。

正向传播过程中,只考虑状态值(**函数之前):

权重初始化方式

权重初始化方式

...

输出值权重初始化方式 、权重初始化方式 与 权重初始化方式 之间的关系推导:

权重初始化方式

权重初始化方式

为什么要保证输入输出方差的一致性?

对于L层神经网络有:

权重初始化方式

权重初始化方式

...

权重初始化方式

所以可以得到:

权重初始化方式

由上式可知,由于连乘的存在,如果权重初始化方式 ,其太大或者太小都会导致随着网络的加深出现问题,所以需要保证输入输出方差的一致性。

 

3. Xavier初始化

Xvaier在 权重初始化方式 初始化⽅法的基础上考虑了反向传播的梯度输⼊输出的⽅差⼀致性。

由于正向的推导和权重初始化方式 初始化⽅法⼀样,并且得出的结论也⼀样,所以下⾯只推导反向传播。

反向传播过程中,只考虑状态值(**函数之前):

权重初始化方式

权重初始化方式

...

则反向传播有:

权重初始化方式

那么对于第一层的第j个神经元求偏导有:

权重初始化方式

输出值权重初始化方式 、权重初始化方式 与 权重初始化方式 之间的关系推导:

(推导过程同正向传播一样,只不过换成偏导数,即通过偏导数的等式建立权重初始化方式 和权重初始化方式之间的关系)

将上述式子两边取方差:

权重初始化方式

 

那么前向推导和后向推导就得到权重初始化方式两个约束条件

权重初始化方式

权重初始化方式

一般情况下,网络的权重初始化方式权重初始化方式是不相同的,所以前向后向这两个约束无法同时满足。论文作者采用了调和平均数得到了如下的约束条件:

权重初始化方式

权重初始化方式

Xavier所适合的**函数有限:
1. 关于0对称
2. 线性,也就是没有考虑**函数,或者初始状态在**函数的线性部分
ReLU并不满足这些条件,实验也验证了Xavier初始化确实不适用ReLU**函数。

相关文章: