初始化问题,怎么进行初始化方法的选择

本文探讨了深度学习模型中权重初始化的重要性,包括防止梯度消失和梯度爆炸。介绍了全零初始化、正态初始化、均匀初始化以及Xavier和He初始化等方法,并对比了它们在不同激活函数下的适用性。He初始化针对ReLU激活函数进行了优化,预训练权重初始化能加速收敛。关键词包括权重初始化、梯度消失、激活函数、Xavier初始化、He初始化。
摘要由CSDN通过智能技术生成

一,参数初始化的原因

不正确、不恰当的初始化的权重会导致模型训练时,更容易出现梯度消失或梯度爆炸,从而对训练过程产生负面影响。

梯度消失,使得权重更新很慢、很小,导致收敛速度变慢,最终使得损失函数的优化变慢,无法‘学习’东西,优化自己得到较优的结果,在最坏的情况下,可能会阻止网络完全收敛。相反,使用过大的权重进行初始化则可能会导致在前向传播或反向传播过程中梯度爆炸,根本无法学习‘真正有用’的知识和细节。

二,初始化的方法(常见入门)

  1. 全零(是否一开始本就为0?虽然难度更大)或等值初始化

用的少。由于初始化的值全都相同,每个神经元学到的东西也很可能一致,难以高速、有效地学习到我们需要的效果,且难以专注到有效的点,很可能导致“对称性“(Symmetry)”问题。

  1. 正态初始化(Normal Initialization)

均值为零,标准差设置一个小值。

这样的做好的好处就是有相同的偏差,权重有正有负。比较合理。

例:2012年AlexNet使用“均值为零、标准差设置为0.01、偏差为1的高斯(正常)噪声进行初始化”的初始化方法。然而,这种正常的随机初始化方法不适用于训练非常深的网络,尤其是那些使用 ReLU激活函数的网络,因为容易导致梯度消失和梯度爆炸问题。

  1. 均匀初始化(Uniform Initialization)

均匀分布的区间通常为【-1/sqrt(fan_in),1/sqrt(fan_in)】

其中fan_in表示输入神经元的数量,fan_out表示输出神经元的数量。

4.== Xavier Initialization==

在这里插入图片描述

如上图sigmoid函数图像,如果初始化值很小,那么随着层数的传递,方差就会趋于0,此时输入值也变得越来越小,在sigmoid上就是在0附近,接近于线性,失去了非线性。

如果初始值很大,那么随着层数的传递,方差会迅速增加,此时输入值变得很大,而sigmoid在大输入值写倒数趋近于0,反向传播时会遇到梯度消失的问题。

针对这个问题,Xavier 和 Bengio提出了“Xavier”初始化,它在初始化权重时考虑了网络的大小(输入和输出单元的数量)。这种方法通过使权重与前一层中单元数的平方根成反比来确保权重保持在合理的值范围内。

Xavier 的初始化有两种变体。

Xavier Normal:正态分布的均值为0、方差为sqrt( 2/(fan_in + fan_out) )。

Xavier Uniform:均匀分布的区间为【-sqrt( 6/(fan_in + fan_out)) , sqrt( 6/(fan_in + fan_out)) 】。

Xavier 初始化适用于使用tanh、sigmoid为激活函数的网络。

原文名称:《Understanding the difficulty of training deep feedforward neural networks》

  1. He Initialization

激活函数的选择最终在决定初始化方法的有效性方面发挥着重要作用。激活函数是可微的,并将非线性特性引入神经网络,这对于解决机器学习和深度学习旨在解决的复杂任务至关重要。ReLU和leaky ReLU是常用的激活函数,因为它们对消失/爆炸梯度问题相对鲁棒。

Xavier在tanh函数上表现可以,但对 ReLU 等激活函数效果不好,何凯明引入了一种更鲁棒的权重初始化方法–He Initialization。

He Initialization也有两种变体:

He Normal:正态分布的均值为0、方差为sqrt( 2/fan_in )。

He Uniform:均匀分布的区间为【-sqrt( 6/fan_in) , sqrt(6/fan_in) 】

He Initialization适用于使用ReLU、Leaky ReLU这样的非线性激活函数的网络。

He Initialization和Xavier Initialization 两种方法都使用类似的理论分析:它们为从中提取初始参数的分布找到了很好的方差。该方差适用于所使用的激活函数,并且在不明确考虑分布类型的情况下导出。
在这里插入图片描述
如上图,论文展示了何凯明改进的初始化策略(红色)如何比 §ReLU 的 Xavier 方法(蓝色)更快地降低错误率。

原文证明

  1. Pre-trained

使用预训练的权重作为初始化,相比于其它初始化,收敛速度更快,起点更好。(迁移学习)

  1. 数据相关初始化
    原文
  2. 稀疏权重矩阵初始化
    原文
  3. 随即正交矩阵初始化
    原文

本文仅作学习记录,侵删。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值