lstm记忆单元的工作原理,结合数学公式
时间: 2023-11-27 16:35:50 浏览: 29
LSTM(Long Short-Term Memory)是一种特殊的循环神经网络,用于处理序列数据,它能够有效地捕捉长期依赖关系。
LSTM中的核心即是记忆单元(memory cell),记忆单元中包含了一个状态向量 $C_t$,用于存储和传递信息。LSTM中的门控单元(gate)用于控制信息的输入、输出和保留。
LSTM的记忆单元工作原理如下:
1. 遗忘门(forget gate): 遗忘门控制着前一时刻的状态 $C_{t-1}$ 中哪些信息需要被遗忘。它接受前一时刻的状态 $C_{t-1}$ 和当前时刻的输入 $x_t$ 作为输入,输出一个 0-1 之间的数,决定哪些信息需要被遗忘,数值越接近 0 表示需要遗忘的信息越多。公式如下:
$f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)$
其中 $W_f$ 是权重矩阵,$b_f$ 是偏置向量,$\sigma$ 是 sigmoid 函数,$h_{t-1}$ 是前一时刻的隐藏状态。
2. 输入门(input gate): 输入门控制着当前时刻的输入 $x_t$ 和前一时刻的隐藏状态 $h_{t-1}$ 中哪些信息需要被加入到状态 $C_t$ 中。它输出一个 0-1 之间的数,表示需要加入的信息的比例。公式如下:
$i_t = \sigma(W_i [h_{t-1}, x_t] + b_i)$
3. 候选状态(candidate state): 候选状态是一个向量,用于计算当前时刻的状态 $C_t$。它接受当前时刻的输入 $x_t$ 和前一时刻的隐藏状态 $h_{t-1}$ 作为输入,输出一个向量。公式如下:
$\tilde{C_t} = \tanh(W_C [h_{t-1}, x_t] + b_C)$
4. 更新状态(update state): 更新状态使用遗忘门、输入门、候选状态共同决定当前时刻的状态 $C_t$。公式如下:
$C_t = f_t * C_{t-1} + i_t * \tilde{C_t}$
5. 输出门(output gate): 输出门控制着当前时刻的状态 $C_t$ 中哪些信息需要被输出。它接受当前时刻的输入 $x_t$ 和前一时刻的隐藏状态 $h_{t-1}$ 作为输入,输出一个 0-1 之间的数,表示需要输出的信息的比例。公式如下:
$o_t = \sigma(W_o [h_{t-1}, x_t] + b_o)$
6. 隐藏状态(hidden state): 隐藏状态是一个向量,用于传递给下一时刻。它接受当前时刻的状态 $C_t$ 作为输入,输出一个向量。公式如下:
$h_t = o_t * \tanh(C_t)$
其中 $W_i, W_f, W_C, W_o$ 是权重矩阵,$b_i, b_f, b_C, b_o$ 是偏置向量,$\tanh$ 是双曲正切函数。