LSTM
结构
- 遗忘门 forget gate ↔ $\Gamma_f^{\langle t\rangle}=\sigma\left(W_f\left[a^{\langle t-1\rangle}, x^{\langle t\rangle}\right]+b_f\right)$
- 取值范围在 0 到 1
- 功能 → 控制上一个
cell的状态 $c^{t-1}$,有多少信息进入当前状态 $c^{t}$
- 更新门 update gate ↔ $\Gamma_u^{\langle t\rangle}=\sigma\left(W_u\left[a^{\langle t-1\rangle}, x^{\langle t\rangle}\right]+b_u\right)$
- 功能 → 控制输入 $x$,有多少信息进入当前状态 $c^{t}$
- $\tilde{c}^{(t)}$ → $\tilde{c}^{(t)}=\tanh \left(W_C\left[a^{\langle t-1\rangle}, x^{\langle t\rangle}\right]+b_C\right)$
- $c^{\langle t\rangle}=\Gamma_f^{\langle t\rangle} \circ c^{(t-1\rangle}+\Gamma_u^{\langle t\rangle} \circ \tilde{c}^{\langle t\rangle}$
- 输出门 output gate ↔ $\Gamma_o^{(t)}=\sigma\left(W_o\left[a^{\langle t-1\rangle}, x^{\langle t\rangle}\right]+b_o\right)$
- 作用 → 控制当前状态 $c^{t}$ 有多少信息进入
cell的输出
- 作用 → 控制当前状态 $c^{t}$ 有多少信息进入
- 新的 $a^{\langle t\rangle}$ 计算方式→ $a^{\langle t\rangle}=\Gamma_o^{\langle t\rangle} \circ \tanh \left(c^{\langle t \rangle}\right)$

使用饱和的非线性函数
- 为什么 → 在输入达到一定值后,输出就不会发生明显变化
- [[sigmoid]] 阈值 0-1 → 模拟开关的关闭程度,用于各种门
- 现代神经网络中门控的选择
- [[Tanh]] 阈值 -1 到 1,梯度的阈值为 0~1 → 生成记忆
- 0 中心
- 输入在 0 附近相比 Sigmoid 函数有更大的梯度
- 为什么不使用 relu → 只能输出大于 0 的部分,前向传播容易发生信息爆炸性增长。
Ref
- [[Backward]]
- [[Question]]
- 为什么LSTM没有办法处理等差数列? - 知乎 (zhihu.com)