由浅入深理解 RNN

本篇文章由浅入深地介绍了RNN的模型,适合有一定机器学习基础,想由浅入深地理解RNN的同学。
本文目前写了主要框架,遇到不理解的地方,建议打开参考文献进行扩展阅读。

对于自然语言学习来说,一种典型的模型是:给定前面的一系列单词,预测接下来最有可能的单词是什么。
比如 :

我 昨天 上学 迟到 了 ,老师 批评 了 ____。

传统的NLP使用N-gram模型来预测,前面N个词影响当前位置的预测结果(此案例中 要向前包含到“我”这个单词,才能推出此处的结果是 “我”),但是如果我们想处理任意长度的句子,N设为多少都不合适;另外,模型的大小和N的关系是指数级的,4-Gram模型就会占用海量的存储空间。
RNN解决的就是此类问题,因为RNN理论上可以往前看(往后看)任意多个词。【1】

一、RNN模型的理解

首先从全连接模型开始

如下所示是一组典型的全连接网络,每一个全连接网络由输入层Xt,隐藏层St和输出层Ot组成

每个单独的全连接网络,代表相应的时刻的输入(在NLP中就是相应位置的单词)和相应输出之间的关系,但是这个全连接网络组是没有考虑到“历史时刻”的信息。

图1

所以RNN网络,将前一时刻的隐藏层,一起作为当前时刻隐藏层的输入,如图2所示。

前一时刻的隐藏层S(t-1),经过一个参数矩阵W相乘作为S(t)的输入,这样逐步递推,所以任意时刻的输入参数都包含了所有的历史信息。

图2

在NLP中,每个输入Xt代表一个字符(单词),Ot代表相应的推断结果。

在实际实现的时候,不会重复写这么多网络,会用一个网络的循环来模拟上述结构,即为Recurrent Nerual Network。这是因为在RNNs中,每输入一步,每一层,各自都 共享参数。这主要是说明RNN中的每一步都在做相同的事,只是输入不同,因此大大地降低了网络中需要学习的参数【4】。

同时,RNN中每一步都会有输出,但是每一步的输出并不是必须的。比如,我们需要预测一个步态序列属于哪一个人,我们仅仅需要关心最后一个步态输入后的输出,而不需要知道每个步态输入后的输出。同理,每步的输入也不是必须的【4】。所以有以下各种的RNN网络【2】

图3

上述模型的解释为:(1)普通的神经网络(2)序列输出(图片->文字解释)(3)序列输入(文本分类)(4)序列输入与序列输出:机器翻译(5)同步序列输入与输出:视频分类中每一帧的解释

以“预测下一个字符”作为案例,字符级别的RNN预测网络如下【2】

图4

二、RNN的推导

基本的RNN的推导,基于神经网络的BP算法,称之为BPTT,即沿着每一个时间点倒退,如下图所示【5】。纯粹的BPTT在实际中并不实用,当t很大的时候,就出现了梯度消失的现象,所以后面重点介绍几个常用的RNN变形及其推导方式。

图5

三、RNN的实用化变形:LSTM,GRU

LSTM和GRU是常见的两种RNN cell,可以避免原始的RNN的长期依赖问题

主要的思想是训练是否忘记“历史时刻”的输入,下图分别表示LSTM和GRU【6】

深刻理解LSTM: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

深刻理解GRU:http://blog.csdn.net/meanme/article/details/48845793

总体来说 LSTM和GRU的训练效果都差不多,GRU往往更快一些

图6

参考文献

【1】http://blog.csdn.net/qq_23225317/article/details/77834890

【2】http://karpathy.github.io/2015/05/21/rnn-effectiveness/

【3】https://colah.github.io/posts/2015-08-Understanding-LSTMs/

【4】https://www.zybuluo.com/Duanxx/note/545194

【5】http://www.wildml.com/2015/10/recurrent-neural-networks-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients/

【6】http://blog.csdn.net/meanme/article/details/48845793

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容