Neural Networks and Deep Learning学习笔记ch5 - 为什么深度神经网络很难训练?


深度神经网络

前面的章节介绍了反向传播算法和一些常见的改进神经网络的训练效果的方法。前面还只是停留在只有一个隐藏层的神经网络。
这里写图片描述
如上图所示,这样的一个神经网络就只有输入、输出层和一个隐藏层。在手写字体识别例子中,这样一个简单的神经网络能够达到98%的正确率!可以预料到,如果增加隐藏层的层数,那么神经网络的学习能力将更加强,可以学习到更加抽象的概念。

这里写图片描述
如上所示为一包含三个隐藏层的神经网络,假如第一层能够学习到边的特征,那么第二层就能学习到更复杂一点的形状,比如三角形,矩形。第三层就能学习到更复杂的形状了,依次类推。
那么该如何训练这样的深度神经网络呢?
先看看用之前的反向传播算法的随机梯度下降法来训练神经网络会怎样。按照前面讨论的,神经网络层数越多,学习能力越强。但是,实际上在上面的例子中,增加隐藏层的层数,手写字体的识别正确率反而变小了。为什么会这样呢?


梯度消亡问题-The vanishing gradient problem

假如上面的神经网络中添加的隐藏层从理论上是可以增强学习能力的,但是神经网络没有学习到正确的权重。那么就要弄清楚神经网络的学习算法到底出什么问题了,怎样采样学习到正确的权重。
为了弄清楚问题出在哪里,先来把神经网络的学习过程可视化一下。假设有一个 [784,30,30,10] 的神经网络,也就是有两个隐藏层,每一个隐藏层有30个神经元。对每一个神经元,有梯度 C/b ,也就是代价函数对神经元的偏置的梯度,如前面第二章中所述,这个梯度的大小不仅代表了在学习过程中偏置变化的速度,也代表了权重系数的变化速度。让梯度表示为 δlj=C/blj ,也就是第 l 层的第 j 个神经元的梯度。可以把 δ1 看作是一个向量,向量的每一个元素的大小决定了第一个隐藏层学习的快慢,同样

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值