10. 循环神经网络
10.1 文本数据 RNN 和 CNN *
NN:TF-IDF,丢失顺序
CNN:捕捉局部特征,很难学习长距离依赖
RNN:处理变长&有序,模拟 顺序阅读+记忆能力
每层 ht=f(nett)=f(Uxt+Wht−1),输出 y=g(VhT)
10.2 RNN 的梯度消失问题 **
BPTT(Back Propagation Through Time,基于时间的反向传播)
∂nett−1∂nett=∂ht−1∂nett∂nett−1∂ht−1=W⋅diag[f′(nett−1)],称为雅可比矩阵
最大特征值>1,梯度爆炸,梯度裁剪(超过阈值等比收缩)
最大特征值<1,梯度消失,LSTM / GRU
10.3 RNN 能否使用 ReLU ***
可以,但需要限制矩阵初值,否则容易引发数值问题(0 / inf)
nett 的表达式中,最终包含 t 个 W 的 连乘,因为每层权重相同
需要将 W 初始化为 单位矩阵
10.4 长短期记忆网络 LSTM ***
语音识别、语言建模、机器翻译、命名实体识别、图像描述文本生成

结构
输入门 it=σ(Wixt+Uiht−1+bi),当前状态,多大程度更新到记忆单元中
遗忘门 ft=σ(Wfxt+Ufht−1+bf),之前记忆单元中的信息,多大程度被遗忘掉
输出门 ot=σ(Woxt+Uoht−1+bo),当前输出,多大程度取决于当前记忆单元
内部记忆单元 c~t=tanh(Wcxt+Ucht−1),于是 ct=ft⊙ct−1+it⊙c~t
ht=ot⊙tanh(ct)
激活函数
sigmoid 输出 0
1 门控,tanh 输出 -11 分布0中心,这两个函数都是饱和的计算能力有限的设别,使用 0/1门(hard gate)
10.5 Seq2Seq 模型 ***
机器翻译、语音识别、自动对话

思想:输入序列 - 编码 - 解码 - 输出序列
机器翻译:输入 A, B, C, [EOS],输出 W, X, Y, Z
文本摘要:输入 段落,输出 摘要短句
图像描述文本生成:输入 经过视觉网络的特征,输出 描述短句
语音识别:输入 音频信号,输出 文本
核心是 解码环节
贪心法:局部最优解
集束搜素:启发式,每步保留 b 个当前较佳选择,8-12
注意力机制
记忆网络:从外界获取知识
其他:堆叠的 RNN、Dropout 机制、残差连接
10.6 注意力机制 Attention ****
Seq2Seq,随着输入序列的增长,性能下降,输出损失信息
注意力机制,解码时,每个输出依赖于 前一个隐状态 + 每一个输入隐状态
si=f(si−1,yi−1,ci)
p(yi∣y1,y2,...,yi−1)=g(yi−1,si,ci)
其中 语境向量 ci=∑j=1Tαijhj,是 输入序列 所有隐状态 hj 的 加权和
其中 注意力权重系数 αij=softmax(a(si−1,hj)),是另一个神经网络计算得到的
在生成一个输出词时,会考虑 每个输入词 和 当前输出词 的 对齐关系

Last updated