当前位置:首页 > 时尚生活

循环神经网络 循环神经网络(RNN)和LSTM初学者指南 | 入门资料

原创Skymind

甘明汇编

最近一篇介绍性的文章引起了很多关注。本文详细介绍了循环神经网络(RNN)及其变种——长短期记忆(LSTM)的原理。

具体内容从前馈网络开始,介绍了循环神经网络、时间序列反向传播算法(BPTT)、LSTM等模型的原理和运行方式。

本文来自Skymind,一家推动数据项目从原型到落地的公司。获得YCombinator和腾讯的投资。

对于人工智能初学者来说是一个非常好的入门材料。

t代表时间步长,ht代表第t个时间步长的隐藏状态,是同一时间步长xt的输入函数。w是修正xt的权函数。

u是一个隐藏状态矩阵,也称为转移矩阵,类似于马氏链。Ht-1代表t的前一时间步t-1的隐藏状态。

权重矩阵是一个确定当前输入和过去隐藏状态重要性的过滤器。它们产生的误差将通过反向传播返回,并用于调整相应的权重,直到误差不再减少。

权重输入(Wxt)和隐藏状态(Uht-1)的和被函数φ压缩,函数φ根据情况可以是逻辑S形函数,也可以是双曲正切(tanh)函数。

这是一个标准工具,用于将非常大或非常小的值压缩到逻辑空中,并使梯度可用于反向传播。

因为这个反馈循环发生在序列中的每个时间步,每个隐藏状态不仅跟踪之前的隐藏状态,而且只要内存能够持久,就包含h_t-1之前的所有隐藏状态。

给定一系列字母,圆形网络将使用第一个字符来帮助确定它对第二个字符的感知。比如第一个字母是Q,可能导致它推断下一个字母是U,第一个字母是T,可能导致它推断下一个字母是h。

由于环网跨越时间,用动画来说明可能更好。(第一个垂直节点可以看作前馈网络,随着时间的推移会变成循环网络。).

在上图中,每个x是输入样本,w是过滤输入的权重,a是隐藏层的激活(加权输入和之前隐藏状态的和),b是使用修改的线性或sigmoid单位进行变换或压缩后隐藏层的输出。

时间序列反向传播算法(BPTT)

循环网络的目的是对序列输入进行准确分类。我们主要依靠误差反向传播和梯度下降法来做到这一点。

前馈网络中的反向传播是从最后一个误差开始,通过每个隐含层的输出、权值和输入向后移动,通过计算它们的偏导数e/w或它们的变化率之间的关系,将一定比例的误差分配到每个权值。

随后,这些偏导数将用于梯度下降算法,以调整权重和减少误差。

循环网络依赖于反向传播的一种扩展,称为时间序列反向传播算法,即BPTT。

在这种情况下,时间是通过一系列定义明确且有序的计算来表示的,这些计算将一个时间步骤与下一个时间步骤联系起来。

神经网络,不管是循环的还是非循环的,都是简单的嵌套复合函数,比如f(g(h(x))。添加时间元素只是扩展了链式法则求导数的函数序列。

截断BPTT

截断BPTT(截断BPTT)是完整BPTT的近似方法,尤其是处理长序列的首选。

在具有更多时间步长的序列中,更新完整BPTT的每个参数的正向/反向操作成本变得非常高。

截断BPTT的缺点是,由于截断,梯度反向运动的距离是有限的,所以网络不能像完全BPTT那样学习依赖关系。

梯度消失和梯度爆炸

和大多数神经网络一样,循环网络也有一定的历史。到20世纪90年代初,梯度消失的问题已经成为网络性能的主要障碍。

就像直线代表x和y的变化一样,梯度代表所有有误差的权重的变化。如果不知道梯度,就无法向减少误差的方向调整权重,网络就会停止学习。

当在最终输入和许多先前的时间步骤之间建立链接时,循环网络也会遇到问题。因为很难知道一个长途输入有多重要。

就像回到爷爷奶奶哥哥的数量,会越来越多。

某种程度上,这是因为神经网络传递的信息要经过多个乘法阶段。

研究过复利的人都知道,任何一个量循环乘以一个稍大于一的量,都会变得大得不可测量(其实简单的数学真理支持网络效应和社会不平等)。

另一方面,当乘以小于1时,它会变得非常非常小。如果赌徒每投入一美元只能赢97美分,他们很快就会破产。

由于深度神经网络的层次和时间步长是通过乘法相互关联的,导数很容易消失或爆炸。

梯度爆炸时,每一个重量都像谚语中的蝴蝶,扇动翅膀会在远处引起飓风。

但是梯度爆炸相对容易解决,因为可以截断或者压缩。

相反,当梯度消失时,导数变得很小,使得计算机无法工作,网络无法学习。这是一个比较难解决的问题。

下面你可以看到反复应用S形函数的效果。数据曲线变得越来越平坦,直到无法远距离检测到斜率。这类似于通过许多层的梯度消失。

长短期记忆(LSTM)

在20世纪90年代中期,德国研究人员塞普·霍克雷特和于尔根·施密德胡贝尔提出了一种具有长短期记忆单元的循环网络变体(LSTM),作为梯度消失问题的解决方案。

LSTM有助于保存可以通过时间和层传播回来的错误。

通过保持更恒定的误差,它们使循环网络能够以许多时间步长(超过1000步)继续学习,从而为远程链接因果关系打开了一个通道。

这是机器学习和人工智能面临的主要挑战之一,因为算法经常会遇到稀疏和延迟的奖励信号。

LSTM将信息存储在环形网络正常信息流之外的门控单元中。信息可以像计算机内存中的数据一样存储、写入单元格或从单元格中读取。

该单元通过打开和关闭门来决定存储什么以及何时允许阅读、书写和遗忘。

然而,与计算机上的数字存储器不同,这些门是模拟的,通过从0到1的sigmoid函数的逐元素乘法来实现。

与数字信号相比,模拟信号具有可微的优点,因此适合反向传播。

这些门类似于神经网络的节点,它们根据接收到的信号决定切换。他们根据信息的强度和重要性对信息进行屏蔽或传输,然后用自己的权重对信息进行过滤。

这些权重就像调整输入和隐藏状态的权重一样,可以在循环网络学习的过程中进行调整。

也就是说,记忆单元的学习将通过猜测调整权重、反向传播误差和梯度下降法的迭代过程来决定何时允许数据进入、离开或删除。

下图说明了数据如何通过内存单元,以及门如何控制数据流。

如果你不熟悉LSTM,别担心,仔细研究一下。揭开这个秘密只需要几分钟。

从底部开始,三个箭头表示信息从多个点流入存储单元。当前输入和过去单元状态的组合不仅反馈到单元本身,还反馈到它的三个门中的每一个,这将决定它们如何处理输入。

黑点是门本身,决定是让新输入进入还是忘记当前状态,还是让这个状态影响当前时间步长的网络输出。

Sc是存储单元的当前状态,g_y_in是存储单元的当前输入。

请记住,每扇门都可以打开或关闭,它们在每一步都重新组合它们的打开和关闭状态。存储单元可以在每个时间步长决定是否忘记、写入或读取其状态,这些流程都被表示出来。

大而粗的字母给出了每次操作的结果。

下面是另一个示意图,比较了简单圆形网络(左)和LSTM单元(右)。

值得注意的是,LSTM的存储单元在输入转换中赋予加法和乘法不同的角色。

两张图中间的加号本质上是LSTM的秘密。

虽然这看起来非常非常简单,但是当它必须在深度上向后传播时,这种改变有助于保持恒定的误差。

LSTM不会将当前状态乘以新的输入来确定后续的单元状态,而是将两者相加,这就有所不同了。(遗忘之门还是靠乘法。)

不同的权重集过滤输入信息,以决定是输入、输出还是遗忘。

不同的权重集过滤输入信息,以决定是输出还是遗忘。遗忘门表示为线性恒等式函数,因为如果门打开,存储单元的当前状态将简单地乘以1,从而向前传播一个时间步长。

另外,还有一个简单的窍门。将每个LSTM存储单元的遗忘门的偏差设置为1可以提高网络性能。(另一方面,Sutskever建议将偏差设置为5。)

你可能会问,LSTM的目的是连接遥远的事件和最终的输出。为什么他们有一个被遗忘的门?

嗯,有时候忘记是件好事。

如果分析一个文本语料库,当它到达一个文档的末尾时,下一个文档基本上与它无关。因此,在网络捕获下一个文档的第一个元素之前,存储单元应该设置为零。

以一个文本语料库的分析为例,当你到达一个文档的末尾时,你可能会认为下一个文档与这个文档无关,所以在开始吸收下一个文档的第一个元素之前,应该将记忆单元归零。

下图中可以看到工作门,直线代表关闭的门,空白圈代表打开的门。沿着隐藏层水平延伸的线和圆代表遗忘门。

需要注意的是,前馈网络只是一对一的,即一个输入映射到一个输出。但是循环网络可以是一对多、多对多和多对一。

覆盖不同的时间尺度和远距离依赖

您可能还想知道保护存储单元免受新数据影响的输入门和防止其影响RNN某些输出的输出门的确切值。你可以把LSTM想象成允许一个神经网络在不同的时间尺度上同时运行。

让我们以一个人的生活为例,想象我们在一个时间序列中收到了关于那个生活的各种数据流。

每个时间步的地理位置对于下一个时间步非常重要,所以时间尺度总是对最新信息开放的。

可能这个人是个每两年投票一次的勤奋公民。在民主时代,我们将特别关注他们在选举前后的行动。我们不希望我们的政治分析受到我们的地理位置产生的持续噪音的影响。

如果这个人也是一个勤奋的女儿,那么也许我们可以建立一个家庭时间,学习每周日定时打电话的模式,每年假期前后的电话数量都会大幅增加。与政治周期、地理位置无关。

其他数据也是如此。音乐是多节奏的。文本包含不同时间间隔的重复主题。股市和经济会有更长的波动周期。它们在不同的时间尺度上同时运行,LSTM可以捕捉这些时间尺度。

门控循环单元(GRU)

门控环路单元(GRU)基本上是没有输出门的LSTM,因此它在每个时间步长都将内容从其存储单元完全写入更大的网络。

代码示例

这里的例子是LSTM如何学习模仿莎士比亚的戏剧评论,这是通过深度学习实现的。难懂的地方,有相应的注释。

门户:

https://github . com/deep learning 4j/dl4j-examples/blob/master/dl4j-examples/src/main/Java/org/deep learning 4j/examples/recursive/character/lstmchromodelingexample . Java

LSTM超参数调整

以下是手动优化RNN超参数时应注意的一些情况:

小心过拟合,神经网络基本在“记忆”训练数据时,就会发生过拟合。过拟合意味着你在训练数据上有很好的表现,在其他数据集上基本无用。正则化有好处:方法包括 l1、 l2和dropout等。要有一个单独的测试集,不要在这个测试集上训练网络。网络越大,功能就越强,但也更容易过拟合。 不要试图从10000个示例中学习一百万个参数,参数>样例=麻烦。数据越多越好,因为它有助于防止过度拟合。训练要经过多个epoch(算法遍历训练数据集)。每个epoch之后,评估测试集表现,以了解何时停止(要提前停止)。学习速率是最重要的超参数。总体而言,堆叠层会有帮助。对于LSTM,可以使用softsign(而不是softmax)函数替代双曲正切函数,它更快,更不容易饱和( 梯度大概为0 )。更新器:RMSProp、AdaGrad或Nesterovs通常是不错的选择。AdaGrad也会降低学习率,这有时会有所帮助。记住,要将数据标准化、MSE损失函数+恒等激活函数用于回归、Xavier权重初始化。 资源推荐

绘图:用于图像生成的递归神经网络(论文)

https://arxiv.org/pdf/1502.04623v2.pdf

门控反馈递归神经网络(论文)

https://arxiv.org/pdf/1502.02367v4.pdf

递归神经网络;于尔根·施密德胡贝尔(博客)

http://people.idsia.ch/~juergen/rnn.html

递归神经网络的不合理有效性;Andrej Karpathy(博客)

https://karpathy.github.io/2015/05/21/rnn-effectiveness/

了解LSTMsChristopher Olah(博客)

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

门控递归神经网络在序列建模中的实证评价:Cho等人(论文)

https://arxiv.org/pdf/1412.3555v1.pdf

训练递归神经网络;伊利亚·萨特斯基弗的论文(博士论文)

https://www . cs . utoroto . ca/~ ilya/pubs/ilya _ sutskever _ PhD _ prospect . pdf

递归神经网络中的长短期记忆:费利克斯·格斯(博士论文)

http://www.felixgers.de/papers/phd.pdf

LSTM:一个古怪的搜索空间;Klaus Greff等人(论文)

https://arxiv.org/pdf/1503.04069.pdf

原始链接:

https://skymind.ai/wiki/lstm

*本文由腾讯新闻和Quantum Bit联合制作,作者为Quantum Bit。腾讯新闻同时开始,未经授权不得转载。

-结束-

2018中国人工智能之星创业公司

1.《循环神经网络 循环神经网络(RNN)和LSTM初学者指南 | 入门资料》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《循环神经网络 循环神经网络(RNN)和LSTM初学者指南 | 入门资料》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1376899.html

上一篇

苹果致歉降速门 原因是这样让老用户寒心

下一篇

刘涛拍新戏被偶遇 刘涛新戏里面的造型曝光

抛弃时间的人 抛弃时间的人,时间也抛弃他。

抛弃时间的人 抛弃时间的人,时间也抛弃他。

1、明日复明日,多少明日,我为明日而活,一切都是虚度。——文嘉《明日之歌》 2.如果你没有在你的全盛时期回来,早上很难回来。当你正处于人生中期的时候,是时候鼓励自己了。时间流逝,不等人。——陶渊明 3.一个人越知道时间的价值,就越感到失去时间的...

长海医院门诊时间 注意!关于近期长海医院门诊及住院收治工作调整通知

长海医院门诊时间 注意!关于近期长海医院门诊及住院收治工作调整通知

" 亲爱的患者及其家人: 为进一步落实新冠肺炎肺炎防控工作,切实保障医疗病人和医务人员安全,现将长海医院近期门诊和住院调整情况通知如下: " 一、门诊在线预订:申康医疗联合平台www.shdc.org.cn(24小时) 手机预定:上海长海医院微...

叶连平 做一只和时间赛跑的“萤火虫”——92岁退休教师叶连平的忙碌暑假

做一只争分夺秒的“萤火虫”——92岁退休教师叶的繁忙暑假记者黄博涵、张端、刘俊熙暑假伊始,92岁的退休教师叶就在安徽省吴江镇布陈村开始了他忙碌的暑假。早上五点,天刚蒙蒙亮,就开始准备自己简单洗漱后的早餐。两包方便面倒进锅里,连个鸡蛋都不舍得加。利用煮面条的时间,叶来到隔壁教室收...

餐饮营业执照办理流程 最详细的餐饮营业执照办理流程!帮你省一半时间!

一般来说,开一家餐馆至少需要六种执照。营业执照最重要。在办理营业执照的同时,还应办理餐饮服务许可证、消防审批,并通过环境评估取得排污许可证。同时也要为员工办理健康证。 取得营业执照是开餐馆的前提。有了营业执照,你的店就初步开张了。营业执照有前标...

子夜是指现在的北京时间

子夜是指现在的北京时间

午夜是指北京时间23:00-01:00的时间,通常称为午夜。古代有12个小时,午夜是一天的第一个小时。在古代,人们没有像现在这样的钟。他们的计时语言是“陈”,又称“时”。古代的计时仪器是日晷。人们把一天分为十二个小时,即子、丑、阴、毛、陈、司、午、卫、申、酉、徐、海。一小时相当于两小时。午夜也叫午夜和午夜,指北...

人工呼吸是吹气还是吸气 人工呼吸是吹气还是吸气?提前了解,抢救时不至于错过最佳时间

  • 人工呼吸是吹气还是吸气 人工呼吸是吹气还是吸气?提前了解,抢救时不至于错过最佳时间
  • 人工呼吸是吹气还是吸气 人工呼吸是吹气还是吸气?提前了解,抢救时不至于错过最佳时间
  • 人工呼吸是吹气还是吸气 人工呼吸是吹气还是吸气?提前了解,抢救时不至于错过最佳时间

自考毕业证申请时间 自考毕业证书21日开始办理 这份注意事项请收好

11月13日,记者从省招院获悉,2018年下半年自学考试网上毕业证书有效期为2018年11月21日至27日。考生必须提前准备好相关材料,按时在网上申请毕业证书。请记住以下要点:●2018年下半年,考生将于11月21日至27日在网上申请毕业。●市招办受理完成本科资格考试或免试申请...