RNN: RNN的核心是一个循环单元,它在序列的每个时间步上执行相同的任务,同时保留一些关于之前步骤的信息。RNN的这个结构使其理论上能够处理任意长度的序列。
LSTM: LSTM是RNN的一个变种,它包含特殊的结构称为“门”(Gates)。这些门(遗忘门、输入门和输出门)帮助网络决定信息的添加或移除,这使得LSTM能够更有效地学习长期依赖性。
RNN: RNN在处理长序列时面临“梯度消失”或“梯度爆炸”的问题,这使得它难以学习和保持长期的依赖关系。
LSTM: LSTM通过其门控机制可以较好地解决长期依赖问题。遗忘门帮助网络遗忘不相关的信息,而输入和输出门帮助网络保持有用的长期依赖。
RNN: RNN的结构比LSTM简单,因此计算成本通常较低。但这种简单性也了它处理复杂问题的能力。
LSTM: LSTM的结构更复杂,需要更多的计算资源。但这种复杂性提供了更好的性能,特别是在处理需要理解长期依赖的任务时。
RNN: 对于一些不需要长期记忆的简单序列处理任务,标准的RNN可能足够有效。
LSTM: 对于需要处理复杂模式和长期依赖的任务(如机器翻译、语音识别等),LSTM通常是更好的选择。
LSTM:
RNN:
LSTM引入了三个门( 输入门、遗忘门、输出门)和一个 细胞状态(cell state),这些机制使得LSTM能够更好地处理序列中的长期依赖关系
Ct-1(cell):t-1时刻的记忆细胞
ht-1:t-1时刻的状态
σ:输出值是介于0-1的值
ft(forget):遗忘门
it:更新门
ot:输出门
计算流程(注意tanh上面的Ct C上面有个波浪符合 但是图不清楚 计算公式最上面中间公式的gt对应的就是它):
黄色的门单元输入的值都是一样的 都是ht-1和xt分别和对应的权重相乘之后再相加得到的值
从左往右:
ft(遗忘门):
ht-1和xt分别和对应的权重相乘之后再相加得到的值经过σ处理成0-1之间的值成为ft 之后与上一时刻记忆细胞Ct-1的值相乘 就是图中对应的:
it(更新门):
ht-1和xt分别和对应的权重相乘之后再相加得到的值经过σ处理成0-1之间的值成为it
gt:
ht-1和xt分别和对应的权重相乘之后再相加得到的值经过tanh函数的处理的值
Ct(记忆细胞):
t时刻记忆细胞的值就是ft+gt+it的值
其他的应该不难看懂 内部的结构都是一样的 都有相同的部分 就是ht-1和xt分别和对应的权重相乘之后再相加得到的值
1.遗忘门
LSTM的第一步是决定我们要从单元状态中舍弃什么信息。这一步由激活函数为sigmoid的神经层决定,我们称之为遗忘门(forget gate)。首先将ht-1与xt的和作为遗忘门的输入,对于输入的每一个数字,遗忘门输出一个[0,1]区间的数字,输出1代表“完全保留”,输出0代表“完全遗忘”,再将遗忘门的输出与Ct-1对应元素相乘以忘记一些长时依赖信息。
2.输入门
LSTM的第二步决定将要在单元状态(cell)中存储哪些新的信息。这由两个部分组成。首先,激活函数为sigmoid的称为输入门(forget gate)的层决定将更新哪些值。接下来,激活函数为tanh的层创建一个新的候选值向量,可以添加到单元状态。 候选值向量经过输入门筛选后加入到细胞状态(cell)中,细胞状态因此完成更新。
3.输出门
最后,LSTM将决定输出的内容,这由输出门(Input gate)决定。这个输出将基于我们的单元状态,但将是一个过滤版。首先,我们运行一个sigmoid层,决定我们要输出单元状态的哪些部分。然后,我们通过tanh函数把更新后的细胞状态值转换为[-1,1]区间。最后,把转换后的单元状态与sigmoid门的输出相乘,这样我们只输出我们决定的部分。
LSTM的反向传播
目标:求y对wxf的偏导
假设t=3时刻
从图中看有多条路径:
第一条(对wxf3)
第二条(对wxf2)
对=右边提公因式
最终得到
第三条(对wxf3)
分布求:
(1)
(2)
(3)将(1)(2)组合起来
再进一步整理
最终可得
化为公式
缓解梯度消失的原因:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务