公司动态
【DL】LSTM|Cell State|三个门
一、为什么需要 LSTM因为普通 RNN 虽然可以通过 Hidden State 保存过去的信息但是当序列很长时早期信息很容易在多次计算和反向传播中逐渐丢失因此 RNN 很难处理长期依赖。增加一条专门的长期记忆通道 Cell State并通过门控机制决定信息应该保留、删除还是输出。RNN有记忆但是很容易忘记很久之前的信息所以LSTM出来了专门管理记忆。二、RNN 存在的问题所有的历史信息都挤在hidden state里面序列很长时信息很容易被新的信息覆盖或者逐渐削弱。过去记忆 ↓ hₜ₋₁ 当前输入 ↓ RNN ↓ hₜ三、LSTM 做了什么LSTM主要增加了Cell StateCt可以理解为一条专门用来保存长期信息的“记忆通道”。同时保留ht作为当前时刻对外输出的状态。Cₜ 长期记忆hₜ 当前状态 / 当前输出四、为什么要搞两个状态可以理解为C我的长期笔记h我现在正在说什么五、LSTM 最核心的设计三个门为什么叫“门”这些gate本质是一个01 之间的控制器0可以理解为完全不让信息通过1反之它们之间的数值代表这相应的范围。为什么使用 Sigmoid它的输出范围0–1正好适合做们。第一扇门Forget Gate干什么的决定旧的 Cell State 中哪些信息应该保留哪些信息应该忘掉。我们通过一个例子来解释当作长期笔记 Cₜ₋₁ 姓名小明 年龄20 住址北京 天气晴 现在小明搬到了上海 那么以前的住址应该忘掉forget gate就是再判断每次是否应该保留第二扇门Input Gate干什么的决定当前输入产生的新信息中哪些应该写入长期记忆 Cell State。Input Gate决定写多少Candidate Memory决定写什么第三扇门Output Gate干什么决定当前 Cell State 中哪些信息应该暴露出来形成当前的 Hidden State。大概流程Cₜ ↓ Output Gate ↓ hₜ六、现在看 LSTM 的完整流程当前输入 xₜ │ ↓ ┌─────────────┐ │ Forget Gate │ └──────┬──────┘ ↓ 旧记忆 Cₜ₋₁ ──────→ 删除一部分 │ ↓ ┌─────────────┐ │ Input Gate │ └──────┬──────┘ ↓ 写入新信息 │ ↓ Cₜ │ ↓ ┌─────────────┐ │ Output Gate │ └──────┬──────┘ ↓ hₜ七、现在正式进入数学forget gateinput gatecandidate memory更新cell stateoutput gate更新Hidden state我们来手算一个极简 LSTM旧记忆 Cₜ₋₁ 0.8 │ ↓ Forget Gate 0.9 │ ↓ 0.8 × 0.9 0.72 (原来的长期记忆保存90%) │ │ 新信息 Candidate 0.5 │ ↓ Input Gate 0.6 │ ↓ 0.5 × 0.6 0.3当前新信息写入60% │ ↓ 0.72 0.3 ↓ Cₜ 1.02新的长期记忆 │ ↓ Output Gate 0.7 ↓ hₜ ≈ 0.54八、LSTM 为什么比普通 RNN 更容易处理长期依赖因为 LSTM 有一条专门的 Cell State并且 Cell State 的更新主要通过加法和门控完成使长期信息能够更直接地沿着这条通道传播从而比普通 RNN 更容易保留长期信息。九、LSTM 和 RNN 的区别RNNLSTMHidden State✅✅Cell State❌✅Forget Gate❌✅Input Gate❌✅Output Gate❌✅长期依赖较弱更强结构简单更复杂可以理解为RNN 一个记忆状态 ↓ 容易忘 LSTM 长期记忆 C 当前状态 h 三个 Gate ↓ 更会管理记忆十、LSTM 的真正核心LSTM 的核心思想是让网络能够主动控制信息的流入、保留和输出。千万不要以为它有三个们所以叫做LSTM