(五)通俗易懂理解——双向LSTM

更新时间:2023-07-01 19:36:27 阅读: 评论:0

iunderstand
(五)通俗易懂理解——双向LSTM
⽹上资料真的是⾮常丰富(杂乱),每次想要很清楚地了解⼀些算法原理都找不到⽐较有代表性,通俗易懂的。另外,⾃⼰以前很多内容看过理解了,当时更多地操作是收藏,但是结果就呵呵了(收藏过的东西基本上很少再去翻看了)。现在决定看过⼀些⽐较好的,易于理解的内容尽可能地放进专栏⾥,虽然很⼤部分是直接整合别⼈的⽂章转载过来,希望可以帮助⾃⼰以及跟我⼀样需要了解这⽅⾯内容的朋友。在此也感谢原作者的贡献,也希望⾃⼰以后也可以写⼀些原创。
Recurrent Neural Networks
⼈类并不是每时每刻都从⼀⽚空⽩的⼤脑开始他们的思考。在你阅读这篇⽂章时候,你都是基于⾃⼰已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后⽤空⽩的⼤脑进⾏思考。我们的思想拥有持久性。 传统的神经⽹络并不能做到这点,看起来也像是⼀种巨⼤的弊端。例如,假设你希望对电影中的每个时间点的时间类型进⾏分类。传统的神经⽹络应该很难来处理这个问题——使⽤电影中先前的事件推断后续的事件。 RNN 解决了这个问题。RNN 是包含循环的⽹络,允许信息的持久化。
在上⾯的⽰例图中,神经⽹络的模块,A,正在读取某个输⼊ x_i,并输出⼀个值 h_i。循环可以使得
信息可以从当前步传递到下⼀步。
heiying
这些循环使得 RNN 看起来⾮常神秘。然⽽,如果你仔细想想,这样也不⽐⼀个正常的神经⽹络难于理解。RNN 可以被看做是同⼀神经⽹络的多次复制,每个神经⽹络模块会把消息传递给下⼀个。所以,如果我们将这个循环展开:
链式的特征揭⽰了 RNN 本质上是与序列和列表相关的。他们是对于这类数据的最⾃然的神经⽹络架构。
并且 RNN 也已经被⼈们应⽤了!在过去⼏年中,应⽤ RNN 在语⾳识别,语⾔建模,翻译,图⽚描述等问题上已经取得⼀定成功,并且这个列表还在增长。我建议⼤家参考 Andrej Karpathy 的博客⽂章——来看看更丰富有趣的 RNN 的成功应⽤。
⽽这些成功应⽤的关键之处就是 LSTM 的使⽤,这是⼀种特别的 RNN,⽐标准的 RNN 在很多的任务
上都表现得更好。⼏乎所有的令⼈振奋的关于 RNN 的结果都是通过 LSTM 达到的。这篇博⽂也会就 LSTM 进⾏展开。
翻译论文长期依赖(Long-Term Dependencies)问题
RNN 的关键点之⼀就是他们可以⽤来连接先前的信息到当前的任务上,例如使⽤过去的视频段来推测对当前段的理解。如果 RNN 可以做到这个,他们就变得⾮常有⽤。但是真的可以么?答案是,还有很多依赖因素。 有时候,我们仅仅需要知道先前的信息来执⾏当前的任务。例如,我们有⼀个语⾔模型⽤来基于先前的词来预测下⼀个词。如果我们试着预测 “the clouds are in the sky” 最后的词,我们并不需要任何其他的上下⽂ —— 因此下⼀个词很显然就应该是 sky。在这样的场景中,相关的信息和预测的词位置之间的间隔是⾮常⼩
的,RNN 可以学会使⽤先前的信息。
suri
不太长的相关信息和位置间隔
但是同样会有⼀些更加复杂的场景。假设我们试着去预测“I grew up I speak fluent French”最后的词。当前的信息建议下⼀个词可能是⼀种语⾔的名字,但是如果我们需要弄清楚是什么语⾔,我们是需要先前提到的离当前位置很远的 France 的上下⽂的。这说明相关信息和当前预测位置之间的间隔就肯定变得相当的⼤。 不幸的是,在这个间隔不断增⼤时,RNN 会丧失学习到连接如此远的信息的能⼒。
在理论上,RNN 绝对可以处理这样的 长期依赖 问题。⼈们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN 肯定不能够成功学习到这些知识。等⼈对该问题进⾏了深⼊的研究,他们发现⼀些使训练 RNN 变得⾮常困难的相当根本的原因。
honesty然⽽,幸运的是,LSTM 并没有这个问题!
LSTM ⽹络
Long Short Term ⽹络—— ⼀般就叫做 LSTM ——是⼀种 RNN 特殊的类型,可以学习长期依赖信息。LSTM 由提出,并在近期被进⾏了改良和推⼴。在很多问题,LSTM 都取得相当巨⼤的成功,并得到了⼴泛的使⽤。 LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认⾏为,⽽⾮需要付出很⼤代价才能获得的能⼒! 所有 RNN 都具有⼀种重复神经⽹络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有⼀个⾮常简单的结构,例如⼀个 tanh 层。
标准 RNN 中的重复模块包含单⼀的层
thebibliographyLSTM 同样是这样的结构,但是重复的模块拥有⼀个不同的结构。不同于 单⼀神经⽹络层,这⾥是有四个,以⼀种⾮常特殊的⽅式进⾏交互。
LSTM 中的重复模块包含四个交互的层
不必担⼼这⾥的细节。我们会⼀步⼀步地剖析 LSTM 解析图。现在,我们先来熟悉⼀下图中使⽤的各种元素的图标。
audio是什么意思
LSTM 中的图标
在上⾯的图例中,每⼀条⿊线传输着⼀整个向量,从⼀个节点的输出到其他节点的输⼊。粉⾊的圈代
表 pointwi 的操作,诸如向量的和,⽽黄⾊的矩阵就是学习到的神经⽹络层。合在⼀起的线表⽰向量的连接,分开的线表⽰内容被复制,然后分发到不同的位置。
LSTM 的核⼼思想
LSTM 的关键就是细胞状态,⽔平线在图上⽅贯穿运⾏。 细胞状态类似于传送带。直接在整个链上运⾏,只有⼀些少量的线性交互。信息在上⾯流传保持不变会很容易。
LSTM 有通过精⼼设计的称作为“门”的结构来去除或者增加信息到细胞状态的能⼒。门是⼀种让信息选择式通过的⽅法。他们包含⼀个sigmoid 神经⽹络层和⼀个 pointwi 乘法操作。
Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!
LSTM 拥有三个门,来保护和控制细胞状态。
逐步理解 LSTM
北京雅思辅导班在我们 LSTM 中的第⼀步是决定我们会从细胞状态中丢弃什么信息。这个决定通过⼀个称为忘记门层完成。该门会读取h_{t-1}和x_t,输出⼀个在 0 到 1 之间的数值给每个在细胞状态C_{t-1}中的数字。1 表⽰“完全保留”,0 表⽰“完全舍弃”。 让我们回到语⾔模型的例⼦中来基于已经看到的预测下⼀个词。在这个问题中,细胞状态可能包含当前主语的性别,因此正确的代词可以被选择出来。当我们看到新的主语,我们希望忘记旧的主语。
决定丢弃信息
下⼀步是确定什么样的新信息被存放在细胞状态中。这⾥包含两个部分。第⼀,sigmoid 层称 “输⼊门层” 决定什么值我们将要更新。然后,⼀个 tanh 层创建⼀个新的候选值向量,\tilde{C}_t,会被加⼊到状态中。下⼀步,我们会讲这两个信息来产⽣对状态的更新。 在我们语⾔模型的例⼦中,我们希望增加新的主语的性别到细胞状态中,来替代旧的需要忘记的主语。
新东方网校
确定更新的信息
现在是更新旧细胞状态的时间了,C_{t-1}更新为C_t。前⾯的步骤已经决定了将会做什么,我们现在就是实际去完成。 我们把旧状态与f_t 相乘,丢弃掉我们确定需要丢弃的信息。接着加上i_t * \tilde{C}_t。这就是新的候选值,根据我们决定更新每个状态的程度进⾏变化。 在语⾔模型的例⼦中,这就是我们实际根据前⾯确定的⽬标,丢弃旧代词的性别信息并添加新的信息的地⽅。
更新细胞状态
最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是⼀个过滤后的版本。⾸先,我们运⾏⼀个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进⾏处理(得到⼀个在 -1 到 1 之间的值)并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。 在语⾔模型的例⼦中,因为他就看到了⼀个 代词,可能需要输出与⼀个 动词 相关的信息。例如,可能输出是否代词是单数还是负数,这样如果是动词的话,我们也知道动词需要进⾏的词形变化。
fruit怎么读
输出信息
LSTM 的变体
我们到⽬前为⽌都还在介绍正常的 LSTM。但是不是所有的 LSTM 都长成⼀个样⼦的。实际上,⼏乎所有包含 LSTM 的论⽂都采⽤了微⼩的变体。差异⾮常⼩,但是也值得拿出来讲⼀下。 其中⼀个流形的 LSTM 变体,就是由 提出的,增加了 “peephole connection”。是说,我们让 门层 也会接受细胞状态的输⼊。

本文发布于:2023-07-01 19:36:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/163963.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   状态   细胞   神经   需要
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图