简述RNN Recurrent Neural Networks
本文结构:
什么是 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更为复杂的结果。

训练 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 适合时间序列的数据,它的输出可以是一个序列值或者一序列的值。
所以说,如果要做分类或者回归的话,可以用前馈是神经网络,如果要预测的话,可以用循环神经网络。
简述RNN Recurrent Neural Networks的更多相关文章
- 循环神经网络(RNN, Recurrent Neural Networks)介绍(转载)
循环神经网络(RNN, Recurrent Neural Networks)介绍 这篇文章很多内容是参考:http://www.wildml.com/2015/09/recurrent-neur ...
- 转:RNN(Recurrent Neural Networks)
RNN(Recurrent Neural Networks)公式推导和实现 http://x-algo.cn/index.php/2016/04/25/rnn-recurrent-neural-net ...
- RNN(Recurrent Neural Networks)公式推导和实现
RNN(Recurrent Neural Networks)公式推导和实现 http://x-algo.cn/index.php/2016/04/25/rnn-recurrent-neural-net ...
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
原文地址: http://blog.csdn.net/heyongluoyao8/article/details/48636251# 循环神经网络(RNN, Recurrent Neural Netw ...
- 《转》循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论
转自 http://blog.csdn.net/xingzhedai/article/details/53144126 更多参考:http://blog.csdn.net/mafeiyu80/arti ...
- 循环神经网络(RNN, Recurrent Neural Networks)——无非引入了环,解决时间序列问题
摘自:http://blog.csdn.net/heyongluoyao8/article/details/48636251 不同于传统的FNNs(Feed-forward Neural Networ ...
- 循环神经网络(Recurrent Neural Networks, RNN)介绍
目录 1 什么是RNNs 2 RNNs能干什么 2.1 语言模型与文本生成Language Modeling and Generating Text 2.2 机器翻译Machine Translati ...
- The Unreasonable Effectiveness of Recurrent Neural Networks (RNN)
http://karpathy.github.io/2015/05/21/rnn-effectiveness/ There’s something magical about Recurrent Ne ...
- Attention and Augmented Recurrent Neural Networks
Attention and Augmented Recurrent Neural Networks CHRIS OLAHGoogle Brain SHAN CARTERGoogle Brain Sep ...
随机推荐
- switch穿透中语句的执行顺序
Day04_SHJavaTraing_4-6-2017 计算下列switch语句的运行结果 1. int x = 2,y=3; switch(x){ default: y++; case 3: y++ ...
- 知识工程.Vs.软件构架,框架,设计模式.
软件工程-原文链接:http://tech.it168.com/a2009/0902/672/000000672853.shtml 此文章详细给出了软件设计的基本概念和用途,文章链接:http://w ...
- 图像压缩Vs.压缩感知
压缩感知科普文两则: 原文链接:http://www.cvchina.info/2010/06/08/compressed-sensing-2/ 这几天由于happyharry的辛勤劳动,大伙纷纷表示 ...
- RabbitMQ学习之集群消息可靠性测试
之前介绍过关于消息发送和接收的可靠性:RabbitMQ学习之消息可靠性及特性 下面主要介绍一下集群环境下,rabbitmq实例宕机的情况下,消息的可靠性.验证rabbitmq版本[3.4.1]. 集群 ...
- Linux 内核剖解(转)
Linux 内核剖析(转) linux内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织.在本文中,您将探索 Linux 内核的总体结构,并学习一些主要 ...
- ES6的let命令
1.let命令所在的代码块内有效: 2.循环的计数器,就很合适使用let命令:(for循环还有一个特别之处,就是循环语句部分是一个父作用域,而循环体内部是一个单独的子作用域.) 例如:如下会输出十次s ...
- javaee 文件的读取
package Shurushucu; import java.io.FileNotFoundException; import java.io.FileOutputStream; import ja ...
- java 常用API 时间
package com.orcal.demc01; import java.text.ParseException; import java.text.SimpleDateFormat; import ...
- Updates were rejected because the remote contains work that you do(gitee报错解决方案)
今天向Gitee远程仓库提交本地项目文件时,遇到了下列错误,很是郁闷 正在推送 1203笔记本Error: failed to push some refs to 'https://gitee.com ...
- 【 AIM Tech Round 5 (rated, Div. 1 + Div. 2) C】Rectangles
[链接] 我是链接,点我呀:) [题意] 给你n个矩形. 让你找出一个点(x,y) 使得这个点在其中至少(n-1)个矩形中. [题解] 若干个矩形交在一起的话. 它们所有的公共区域也会是一个矩形. 这 ...