循环神经网络知识要点笔记

循环神经网络
基于当前的输入与过去的输入序列,预测序列的下一个字符。循环神经网络引入一个隐藏变量 H H H,用 H t H_{t} Ht表示 H H H在时间步 t t t的值。 H t H_{t} Ht的计算基于 X t X_{t} Xt H t − 1 H_{t-1} Ht1,可以认为 H t H_{t} Ht记录了到当前字符为止的序列信息,利用 H t H_{t} Ht对序列的下一个字符进行预测。
假设 X t ∈ R n × d X_{t}\in \mathbb{R}^{n\times d } XtRn×d是时间步长 t t t的小批量输入, H t ∈ R n × h H_{t}\in \mathbb{R}^{n\times h } HtRn×h是该时间步的隐藏变量,则:
H t = ϕ ( X t W x h + H t − 1 W h h + b h ) H_{t}=\phi(X_{t}W_{xh} +H_{t-1}W_{hh}+b_{h}) Ht=ϕ(XtWxh+Ht1Whh+bh)
其中 W x h ∈ R d × h W_{xh}\in \mathbb{R}^{d\times h} WxhRd×h W h h ∈ R h × h W_{hh}\in \mathbb{R}^{h\times h} WhhRh×h b h ∈ R 1 × h b_{h} \in \mathbb{R}^{1\times h} bhR1×h ϕ \phi ϕ函数是非线性激活函数。由于引入了 H t − 1 W h h H_{t-1}W_{hh} Ht1Whh H t H_{t} Ht能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。由于 H t H_{t} Ht的计算基于 H t − 1 H_{t-1} Ht1,上式的计算是循环的,使用循环计算的网络即循环神经网络(recurrent neural network)。
在时间步 t t t,输出层的输出为:
O t = H t W h q + b q O_{t}=H_{t}W_{hq} +b_{q} Ot=HtWhq+bq
其中 W h q ∈ R h × q W_{hq}\in \mathbb{R}^{h\times q} WhqRh×q, b q ∈ R 1 × q b_{q}\in \mathbb{R}^{1\times q} bqR1×q
在这里插入图片描述

GRU
RNN存在的问题:梯度较容易出现衰减或爆炸(BPTT)
⻔控循环神经⽹络:捕捉时间序列中时间步距离较⼤的依赖关系
RNN:
在这里插入图片描述
H t = ϕ ( X t W x h + H t − 1 W h h + b h ) H_{t}=\phi(X_{t}W_{xh} +H_{t-1}W_{hh}+b_{h}) Ht=ϕ(XtWxh+Ht1Whh+bh)
GRU:
在这里插入图片描述
R t = ϕ ( X t W x r + H t − 1 W h r + b r ) R_{t}=\phi(X_{t}W_{xr} +H_{t-1}W_{hr}+b_{r}) Rt=ϕ(XtWxr+Ht1Whr+br)
Z t = ϕ ( X t W x z + H t − 1 W h z + b z ) Z_{t}=\phi(X_{t}W_{xz} +H_{t-1}W_{hz}+b_{z}) Zt=ϕ(XtWxz+Ht1Whz+bz)
H t ~ = t a n h ( X t W x h + ( R h ⊙ H t − 1 ) W h h + b h ) \tilde{H_{t}}=tanh(X_{t}W_{xh} +(R_{h}\odot H_{t-1})W_{hh}+b_{h}) Ht~=tanh(XtWxh+(RhHt1)Whh+bh)
H t = Z t ⊙ H t − 1 + ( 1 − Z t ) H t − 1 ⊙ H t ~ H_{t}=Z_{t}\odot H_{t-1} +(1-Z_{t})H_{t-1}\odot \tilde{H_{t}} Ht=ZtHt1+(1Zt)Ht1Ht~
• 重置⻔有助于捕捉时间序列⾥短期的依赖关系;
• 更新⻔有助于捕捉时间序列⾥⻓期的依赖关系。

LSTM
长短期记忆long short-term memory :
遗忘门:控制上一时间步的记忆细胞 输入门:控制当前时间步的输入
输出门:控制从记忆细胞到隐藏状态
记忆细胞:⼀种特殊的隐藏状态的信息的流动
在这里插入图片描述
I t = ϕ ( X t W x i + H t − 1 W h i + b i ) I_{t}=\phi(X_{t}W_{xi} +H_{t-1}W_{hi}+b_{i}) It=ϕ(XtWxi+Ht1Whi+bi)
F t = ϕ ( X t W x f + H t − 1 W h f + b f ) F_{t}=\phi(X_{t}W_{xf} +H_{t-1}W_{hf}+b_{f}) Ft=ϕ(XtWxf+Ht1Whf+bf)
O t = ϕ ( X t W x o + H t − 1 W h o + b o ) O_{t}=\phi(X_{t}W_{xo} +H_{t-1}W_{ho}+b_{o}) Ot=ϕ(XtWxo+Ht1Who+bo)
C t ~ = t a n h ( X t W x c + H t − 1 W h c + b c ) \tilde{C_{t}}=tanh(X_{t}W_{xc} +H_{t-1}W_{hc}+b_{c}) Ct~=tanh(XtWxc+Ht1Whc+bc)
C t = F t ⊙ C t − 1 + I t ⊙ C t ~ C_{t}=F_{t}\odot C_{t-1} +I_{t}\odot \tilde{C_{t}} Ct=FtCt1+ItCt~
H t = O t ⊙ t a n h ( C t ) H_{t}=O_{t}\odot tanh(C_{t}) Ht=Ottanh(Ct)

参考资料:
https://www.kesci.com/org/boyuai/project/5e4291f05f2816002ce8f9a0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值