Recurrent Neural Network(RNN)
循环神经网络
- 下图为标准的RNN结构。RNN不断接收序列输入 X i X_i Xi,输出记忆向量 h i h_i hi

- 下图为标准的RNN Cell内部结构。RNN Cell之间前向传播公式为:
h t = t a n h ( X t + h t − 1 ) h_t = tanh(X_t + h_{t-1}) ht=tanh(Xt+ht−1)

- 缺点:
1. 梯度爆炸 & 梯度消失
2. 长期依赖问题(Long-Term Dependencies)


梯度计算
随时间反向传播
BackPropagation Through Time,BPTT
实时循环学习
Real-Time Recurrent Learning,RTRL
Long Short-Term Memory(LSTM)
Paper : LONG SHORT-TERM MEMORY
Paper : Understanding LSTM Networks
长短时记忆
- 下图为标准的LSTM Cell内部结构。


- 细胞状态(Cell State):贯穿整个Cell却只有很少分支,保证信息不变的流过整个RNNs

- 遗忘门(Forget Gate):决定细胞状态需要丢弃哪些信息。它通过 h t − 1 h_{t-1} ht−1和 X t X_t Xt之间Concat并经过Sigmoid激活函数来判断细胞状态 C t − 1 C_{t-1} Ct−1中的信息保留或丢弃多少。 f t f_t ft为0表示完全不保留,为1表示完全保留。

- 输入门(Input Gate):决定给细胞状态添加哪些新的信息。首先,通过 h t − 1 h_{t-1} ht−1和 X t X_t Xt的Concat通过Sigmoid生成一个[0, 1]范围的向量,用来控制新信息的获取多少。然后再将 h t − 1 h_{t-1} ht−1和 X t X_t Xt的Concat通过tanh生成新的候选细胞信息 C ~ t \tilde{C}_t C~t,这些信息将会被有选择地更新到细胞状态中。

- 更新细胞状态:更新旧的细胞状态 C t − 1 C_{t-1} Ct−1,变为新的细胞状态 C t C_t Ct。通过遗忘门选择忘记旧细胞状态 C t − 1 C_{t-1} Ct−1的一部分,通过输入门选择添加候选细胞信息 C ~ t \tilde{C}_t C~t的一部分,最终得到新的细胞状态 C t C_t Ct。

- 输出门(Output Gate):决定由细胞状态输出哪些信息。先根据 h t − 1 h_{t-1} ht−1和 X t X_t Xt的Concat通过Sigmoid输出一个范围为[0, 1]“选择向量”,然后将细胞状态通过tanh得到一个范围为[-1, 1]的输出向量,两者相点乘就得到了该LSTM Cell的输出 h t h_t ht。

-
整个LSTM最核心的思想就在于信息的选取。利用Sigmoid函数输出取值范围在[0, 1]之间的特性,将其作为一种“选择比例”来选择、遗忘和输出一些信息。
-
实际使用中,通常使用LSTM最后一层的最后一个LSTM Cell输出的 h t h_t ht值来进行相关操作。
Bidirectional Long Short-Term Memory(Bi-LSTM)
双向LSTM
Bidirectional Long Short-Term Memory With Attention(Bi-LSTM + Attention)
加入Attention机制的Bi-LSTM
Gated Recurrent Unit (GRU)
LSTM的一种变种
Sequence-to-Sequence(Seq2Seq)
Paper : Sequence to Sequence Learning with Neural Networks
-
Beam Search
束搜索
-
在每一步的生成(解码输出)中,生成K个最可能的前缀序列,其中K为束大小(Beam Size),是一个超参数。
-
例子:词表 V = { A , B , C } \mathcal{V}=\{A, B, C\} V={A,B,C},束大小为2,下图为束搜索过程示例

-
在第一步时,生成 K K K个最可能的词
-
在之后的每一步,从 K ∣ V ∣ K|\mathcal{V}| K∣V∣个候选输出中选择 K K K个最可能的序列(在 K K K个分支的每个分支中只选择一个候选,而不是 K K K个,只有第一步选择 K K K个,因为要保证最后只有 K K K个候选序列)
-
-
本文详细介绍了循环神经网络(RNN)的基本结构,包括标准RNN和RNNCell,以及其面临的梯度问题。重点讨论了LSTM的细胞状态、遗忘门、输入门和输出门,以及如何解决长期依赖问题。此外,还涵盖了双向LSTM和加入注意力机制的Bi-LSTM,以及GatedRecurrentUnit(GRU)。文章最后提到了序列到序列学习和束搜索在生成模型中的应用。

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



