RNN浅析(上)

A Survey on Recurrent Neural Network


参考资料

  • A Critical Review of Recurrent Neural Networks for Sequence Learning (2015年的一篇综述性文章)

  • Long Short-Term Memory in RNN (Felix Alexander Gers大牛的博士论文)

  • Supervised sequence labelling with recurrent neural network (Alex Graves大牛的springer出版物)

  • Deep Learning(Yoshua Bengio大神的基础教程)


目录

  • 一、简述

  • 二、RNN基础算法

  • 三、LSTM以及LSTM的变种


一、简述

循环神经网络(Recurrent neural networks,简称RNN)是一种通过隐藏层节点周期性的连接,来捕捉序列化数据中动态信息的神经网络,可以对序列化的数据进行分类。和其他前向神经网络不同,RNN可以保存一种上下文的状态,甚至能够在任意长的上下文窗口中存储、学习、表达相关信息,而且不再局限于传统神经网络在空间上的边界,可以在时间序列上有延拓,直观上讲,就是本时间的隐藏层和下一时刻的隐藏层之间的节点间有边。RNN广泛应用在和序列有关的场景,如如一帧帧图像组成的视频,一个个片段组成的音频,和一个个词汇组成的句子。尽管RNN有一些传统的缺点,如难以训练,参数较多,但近些年来关于网络结构、优化手段和并行计算的深入研究使得大规模学习算法成为可能,尤其是LSTM与BRNN算法的成熟,使得图像标注、手写识别、机器翻译等应用取得了突破性进展。
最简单的RNN(fold状态和unfold状态)

00.png

04.png

注意:输入层、隐藏层、输出层的比例不一定是1:1:1,(fold状态和unfold状态)

01.png

02.png

1. WHY——关于序列化(sequentiality)的几个问题

1.为什么需要进行显式表达序列模型?

传统的机器学习方法,如SVM、logistics回归和前向神经网络都没有将时间进行显式模型化,用这些方法建模而得出的好的实验结果都是基于独立性假设的前提。还有一些模型将本节点和时间上的前驱节点与后继节点相连接,通过上下文的滑动窗口来将时间隐式模型化,例如深度置信网络DBN。尽管独立性假设非常有用,但是这些模型排除了长时依赖(long-range dependencies)的实际情况。比如用时间窗口大小为5进行训练的模型无法回答需要6个时间输入的问题。人机对话系统、现代交互系统都需要将序列化模型或时间模型显式表达,否则任何分类器或回归器都是无法组合起来解决这种问题的。

2.为什么不用Markov模型?

RNN并非唯一一个将时间依赖显式表达的模型,Markov链也包含时间信息(或说是观测序列),但它有一定局限性。首先,离散状态空间必须是有限尺寸,而不是无限,因为动态规划算法在运算复杂度上是状态空间尺寸的平方;其次,转移表的大小(两个任意时间点的状态转移轨迹概率)也是状态空间尺寸的平方,如果隐藏状态数量较大,运算复杂度呈平方数增长;最后,隐藏状态仅依赖此刻的上一个状态,而不是多个前次的状态,即便可以设定窗口来与多个先前状态建立关系,但状态空间的增长随窗口的大小成指数性增长,使得长时依赖(long-range dependencies)的建模计算变得不切实际。

相比之下全连接的ANN模型没有上述问题࿰

  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值