本文结构:

什么是 Recurrent Neural Networks ?
Recurrent Neural Networks 的优点和应用?
训练 Recurrent Neural Networks 的问题?
如何解决?
何时用 RNN 何时用前馈网络呢?


什么是 Recurrent Neural Networks ?

普通的前馈神经网络模型,它的结构是信号以一个方向从输入走到输出,一次走一层。

 
 

在 RNN 中,前一时刻的输出会和下一时刻的输入一起传递下去。
可以把这个过程看成是一个随着时间推移的流。
在这里显示的是四个时间点,在t=1的时候,网络取到t=0的时候的输出,并且将它和下一个输入一起发送回给网络。

 
 

Recurrent Neural Networks 的优点和应用?

和前馈神经网络不同,RNN 可以接收一系列的数据作为输入,而且也可以返回一系列的值作为输出。这种可以处理序列化数据的功能,使得这个网络得以非常广泛的应用。

当输入是一个的时候,输出是一个序列的时候,这可以用于 image captioning (让计算机用一句话来描述这张图片)。

 
 

输入是一个序列,输出是1个数据的时候,这个模型可以被用来分类。

 
 

当输入是一个序列,输出也是一个序列的时候,可以用来对视频一帧一帧的分类。

 
 

当引入时间延迟的时候,就可以用于供应链计划里的需求预测。

 
 

当把几个RNN堆起来时,得到的这个新的网络就可以输出比单独一个RNN更为复杂的结果。

 
Paste_Image.png

训练 Recurrent Neural Networks 的问题?

RNN 是很难被训练的,训练的时候也使用 Back Propagation,所以这也存在着梯度消失的问题,而且这个梯度消失的问题会是指数级别的。

原因就是,RNN的每个时间点,就相当于一个前馈神经网络的整个层,
所以训练100步的模型就相当于训练一个100层的前馈网络。
这就造成了随着时间的推移,梯度会以指数级的速度减小,进而造成信息的衰变。

 
 

如何解决?

有很多方式可以解决这个问题,其中之一就是 Gating。

这个技术的好处就是它可以决定,什么时候需要忘记当前的输入,什么时候需要记住它,以便将来的步骤里会用到它。

今天最流行的 Gating 就是 LSTM 和 GRU。

当然也有一些其他的方法 Gradient clipping, Better optimizer, Steeper Gates。

 
 

训练神经网络的时候用 GPU 要比用 CPU 好。
研究表明,用 GPU 训练会比 CPU 训练快250倍。(现在可能更快了)
这就是一天和八个月的区别。

何时用 RNN 何时用前馈网络呢?

前馈神经网络,它会输出一个数据,可以用来做分类或者回归。
RNN 适合时间序列的数据,它的输出可以是一个序列值或者一序列的值。
所以说,如果要做分类或者回归的话,可以用前馈是神经网络,如果要预测的话,可以用循环神经网络。

最新文章

  1. C# 类使用小demo
  2. PHP性能优化工具–xhprof安装
  3. BZOJ4553: [Tjoi2016&Heoi2016]序列
  4. QTP对象管理
  5. 转:EClipse 10个最有用的快捷键
  6. 取出一个int的每一位,用算法
  7. Angular学习(4)- 数组双向梆定
  8. (C#) 发布程序,包含某些配置文件或数据文件。
  9. php表单数据验证类
  10. Python实现CART(基尼指数)
  11. Python线程的常见的lock
  12. 发短信utils
  13. 译注(2): How to Write a 21st Century Proof
  14. 解释器、环境变量、如何运行python程序、变量先定义后引用
  15. Dijkstra——单源最短路径
  16. A1129. Recommendation System
  17. 命令配置linux分辨率
  18. 001.VNC介绍
  19. elasticsearch Geo Distance Query
  20. adb server version (31) doesn't match this client (39) 解决方案

热门文章

  1. ACM 手机短号问题
  2. map参数值取代
  3. window环境下,提升工作效率
  4. PHP 获取文件 扩展名 的常用方法小结【五种方式】
  5. MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
  6. Java常用工具类---XML工具类、数据验证工具类
  7. 路飞学城Python-Day152
  8. IOS - Ask for Application Badge permission ios8
  9. 喵哈哈村的魔法考试 Round #3 (Div.2)
  10. Java 接口技术 Interface