(二)深度学习基础 -- 7 数值稳定性和模型初始化

7. 数值稳定性和模型初始化

7.1 数值稳定性

深度学习模型有关数值稳定性的典型问题是:梯度消失(gradient vanishing)和梯度爆炸(gradient exploding)。

当神经网络的层数较多时,模型的数值稳定性容易变差。

假设一个层数为 L L L的多层感知机的第 l l l H ( l ) \boldsymbol{H}^{(l)} H(l)的权重参数为 W ( l ) \boldsymbol{W}^{(l)} W(l),输出层 H ( L ) \boldsymbol{H}^{(L)} H(L)的权重参数为 W ( L ) \boldsymbol{W}^{(L)} W(L)
不考虑偏差参数,设所有隐藏层的激活函数为恒等映射(identity mapping): ϕ ( x ) = x \phi(x) = x ϕ(x)=x

  • 在数学中,恒等函数(也称恒等关系/恒等映射/恒等变换)是始终返回与其参数相同的值的函数。即,对于f是恒等式,对所有x都有等式 f(x)=x 。

给定输入 X \boldsymbol{X} X,多层感知机的第 l l l层的输出 H ( l ) = X W ( 1 ) W ( 2 ) … W ( l ) \boldsymbol{H}^{(l)} = \boldsymbol{X} \boldsymbol{W}^{(1)} \boldsymbol{W}^{(2)} \ldots \boldsymbol{W}^{(l)} H(l)=XW(1)W(2)W(l)
此时,如果层数 l l l较大, H ( l ) \boldsymbol{H}^{(l)} H(l)的计算可能会出现梯度消失或梯度爆炸。

详细来说,假设输入和所有层的权重参数都是标量,权重参数为0.2和5,则多层感知机的第30层输出为:
输入 X \boldsymbol{X} X 0. 2 30 ≈ 1 × 1 0 − 21 0.2^{30} \approx 1 \times 10^{-21} 0.2301×1021(梯度消失)的乘积,或输入 X \boldsymbol{X} X 5 30 ≈ 9 × 1 0 20 5^{30} \approx 9 \times 10^{20} 5309×1020(梯度爆炸)的乘积。

类似地,当层数较多时,梯度的计算也更容易出现梯度消失或梯度爆炸。



7.2 模型初始化

在神经网络中,需要随机初始化模型参数,具体原因如下:

回顾 (二)深度学习基础 – 3 小节,下图所示的多层感知机。

假设输出层只保留一个输出单元 o 1 o_1 o1(删去 o 2 o_2 o2 o 3 o_3 o3以及指向它们的箭头),且隐藏层使用相同的激活函数,如果将每个隐藏单元的参数都初始化为相等的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。在反向传播中,每个隐藏单元的参数梯度值相等。因此,这些参数在使用基于梯度的优化算法迭代后值依然相等。之后的迭代也是如此。在这种情况下,无论隐藏单元有多少,隐藏层本质上只有1个隐藏单元在发挥作用。

因此,通常将神经网络的模型参数,特别是权重参数,进行随机初始化。

多层感知机

Tensorflow2.0的默认随机初始化:
Tensorflow中initializers的模块参数都采取了较为合理的初始化策略。
不同类型的layer采用的初始化方法,参看源码



参考

《动手学深度学习》(TF2.0版)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值