记忆网络(LSTM)时,我们可以进一步深入了解以下几个关键概念和知识点:
记忆单元(Memory Cell): LSTM 的核心是记忆单元,它是网络中负责存储信息的主要组成部分。记忆单元在每个时间步都会更新其状态,这使得网络能够记住长期的信息。
输入门(Input Gate): 输入门决定了在当前时间步将多少新信息加入到记忆单元中。它通过一个 Sigmoid 函数来输出一个介于 0 和 1 之间的值,表示保留多少新的信息。此门的操作可以用以下公式表示:
[i_t = \sigma(W_{ii}x_t + b_{ii} + W_{hi}h_{t-1} + b_{hi})]
其中 (i_t) 是输入门的输出,(\sigma) 是 Sigmoid 函数,(x_t) 是当前时间步的输入,(h_{t-1}) 是上一个时间步的隐藏状态,(W_{ii})、(b_{ii})、(W_{hi}) 和 (b_{hi}) 是与输入门相关的权重和偏差。
遗忘门(Forget Gate): 遗忘门决定从记忆单元中遗忘多少信息。类似于输入门,遗忘门通过 Sigmoid 函数输出一个介于 0 和 1 之间的值,表示保留多少先前的信息。公式如下:
[f_t = \sigma(W_{if}x_t + b_{if} + W_{hf}h_{t-1} + b_{hf})]
其中 (f_t) 是遗忘门的输出,(\sigma) 是 Sigmoid 函数,(x_t) 是当前时间步的输入,(h_{t-1}) 是上一个时间步的隐藏状态,(W_{if})、(b_{if})、(W_{hf}) 和 (b_{hf}) 是与遗忘门相关的权重和偏差。
记忆单元更新: 记忆单元的状态更新由输入门和遗忘门的输出共同决定。新的信息被加入,而一些先前的信息被遗忘。记忆单元的更新公式如下:
[C_t = f_t \cdot C_{t-1} + i_t \cdot \tanh(W_{ic}x_t + b_{ic} + W_{hc}h_{t-1} + b_{hc})]
其中 (C_t) 是记忆单元的新状态,(\tanh) 是双曲正切函数。
输出门(Output Gate): 输出门决定从记忆单元中输出多少信息到当前时间步。输出门的输出是通过 Sigmoid 和 tanh 函数组合得到的。输出门的公式如下:
[o_t = \sigma(W_{io}x_t + b_{io} + W_{ho}h_{t-1} + b_{ho})] [h_t = o_t \cdot \tanh(C_t)]
其中 (o_t) 是输出门的输出,(\tanh) 是双曲正切函数,(h_t) 是当前时间步的隐藏状态。