先说一下LSTM
LSTM 是一种特殊的 RNN,它通过引入门控机制来解决传统 RNN 的长期依赖问题。
LSTM 的结构包含以下几个关键组件:
- 输入门(input gate):决定当前时间步的输入信息对细胞状态的影响程度。
- 遗忘门(forgetgate):决定上一个时间步的细胞状态对当前时间步的影响程度。
- 细胞状态(cell state):用于在不同时间步之间传递和存储信息。
- 输出门(output gate):决定细胞状态对当前时间步的输出影响程度。
- 隐藏状态(hiddenstate):当前时间步的输出,也是下一个时间步的输入。
LSTM内部工作原理:
我们假设:h为LSTM单元的隐藏层输出,c为LSTM内存单元的值,x为输入数据。
-
1、计算遗忘门的值𝑓**(𝑡)。
-
2、 计算当前时刻的输入结点*𝑔**(𝑡)g_((t)),𝑊(𝑥𝑔)W_((xg)),𝑊(h𝑔)W_((hg)),𝑊(𝑐𝑔)*W_((cg))分别是输入数据和上一时刻LSTM 单元输出的权值:
-
3、计算输入门 (input gate) 的值*𝑖**(𝑡)*i_((t))。输入门用来控制当前输入数据对记忆单元状态值的影响。
-
4、计算当前时刻记忆单元的状态值*𝑐**(𝑡)*c_((t))。
-
5、计算输出门*𝑜**(𝑡)*o_((t))。输出门用来控制记忆单元状态值的输出。
-
6、最后计算LSTM单元的输出。
长短期记忆神经网络(LSTM)的计算公式:
双向长短期记忆神经网络
双向长短期记忆神经网络(BiLSTM)的计算公式:
Bidirectional Long Short-Term Memory, BiLSTM
它是传统长短期记忆网络(Long Short-Term Memory, LSTM)的一种扩展形式,结合了正向LSTM和反向LSTM来获取更完整的上下文信息。从而通过BiLSTM可以更好的捕捉双向的语义依赖.
BiLSTM通过添加一个反向层来实现双向读取。具体而言,它使用两个LSTM网络,一个按照正向顺序处理输入序列,另一个按照反向顺序处理输入序列。这样,在每个时间步骤,每个LSTM单元都能够同时访问前面和后面的上下文信息。