RNN

https://www.jianshu.com/p/2a688b1eaeb3


如果你连续记录球位置的快照,那么你将有足够的信息来做出更好的预测。

image.png

序列数据有很多种形式。音频是一种自然的序列,你可以将音频频谱图分成块并将其馈入RNN。文本也是一种形式的序列,你可以将文本分成一系列字符或一系列单词。

更易懂的解释方法-将该物理结构逻辑摊开

将隐藏状态传递给下一个步骤

短期记忆问题:

短期记忆问题是由臭名昭着的梯度消失问题引起的。由于RNN处理有很多步骤,因此难以保留先前步骤中的信息。正如你所看到的,在最后的时间步骤中,“what”和“time”这个词的信息几乎不存在。短期记忆和梯度消失是由于反向传播的性质引起的。

为了减轻短期记忆的影响,研究者们创建了两个专门的递归神经网络,一种叫做长短期记忆或简称LSTM。另一个是门控循环单位或GRU。LSTM和GRU本质上就像RNN一样,但它们能够使用称为“门”的机制来学习长期依赖。这些门是不同的张量操作,可以学习添加或删除隐藏状态的信息。

RNN种类:

  1. sequence-to-sequence(many-to-many):输入输出都是一个序列。

例如股票预测中的RNN,输入是前N天价格,输出明天的股市价格。

image.png
  1. sequence-to-vector(many-one):输入是一个序列,输出单一向量。

例如,输入一个电影评价序列,输出一个分数表示情感趋势(喜欢还是讨厌)

image.png
  1. vector-to-sequence(one-many):输入单一向量,输出一个序列
image.png
  1. Encoder-Decoder():输入sequence-to-vector,称作encoder,输出vector-to-sequence,称作decoder

这是一个delay模型,经过一段延迟,即把所有输入都读取后,在decoder中获取输入并输出一个序列。这个模型在机器翻译中使用较广泛,源语言输在入放入encoder,浓缩在状态信息中,生成目标语言时,可以生成一个不长度的目标语言序列

image.png

计算流程:

image.png
image.png

h_t=f_W(h_{t-1},x_t)

h_t=tanh(W_{hh}h_{t-1}+W_{xh}x_t)

y_t=W_{hy}h_t

loss计算

可以根据每一个输出y得到它对应的Loss,将这些Loss组合在一起就可以得到所需的反向传播的Loss,然后通过随机梯度下降的方式进行反向传播并更新网络中的参数W,这样就完成了整个的训练过程。

反向传播:

image.png

上图中的每次循环都对应着不同的time-step,其算法的名字叫做Backpropagation through time。即对于一个长序列,从第一个时间点计算到最后一个时间点,得到所有Loss之后,从最后一个时间点开始回传,直到到达最初的时间点,同时进行权重更新。这样的算法其实存在一定的问题,当序列过长的时候,一次回传必须要等整个序列完成解码之后才能开始,这样会导致速度变慢,会影响整个模型收敛的速度。

image.png

它的思想是将长序列截断成为多个短序列,然后对这些短序列进行权值更新。这样的好处在于,在对某个长序列进行计算,在中间某个时刻的时候,可以先返回一批梯度对参数进行更新,然后再此基础上对剩余的部分进行计算。这样权值更新的次数会增多,收敛速度也会加快。


RNN语言模型:

对于序列“hello”而言,它由五个字符组成,包含有四类字母——‘h’、‘e’‘l’‘o’,在实际的训练过程中,第一个输入自然是‘h’,然后依次是‘e’、‘l’和‘l’,对于最后一个字符‘o’,则不进行建模。如上图所示,先建立输入层(input layer),然后根据不同的输入得到其隐藏层(hidden layer)状态,即当前隐藏层状态是基于前一隐藏层状态得到的,对于每一个隐藏层,通过计算得到一个输出,该输出代表着当前字符可能生成的下一个字符,这样就得到了上述的计算图。在计算得到输出后,可以根据该输出已经相应的参考答案得到相应的Loss,借此进行参数更新。

image.png

假设拿到的第一个字符是‘h’,但是却不知道该字符的后续字符是什么,然后借助模型,经过隐藏层,得到输出层的输出,通过Softmax对输出进行概率化,然后取其中生成概率最大的字符作为输出。显然在输入字符‘h’时,最后得到的概率最大的字符就是‘e’,然后以此类推,就可以得到“hello”这个序列的预测。整个流程就是通过当前输入的字符预测出下一个字符,最终预测出一个完整的序列。


注意力机制:

注意力机制(Attention Mechanism)在很多任务中对性能有着很大的影响。例如在sequence to sequence model中(第一个sequence指原文,第二个sequence指译文),如下图所示:

image.png

上图中将英文的“I am a student”翻译成法文,在即将生成目标端的词语的时候,RNN模型会将源端的所有信息压缩在一个隐藏层当中,然后将该信息输入下一个sequence中进行翻译的预测。当源端的序列很长的时候,一个隐藏层很难存放这么多源端的信息,这样在信息严重压缩之后,在目标端生成翻译的时候,会导致所需的上下文的信息是不够的。这也是RNN在实际使用中常遇到的一个问题,在目前可以采用下图中的方法进行避免:

image.png

在生成第二个单词(Je已生成,现在在生成第二个单词suis)的时候,根据目标端的隐藏层状态和源端的每一个隐藏层之间做相似度的计算,根据规划得到一个权重的得分,接着生成一个上下文的Attention Layer,借助于这个Attention Layer作用于生成第二个词的过程,进而生成正确的翻译。Attention的这种机制其实是很符合翻译的这种直觉的,即生成每一个词的时候,关注的源端位置是不一样的。在实际的应用中,Attention的这种机制的表现也非常好,这个也解决了RNN在长序列压缩中造成的信息丢失的问题。


  • 以一个简单的RNN为例梳理神经网络的训练过程:

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

推荐阅读更多精彩内容

  • outline Generation Attention Tips for Generation Pointer ...
    SpareNoEfforts阅读 1,160评论 0 8
  • RNN是Recurrent Neural Networks的缩写,即循环神经网络,它常用于解决序列问题。RNN有记...
    xieyan0811阅读 3,917评论 0 1
  • 火车终于开了,男孩轻轻松了口气。 看向窗外,天还没有完全亮,仍是一副半明半昧,没睡醒的样子。男孩不自觉地打了个哈欠...
    林安阅读 644评论 0 10
  • 2019年十月三十一号 万圣节那晚的的白天 我确定了自己毕业之后工作的公司 开始了我的毕业之旅。 2019年十一月...
    彩虹魔仙阅读 156评论 0 1
  • 时钟嘀嗒,每一次跳动,都昭示着一个崭新的自己。在人生的减法中,我们都敬畏着时间,甚至恐惧着。因为每一分,每一秒我们...
    初见西贝如阅读 257评论 2 1