深度理解机器学习18-长短期记忆网络
长短期记忆网络
·描述LSTM的目的。
·详细评估LSTM的架构。
·使用LSTM开发简单的二进制分类模型。
·实现神经语言翻译,并开发一个英语到德语的翻译模型。
LSTM
长短期记忆网络——通常被称为 LSTM,是一种特殊的 RNN,能够学习长期依赖性。由 Hochreiter 和 Schmidhuber(1997)提出的,并且在接下来的工作中被许多人改进和推广。LSTM 在各种各样的问题上表现非常出色,现在被广泛使用。
LSTM 被明确设计用来避免长期依赖性问题。长时间记住信息实际上是 LSTM 的默认行为,而不是需要努力学习的东西!
所有递归神经网络都具有神经网络的链式重复模块。在标准的 RNN 中,这个重复模块具有非常简单的结构,例如只有单个 tanh 层。
LSTM最基本的组成部分是单元状态,此后用字母“C”表示。在图7-4中,单元状态可以用方框上端的实线来描述。通常把这条线想象成一条穿过不同时间实例并携带一些信息的传送带。虽然有些操作会影响通过单元状态传播的值,但实际上,来自先前单元状态的信息很容易到达下一个单元状态。
遗忘门
遗忘门负责确定应在前一个时间步长中遗忘的单元状态的内容。遗忘门的表达式如下:
时间步长t的输入乘以一组新的权重W_f,其维度为(n_h,n_x)。前一个时间步(h[t-1])的激活乘以另一个新的权重集U_f,其维度为(n_h,n_h)。注意,乘法是矩阵乘法。然后将这两项相加,并通过sigmoid函数将输出f[t]压缩在[0,1]内。输出的维度与单元状态向量C(n_h,1)中的维度相同。遗忘门为每个维数输出“1”或“0”。值“1”表示该维度的前一个单元状态的所有信息都应该通过并保留,而值“0”表示该维度的前一个单元状态的所有信息都应该被忘记。
输入门和候选单元状态
在每个时间步,还可使用如下所示的表达式计算新的候选单元状态。
时间步长t的输入乘以一组新的权重W_c,其维度为(n_h,n_x)。前一个时间步(h[t-1]的激活乘以另一个新的权重集U_c,其维度为(n_h,n_h)。注意,乘法是矩阵乘法。然后将这两项相加,并通过双曲正切函数将输出f[t]压缩在[–1,1]内。输出C_candidate具有维度(n_h,1)。
单元状态更新
时,我们知道应该从旧单元状态中忘记什么(遗忘门),应该允许什么影响新单元状态(输入门),以及候选单元改变应该具有什么值(候选单元状态)。现在,当前时间步长的单元状态可以按如下所示的表达式计算。
hadamard”代表按元素乘。因此,遗忘门按元素与旧的单元状态相乘,允许它在我们的例句中忘记主题的性别。另一方面,输入门允许受试者性别的新候选值影响新的单元状态。然后将这两个术语按元素相加,使得当前单元状态现在具有对应于“女性”值的主性别。