LSTM单元状态和隐藏状态之间的区别
数据挖掘
机器学习
神经网络
深度学习
lstm
rnn
2021-10-03 05:06:28
2个回答
简而言之:
- 细胞状态:模型的长期记忆,只是LSTM模型的一部分
- 隐藏状态:工作记忆,LSTM 和 RNN 模型的一部分
附加信息
RNN 和消失/爆炸梯度
传统的循环神经网络 (RNN) 具有通过时间传播(即前向和后向传播)对顺序事件进行建模的能力。这是通过将这些顺序事件与隐藏状态“连接”来实现的:
隐藏状态 通过对上一步和当前输入应用线性组合来携带过去的信息。
尽管 RNN 是一个非常成功的架构,但 RNN 存在梯度消失/爆炸的问题。这意味着在计算反向传播(我的预测有多么错误)时,实际上每一步都被考虑在内,因为刻在其中的链式法则:
, 自从 .
总结一下:RNN 很棒,但是由于隐藏状态的链式规则,对数项的依赖关系会出现问题。
LSTM 和细胞状态
为了缓解上述问题,LSTM 架构在 RNN 的现有隐藏状态之外引入了单元状态。细胞状态使模型对过去事件有更长的记忆。这种长期记忆能力是由
- 从新输入中存储有用的信念
- 将立即有用的信念加载到工作记忆(即细胞状态)中。
如果您想知道“它如何知道要存储什么或立即有用的东西?”:请记住,这是一个可训练的重量,可以通过训练来学习,将其视为额外的一块肌肉,将通过训练来学习这种新的活动存储和加载关于示例(即标记的数据点)。
总结一下:LSTM 通常更擅长处理长期依赖关系,因为它们能够存储和加载在序列的不同部分很重要的信念。
TLDR:
隐藏状态:
- 工作记忆能力,它携带来自前一个事件的信息,并在每一步不受控制地覆盖——存在于 RNN 和 LSTM
细胞状态:
- 长期记忆能力,存储和加载不一定是先前事件的信息
- 存在于 LSTM 中
GRU 也非常相关,但被排除在响应之外。
由于梯度消失的问题(即反向传播的梯度无法达到较早的状态),RNN 无法保留过去很久的记忆。这是模型本身的限制。因此,我们需要引入一个更强大的模型,即降低偏差(以增加方差为代价)。
将细胞状态引入 LSTM 细胞实际上增加了模型的复杂性。如您所知,增加复杂性通常会增加方差并减少偏差。细胞状态充当高速公路,以便梯度更好地流向早期状态,这反过来又允许模型捕获更早的过去的记忆。