吴恩达神经网络和深度学习-学习笔记-8-梯度消失与爆炸 + 梯度检测

梯度消失与爆炸

介绍

直观理解是:
权重W只比1(即单位矩阵)大一点,深度神经网络的激活函数将爆炸式增长。
权重W只比1(即单位矩阵)小一点,深度神经网络的激活函数将指数式递减。

虽然我(吴恩达老师)只是论述了对L函数的激活函数以指数级增长或下降,但它也适用于与层数L相关的导数或梯度函数也是呈指数增长或呈指数递减。
如果作为L的函数的激活函数或梯度函数以指数级增长或递减(我的理解是,L作为指数),它们的值会变得极大或极小,从而导致训练难度上升。尤其是梯度与L相差指数级,梯度下降算法的步长会非常非常小,梯度下降算法将花费很长时间来学习。

解决

梯度消失和梯度爆炸的解决见:1.11神经网络的权重初始化

梯度检测

原理

目的是,检测函数g(θ)是否正确实现了函数f的偏导,从而检测反向传播是否正确实施。
使用双边误差的方法逼近导数
在这里插入图片描述
在这里插入图片描述
数学推倒可以证明:
用双边误差,误差为O(epsilon2)。
用单边误差,误差为O(epsilon)。

梯度检验应用于神经网络

1.13梯度检验

梯度检验的实用技巧和注意事项

  • 不要在训练中使用梯度检验,它只用于调试(Don’t use in trainning, only to debug)。(因为它太慢了)
  • 如果算法的梯度检验失败,要检查所有项(If algorithm fails grad check, look at components to try to identify bug)。
  • 在实施梯度检验时,如果使用正则化请注意正则项。
  • 梯度检验不能与dropout同时使用。
    因为在每次迭代过程中,dropout会随机清除隐藏单元的不同子集,从而难以计算dropout在梯度下降上的代价函数J。所以一般不同时使用梯度检验和dropout。如果想这样做,可以把dropout中的keep prob设置为1。然后打开dropout并希望dropout的实施是正确的。
    但更好的做法是关闭dropout,用梯度检验进行double check。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值