循环神经网络简述-快速复习
循环神经网络
具有隐状态的循环神经网络
Ht=ϕ(XtWxh+Ht−1Whh+bh).Ot=HtWhq+bq.\\begin{split}\\begin{aligned} \\mathbf{H}_t &= \\phi(\\mathbf{X}_t \\mathbf{W}_{xh} + \\mathbf{H}_{t-1} \\mathbf{W}_{hh} + \\mathbf{b}_h).\\\\ \\mathbf{O}_t &= \\mathbf{H}_t \\mathbf{W}_{hq} + \\mathbf{b}_q. \\end{aligned}\\end{split}HtOt=ϕ(XtWxh+Ht−1Whh+bh).=HtWhq+bq.
基于循环神经网络的字符级语言模型:输入序列和标签序列分别为“machin”和“achine”
困惑度(Perplexity):
1n∑t=1n−logP(xt∣xt−1,…,x1),exp(−1n∑t=1nlogP(xt∣xt−1,…,x1)).\\begin{split}\\begin{aligned} \\frac{1}{n} \\sum_{t=1}^n -\\log P(x_t \\mid x_{t-1}, \\ldots, x_1),\\\\ \\exp\\left(-\\frac{1}{n} \\sum_{t=1}^n \\log P(x_t \\mid x_{t-1}, \\ldots, x_1)\\right). \\end{aligned}\\end{split}n1t=1∑n−logP(xt∣xt−1,…,x1),exp(−n1t=1∑nlogP(xt∣xt−1,…,x1)).
梯度裁剪:
g←min(1,θ∥g∥)g.\\begin{split}\\begin{aligned} \\mathbf{g} \\leftarrow \\min\\left(1, \\frac{\\theta}{\\|\\mathbf{g}\\|}\\right) \\mathbf{g}. \\end{aligned}\\end{split}g←min(1,∥g∥θ)g.
门控循环单元(GRU)
GRU
Rt=σ(XtWxr+Ht−1Whr+br),Zt=σ(XtWxz+Ht−1Whz+bz),H~t=tanh(XtWxh+(Rt⊙Ht−1)Whh+bh),Ht=Zt⊙Ht−1+(1−Zt)⊙H~t.\\begin{split}\\begin{aligned} \\mathbf{R}_t &= \\sigma(\\mathbf{X}_t \\mathbf{W}_{xr} + \\mathbf{H}_{t-1} \\mathbf{W}_{hr} + \\mathbf{b}_r),\\\\ \\mathbf{Z}_t &= \\sigma(\\mathbf{X}_t \\mathbf{W}_{xz} + \\mathbf{H}_{t-1} \\mathbf{W}_{hz} + \\mathbf{b}_z),\\\\ \\tilde{\\mathbf{H}}_t &= \\tanh(\\mathbf{X}_t \\mathbf{W}_{xh} + \\left(\\mathbf{R}_t \\odot \\mathbf{H}_{t-1}\\right) \\mathbf{W}_{hh} + \\mathbf{b}_h),\\\\ \\mathbf{H}_t &= \\mathbf{Z}_t \\odot \\mathbf{H}_{t-1} + (1 - \\mathbf{Z}_t) \\odot \\tilde{\\mathbf{H}}_t. \\end{aligned}\\end{split}RtZtH~tHt=σ(XtWxr+Ht−1Whr+br),=σ(XtWxz+Ht−1Whz+bz),=tanh(XtWxh+(Rt⊙Ht−1)Whh+bh),=Zt⊙Ht−1+(1−Zt)⊙H~t.
长短期记忆网络(LSTM)
LSTM
It=σ(XtWxi+Ht−1Whi+bi),Ft=σ(XtWxf+Ht−1Whf+bf),Ot=σ(XtWxo+Ht−1Who+bo),Ct=tanh(XtWxc+Ht−1Whc+bc),C~t=tanh(XtWxc+Ht−1Whc+bc),Ht=Ot⊙tanh(Ct).\\begin{split}\\begin{aligned} \\mathbf{I}_t &= \\sigma(\\mathbf{X}_t \\mathbf{W}_{xi} + \\mathbf{H}_{t-1} \\mathbf{W}_{hi} + \\mathbf{b}_i),\\\\ \\mathbf{F}_t &= \\sigma(\\mathbf{X}_t \\mathbf{W}_{xf} + \\mathbf{H}_{t-1} \\mathbf{W}_{hf} + \\mathbf{b}_f),\\\\ \\mathbf{O}_t &= \\sigma(\\mathbf{X}_t \\mathbf{W}_{xo} + \\mathbf{H}_{t-1} \\mathbf{W}_{ho} + \\mathbf{b}_o), \\\\ \\mathbf{C}_t &= \\text{tanh}(\\mathbf{X}_t \\mathbf{W}_{xc} + \\mathbf{H}_{t-1} \\mathbf{W}_{hc} + \\mathbf{b}_c),\\\\ \\tilde{\\mathbf{C}}_t &= \\text{tanh}(\\mathbf{X}_t \\mathbf{W}_{xc} + \\mathbf{H}_{t-1} \\mathbf{W}_{hc} + \\mathbf{b}_c),\\\\ \\mathbf{H}_t &= \\mathbf{O}_t \\odot \\tanh(\\mathbf{C}_t). \\end{aligned}\\end{split}ItFtOtCtC~tHt=σ(XtWxi+Ht−1Whi+bi),=σ(XtWxf+Ht−1Whf+bf),=σ(XtWxo+Ht−1Who+bo),=tanh(XtWxc+Ht−1Whc+bc),=tanh(XtWxc+Ht−1Whc+bc),=Ot⊙tanh(Ct).
深层神经网洛
深度循环神经网络
Ht(l)=ϕl(Ht(l−1)Wxh(l)+Ht−1(l)Whh(l)+bh(l)),Ot=Ht(L)Whq+bq,\\begin{split}\\begin{aligned} \\mathbf{H}_t^{(l)} &= \\phi_l(\\mathbf{H}_t^{(l-1)} \\mathbf{W}_{xh}^{(l)} + \\mathbf{H}_{t-1}^{(l)} \\mathbf{W}_{hh}^{(l)} + \\mathbf{b}_h^{(l)}),\\\\ \\mathbf{O}_t &= \\mathbf{H}_t^{(L)} \\mathbf{W}_{hq} + \\mathbf{b}_q, \\end{aligned}\\end{split}Ht(l)Ot=ϕl(Ht(l−1)Wxh(l)+Ht−1(l)Whh(l)+bh(l)),=Ht(L)Whq+bq,
双向循环神经网络
双向循环神经网络架构
H→t=ϕ(XtWxh(f)+H→t−1Whh(f)+bh(f)),H←t=ϕ(XtWxh(b)+H←t+1Whh(b)+bh(b)),Ot=HtWhq+bq.\\begin{split}\\begin{aligned} \\overrightarrow{\\mathbf{H}}_t &= \\phi(\\mathbf{X}_t \\mathbf{W}_{xh}^{(f)} + \\overrightarrow{\\mathbf{H}}_{t-1} \\mathbf{W}_{hh}^{(f)} + \\mathbf{b}_h^{(f)}),\\\\ \\overleftarrow{\\mathbf{H}}_t &= \\phi(\\mathbf{X}_t \\mathbf{W}_{xh}^{(b)} + \\overleftarrow{\\mathbf{H}}_{t+1} \\mathbf{W}_{hh}^{(b)} + \\mathbf{b}_h^{(b)}),\\\\ \\mathbf{O}_t &= \\mathbf{H}_t \\mathbf{W}_{hq} + \\mathbf{b}_q. \\end{aligned}\\end{split}HtHtOt=ϕ(XtWxh(f)+Ht−1Whh(f)+bh(f)),=ϕ(XtWxh(b)+Ht+1Whh(b)+bh(b)),=HtWhq+bq.
推理有缺陷, 主要是特征提取
编码器和解码器
编码器-解码器架构
序列到序列学习(seq2seq)
使用循环神经网络编码器和循环神经网络解码器的序列到序列学习
循环神经网络编码器-解码器模型中的层
使用循环神经网络编码器-解码器逐词元地预测输出序列
模型评估:
exp(min(0,1−lenlabellenpred))∏n=1kpn1/2n,\\begin{split}\\begin{aligned} \\exp\\left(\\min\\left(0, 1 - \\frac{\\mathrm{len}_{\\text{label}}}{\\mathrm{len}_{\\text{pred}}}\\right)\\right) \\prod_{n=1}^k p_n^{1/2^n}, \\end{aligned}\\end{split}exp(min(0,1−lenpredlenlabel))n=1∏kpn1/2n,
束搜索
束搜索过程(束宽:2,输出序列的最大长度:3)
加入短句子惩罚项,防止总是选择短句子