翻译 LSTM直观解释

原文链接

原文 Understanding LSTM Internal blocks and Intuition

第一部分:LSTM 物理结构 (见原文)

在这里插入图片描述

忘记门

输入门

输出门

内部块 、参数(权重 偏置)计算

第二部分:

LSTM直觉

然而在LSTM 我们有 细胞状态 ,细胞状态是 高速路径、不通过任何全连接网络。因此 允许 在 顺序网络 中,梯度 自由 流动, 有助于 克服 忘记 更长的上下文 问题,有助于 在 长间隔 上 共指解析。

细胞状态Ct是什么

序列数据 中 一个时间步 到 下一个时间步 的 累计信息 由 细胞状态携带,直到 序列结尾。

例如,如果我们正阅读关于世界大战的文章,我们的cell state会充满 残酷,痛苦,勇敢 等features,而 爱、兄弟情谊、和平 等features会很低。

在每一个时间步 基于 当前 输入, 更新 cell state 。例如 在 任意上下文,如果 输入词 是 “爱”,和 “爱”相关的features 在该cell state中 将 成比例的增加。

LSTM直观理解

我们已经看到了 LSTM结构 被拆分成三部分 :忘记块、输入块、输出块。 我们也会用这个拆分去理解LSTM背后的直觉。

由于图画在本文的第一部分,在这里 我将引用这些图,当解释 LSTM每一个部分背后的直觉时。

在进入之前,看下 独立部件:

全连接网络

当前输入向量 和 上一步隐藏状态输出 的 concat 作为m+n维度的输入, 转化m+n维度的输入 到 一个 n维度向量,见 图6

Sigmoid

n维向量进入sigmoid,输出还是n维向量,但是输出值在0到1之间(原文是0或1)

Tanh

n维向量进入tanh,输出还是n维向量,但是输出值在-1到1之间

Multiplication and Addition:

如果sigmoid输出向量 是 0或1,乘以 cell state,那么 所有 为0的sigmoid输出 将 导致 cell state为0;所有 为1的sigmoid输出 将 维持 cell state不变。(图9)

在 忘记门 ,我们 乘以 全连接层的输出 到 该 cell state,因为 我们 必须要 忘记 cell state vector 中的部分值。
在输入门,我们 加 全连接层的输出 到 该 cell state,因为 我们必须 加 当前输入features 到 该 cell state,同时 确保 我们 没有 加 旧的 忘记 feature.

Forget block:

concat 隐状态 和 当前 输入向量(ht-1 + Xt) , 通过一个全链接网络,再通过 sigmoid。 输出 是 0到1之间,当 输出 乘以 cell state, 乘以 0的 features将被忘记,乘以 1的featrues不会被忘记(译者问:可是 没有解释 乘以0.5的features啥意思?忘记一半?) 。
这就是 忘记门 如何 更新 cell state: 使一些features为0 、使其他features保持不变。

在这里插入图片描述

Input block:

输入门 有两个并行分支。这两个分支有相同的输入:concat 隐状态和输入向量(ht-1 + Xt)。

分支2(见下图) 先 全连接网络 再 tanh,这会 压缩 输出值 为 -1 到 1 之间。 如果 该tanh是负的 将会 减小 cell state,如果 是正的 将会 增强 cell state。为了这个(减小和增强) ,tanh输出必须要加到该cell state。 基于 当前输入feature 向量,这个加会 增加 或 减少 cell state中的值 。

为了使 忘记门 说 要 忘记的 那么值 不会 参与到 输入门中,需要 下图中的 分支1 。输入门需要选择哪些不被忘记的值(分支1 的作用是选择)。(原文这一小段有错误)
在这里插入图片描述

Output block:

现在 cell state 已: 通过 忘记门 获知哪些feature要被忘记、通过 输入门 取得了输入。
在 输出门(图5), 将 已更新的 cell state 作为 选择器; concat 输入 隐状态 经过 全连接网络 再经过sigmoid 的输出, 让刚的选择器 作用于 此输出, 结果 就是 下一个时刻的隐状态 。

Conclusion:

References:

猜你喜欢

转载自blog.csdn.net/hfcaoguilin/article/details/114263372