简述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 ...
随机推荐
- Absolute Horizontal And Vertical Centering In CSS
Quick CSS Trick: How To Center an Object Exactly In The Center Centering in CSS: A Complete Guide Ab ...
- php多线程操作数据库(转)
PHP用pcntl可以实现多线程操作数据库.直接上代码,逻辑自己研究喽. 示例代码为: /** * 并发多线程运行任务,把任务拆解成区块,用多线程去并发执行 * @param callable $ex ...
- Vim 插件管理及安装
1.先将ubuntu1204的软件源进行更新.sudo apt-get update 2.再在终端中敲如下命令,让程序自动安装,根据网速的好坏安装时间有长有短. wget -qO- https://r ...
- JDK源码中的英文注释翻译(Class)
public final class Class<T> implements java.io.Serializable, GenericDeclaration, Type, Annotat ...
- Airtest多设备跑
一. 一个脚本对应一台设备 核心点:组织运行命令:将组织好的命令传到pool进程池(注意:是进程池,不是线程池,python的线程池不是同步执行,是按序执行) 以下不需要看,为私人项目备份目的. ...
- Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)C. Laboratory Work
Anya and Kirill are doing a physics laboratory work. In one of the tasks they have to measure some v ...
- 阿里云服务上面部署redis + 本地Redis客户端连接方法
本文结合自己在阿里云服务器上面搭建redis服务器,在本地redis的客户端Redis Desktop Manager连接成功的操作,将操作中的一些方法做了一些归纳和总结,希望可以帮到有需要的同学. ...
- 用div布局,页面copyright部分始终居于
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- C#常用 API函数大全
常用Windows API1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConne ...
- Ubuntu双系统后时间不对解决方案
先在ubuntu下更新一下时间,确保时间无误 sudo apt install ntpdate sudo ntpdate time.windows.com 然后将时间更新到硬件上 sudo hwclo ...