(一)Highway Networks 与 Deep Networks 的关系

  1. 理论实践表明神经网络的深度是至关重要的,深层神经网络在很多方面都已经取得了很好的效果,例如,在1000-class ImageNet数据集上的图像分类任务通过利用深层神经网络把准确率从84%提高到了95%,然而,在训练深层神经网络的时候却是非常困难的,神经网络的层数越多,存在的问题也就越多(例如大家熟知的梯度消失、梯度爆炸问题,下文会详细讲解)、训练起来也就是愈加困难,这是一个公认的难题。
  1. 2015年由Rupesh Kumar Srivastava等人提出的新的网络结构(Highway Networks)很好的解决了这一个问题,Highway Networks 允许信息“高速无阻碍”的通过各个神经层,这就不会出现深层网络中出现的信息阻碍的问题。在此之前,深层神经网络的深度仅仅能够达到几层或者是十几层,但是Highway Networks可以训练数十层甚至上百层的神经网络(前提是硬件设置可以支持这种大量的运算)。

(二)Deep Networks 梯度消失/爆炸(vanishing and exploding gradient)问题

1、什么是梯度消失/爆炸?

在反向传播的过程中,前面层的权重正常学习更新,而接近后面的层权重基本上不更新,导致后面的层基本上学习不到任何的东西,也就是说后面的层只是相当于对输入做了一个映射,那么这样的深层神经网络也就仅仅相当于浅层的神经网络了。

2、梯度消失/爆炸

我们先来看一下简单的深层神经网络(仅仅几个隐藏层)

先把各个层的公式写出来

C=sigmoid(W_4*H_3 +b_4)

H_3=sigmoid(W_3*H_2 +b_3)

H_2=sigmoid(W_2*H_1 +b_2)

H_1=sigmoid(W_1*x +b_1)

对W_1求导

W=W - lr * g(t)

以上公式仅仅是四个隐藏层的情况,当隐藏层的数量达到数十层甚至是数百层的情况下,一个一个的反向传播回去,当权值 < 1的时候,传到最后一层近乎0,例如,〖0.9〗^100已经是很小很小了,这就造成了只有前面几层能够正常的反向传播,后面的那些隐藏层仅仅相当于输入x的权重的映射,权重不进行更新。反过来,当权值 > 1的时候,会造成梯度爆炸,同样是仅仅前面的几层能更改正常学习,后面的隐藏层会变得很大很大。

References

Notation

欢迎转载、转载请注明出处。http://www.cnblogs.com/bamtercelboo/p/7581353.html

最新文章

  1. 2.5美元每月的VPS, host1plus
  2. C和指针 第十二章 结构体 整体赋值 error: expected expression
  3. unity3D 常用快捷键
  4. 三、Distributing Maya Plugins
  5. 非常简单实用的Python HTTP服务
  6. mac 下周期调度命令或脚本
  7. Android 全屏显示-隐藏Navigation Bar
  8. LINQ to XML LINQ学习第一篇
  9. Qt:添加点击事件的Label并显示图片
  10. ACM课程总结
  11. sqlServer遇到的问题
  12. position:fixed 失效
  13. 百度地图infoWindow圆角处理
  14. Linux 入门记录:十二、Linux 权限机制【转】
  15. 【洛谷P1087】FBI树
  16. 【基础】centos 6.X 下修改图形界面为命令行界面(单用户救援模式)
  17. selenium模拟鼠标操作
  18. 用最简单的例子理解复合模式(Composite Pattern)
  19. Android通过php插入查询SQL数据库
  20. ref:【干货分享】PHP漏洞挖掘——进阶篇

热门文章

  1. 【Centos】yum 安装mariaDB
  2. eclipse自动提示设置以及问题:去除变量自动提示(图文详解)
  3. linux(十)配置ssh免密登录实现
  4. [2014-08-17]Mac OSX 截图快捷键
  5. JDK源码阅读——ArrayList
  6. JSON取值(key是中文或者数字)方式详解
  7. UIButton和UIimageView
  8. Java缓存类的实际应用场景
  9. Makefile中export分析
  10. 第1阶段——uboot分析之仿照bootm制作hello命令(7)