常见的四种初始化方式
- 初始化为常数或者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**函数。