> 文章列表 > 循环神经网络简述-快速复习

循环神经网络简述-快速复习

循环神经网络简述-快速复习

循环神经网络



具有隐状态的循环神经网络

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+Ht1Whh+bh).=HtWhq+bq.


基于循环神经网络的字符级语言模型:输入序列和标签序列分别为“machin”和“achine”

困惑度(Perplexity):
1n∑t=1n−log⁡P(xt∣xt−1,…,x1),exp⁡(−1n∑t=1nlog⁡P(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=1nlogP(xtxt1,,x1),exp(n1t=1nlogP(xtxt1,,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}gmin(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+Ht1Whr+br),=σ(XtWxz+Ht1Whz+bz),=tanh(XtWxh+(RtHt1)Whh+bh),=ZtHt1+(1Zt)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+Ht1Whi+bi),=σ(XtWxf+Ht1Whf+bf),=σ(XtWxo+Ht1Who+bo),=tanh(XtWxc+Ht1Whc+bc),=tanh(XtWxc+Ht1Whc+bc),=Ottanh(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(l1)Wxh(l)+Ht1(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)+Ht1Whh(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,1lenpredlenlabel))n=1kpn1/2n,

束搜索



束搜索过程(束宽:2,输出序列的最大长度:3)

加入短句子惩罚项,防止总是选择短句子