Pytorch框架学习(9)——权值初始化

本文探讨了梯度消失与梯度爆炸的问题,介绍了Xavier与Kaiming两种权重初始化方法,旨在帮助深度学习模型更好地收敛。文章详细解释了两种方法背后的理论依据,并对比了它们适用的不同激活函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 梯度消失与梯度爆炸

不恰当的权值初始化可能会引起梯度消失或者梯度爆炸。
我们从一个例子中来理解梯度消失与梯度爆炸。,下图给出一个两层网络,我们来计算一下 W 2 W_2 W2的梯度。
在这里插入图片描述
在这里插入图片描述
从计算过程中可以看到,当 H 1 H_1 H1趋近于0时,会导致 W 2 W_2 W2的梯度趋近于0,造成梯度消失;当 H 1 H_1 H1趋近于无穷时,会导致 W 2 W_2 W2的梯度趋近于无穷,造成梯度爆炸。
因此,要避免梯度消失或者梯度爆炸,就要控制网络输出层的值的尺度范围,也就是每一层网络输出值不能过大或者太小。

2. Xavier方法与Kaiming方法

2.1 Xavier初始化

  • 方差一致性:保持数据尺度维持在恰当范围,通常方差为1(尽量让每个网络层输出的方差等于1)
  • 激活函数:饱和函数,如Sigmoid, Tanh
    在这里插入图片描述
    n i n_i ni是输入层的神经元个数, n i + 1 n_{i+1} ni+1表示输出层神经元的个数,权值w的初始化值可按照上述公式推导方法得到。

2.2 Kaiming初始化

参考文献《Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification》

  • 方差一致性:保持数据尺度维持在恰当范围,通常方差为1
  • 激活函数:ReLU及其变种

3. 常用初始化方法

  1. Xavier均匀分布
  2. Xavier标准正态分布
  3. Kaiming均匀分布
  4. Kaiming标准正态分布
  5. 均匀分布
  6. 正态分布
  7. 常数分布
  8. 正交矩阵初始化
  9. 单位矩阵初始化
  10. 稀疏矩阵初始化
  • nn.init.calculate_gain
    • 功能:计算方法变化尺度:输入数据的方差除以经过激活函数之后输出数据的方差。
    • 主要参数
      • nonlinearity:激活函数名称
      • param:激活函数的参数,如leaky ReLU的negative_slop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aidanmomo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值