文章目录
一. 权值初始化
权值初始化是深度学习中的一个重要步骤,指的是在训练神经网络之前为网络中的权重和偏置设置初始值。合适的权值初始化对于网络的训练效率和最终性能至关重要。
权值初始化主要有以下作用:
- 打破对称性:避免神经元因初始权值相同而等价,使每个神经元能学习不同特征。
- 避免梯度问题:防止梯度消失或梯度爆炸,像Xavier和Kaiming初始化方法能根据网络情况稳定梯度。
- 加速收敛:让网络在训练初期处于良好状态,加快损失函数下降,提升训练效率。
1. 零初始化(Zero Initialization)
零初始化将神经网络中的所有权值都初始化为0。 这种方法简单,但存在严重问题。
在神经网络中,如果所有神经元的权重初始值都相同,那么在反向传播时,所有神经元将计算出相同的梯度,导致它们的权重更新也相同。这样,多个神经元就会变得完全等价,相当于只有一个神经元在起作用,网络无法学习到有效的特征。
因此,零初始化一般不被采用,尤其是在深层神经网络中。
2. 随机初始化(Random Initialization)
从一个特定的概率分布(如均匀分布或正态分布)中随机采样来初始化权值。例如,使用均值为0、标准差为1的正态分布来初始化权重。
这种方法打破了对称性问题,使每个神经元具有不同的初始权重,能够学习到不同的特征。然而,随机初始化存在一个潜在问题:如果随机分布的标准差选择不当,可能会导致梯度消失或梯度爆炸问题,尤其是在深层神经网络中。
例如,在深层网络中,如果权重初始值过大,在前向传播过程中,激活值可能会迅速增大,导致梯度爆炸;反之,如果权重初始值过小,激活值可能会迅速趋近于0,导致梯度消失。
3. Xavier初始化
由Xavier Glorot提出,
- 对于线性激活函数(如tanh),权重的初始化通常基于均匀分布 U ( − 1 n i n , 1 n i n ) U\left(-\frac{1}{\sqrt{n_{in}}},\frac{1}{\sqrt{n_{in}}}\right) U(−nin1,nin