对于神经网络参数初始化的一些理解

参数初始化

*
动机
1. 预训练初始化
2. 随机初始化

+ 2.1 高斯(Gaussian)分布初始化
+ 2.2 均匀分布初始化
+ 2.3 根据范数保持性(Norm-Preserving)
+
* 2.3.1 通过方差缩放的方式
* 2.3.2 正交初始化
3. 固定值初始化
4. 混合初始化

动机

神经网络本身是个非凸优化问题,并且容易出现梯度消失情况,因此参数初始化是很重要的。
注意神经网络的参数初始化不能为0,因此如果为0的话,同一层的神经元就是一个固定的输出值,一直到最后的输出值,无法区分每个神经元的行为,因此无法表示出神经元的能力。

1. 预训练初始化

先在大量数据上预训练(pre-train)一个骨干网络(backbone),然后把骨干网络,在不同的下游任务上进行微调(fune-turning)。

2. 随机初始化

直接对所有的参数随机进行初始化。

2.1 高斯(Gaussian)分布初始化

参数从一个固定均值(比如0)和固定方差(比如0.01)的高斯分布上进行随机初始化。

2.2 均匀分布初始化

参数可以在区间[ − r , r ] [-r, r][−r ,r ]内采用均匀分布进行初始化。为了优化的高效,不能采用很大的参数,比如饱和型的激活函数,容易直接产生梯度消失。

2.3 根据范数保持性(Norm-Preserving)

  • 一个M层的等宽线性网络:
    对于神经网络参数初始化的一些理解
  • 为了避免梯度消失或者梯度爆炸问题,希望误差项通过范数保持性来估计:
    对于神经网络参数初始化的一些理解

; 2.3.1 通过方差缩放的方式

由最左边的误差项跟最右边的误差项的模既不放大也不缩小,所以通过让他们乘起来等于单位阵I I I。
例如Xavier初始化和He初始化。

通过正交初始化的方式:直接找到一组正交的w w w,让他们相乘等于单位阵I I I。

2.3.2 正交初始化

对于神经网络参数初始化的一些理解
用均值为0、方差为1的高斯分布初始化一个矩阵,将该矩阵用奇异值分解得到两个正交矩阵,使用其一作为权重矩阵。通常用在循环神经网络的hidden state到hidden state之间的连接权重上。

; 3. 固定值初始化

有些参数比较重要,需要用特定的值进行初始化,比如偏置(bias)通常需要初始化为0、或者循环神经网络(RNN)里的遗忘门(forget gate)。

4. 混合初始化

混合采用以上的初始化方式,对不同部分的参数进行不同方法的初始化方法。

Original: https://blog.csdn.net/qq_37320017/article/details/124394776
Author: YunGo
Title: 对于神经网络参数初始化的一些理解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/697122/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球