使用循环神经网络对序列数据进行建模
长短期记忆单元(LSTM)
LSTM最初是为了解决梯度消失问题而提出的。LSTM的基本构建块是记忆单元,它本质上代表或取代了标准RNN的隐藏层。
在每个记忆单元中,有一个循环边,其权重 $w = 1$,这有助于克服梯度消失和梯度爆炸问题。与这个循环边相关的值被统称为单元状态。现代LSTM单元的展开结构如下:
前一个时间步的单元状态 $C(t - 1)$ 经过修改得到当前时间步的单元状态 $C(t)$,且不直接与任何权重因子相乘。这个记忆单元中的信息流动由几个计算单元(通常称为门)控制。在图中,⊙ 表示逐元素相乘,⨁ 表示逐元素相加。此外,$x(t)$ 指的是时间 $t$ 的输入数据,$h(t - 1)$ 表示时间 $t - 1$ 的隐藏单元。四个带有激活函数(sigmoid函数 $\sigma$ 或tanh)和一组权重的框,对输入($h(t - 1)$ 和 $x(t)$)进行矩阵 - 向量乘法,执行线性组合。这些具有sigmoid激活函数的计算单元,其输出单元经过 ⊙ 运算,被称为门。
在LSTM单元中,有三种不同类型的门:
- 遗忘门($f_t$) :允许记忆单元重置单元状态,避免其无限增长。它决定了哪些信息可以通过,哪些信息需要抑制。计算公式为:$f_t = \sigma(W_{xf}x(t) + W_{hf}h(t - 1) + b_f)$。遗忘门并非原始LSTM单元的一部分,是后来为改进原始模型而添加的。
- 输入门($i_t$)和候选值($\tilde{C}_t$) :负责更新单元状态。计算公式分别为:$i_t = \s
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



