RNN,GRU,LSTM计算公式

1.循环神经网络(recurrent neural network,简称RNN)

RNN
假设 X t ∈ R n × d X_t\in R^{n\times d} XtRn×d是时间步 t t t的小批量输入, H t ∈ R n × h H_t\in 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_tW_{xh}+H_{t-1}W_{hh}+b_h) Ht=ϕ(XtWxh+Ht1Whh+bh)
其中, W x h ∈ R d × h , W h h ∈ R h × h , b h ∈ R 1 × h W_{xh}\in R^{d\times h},W_{hh}\in R^{h\times h},b_h\in R^{1\times h} WxhRd×h,WhhRh×h,bhR1×h ϕ \phi ϕ函数时非线性激活函数。
在时间步 t t t,输出层的输出为:
Y t = H t W h q + b q Y_t=H_tW_{hq}+b_q Yt=HtWhq+bq
其中, W h q ∈ R h × q , b q ∈ R 1 × q W_{hq}\in R^{h\times q},b_q\in R^{1\times q} WhqRh×q,bqR1×q Y t Y_t Yt的大小时 n × q n\times q n×q

2.(Gated Recurrent Unit,简称GRU)GRU

假设 X t ∈ R n × d X_t\in R^{n\times d} XtRn×d是时间步 t t t的小批量输入, H t ∈ R n × h H_t\in R^{n\times h} HtRn×h是该时间步的隐藏变量,则
R t = σ ( X t W x r + H t − 1 W h r + b r ) R_t=\sigma(X_tW_{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=\sigma(X_tW_{xz}+H_{t-1}W_{hz}+b_z) Zt=σ(XtWxz+Ht1Whz+bz)
H t ~ = t a n h ( X t W x h + ( R t ⊙ H t − 1 ) W h h + b h ) \widetilde{H_t}=tanh(X_tW_{xh}+(R_t\odot H_{t-1})W_{hh}+b_h) Ht =tanh(XtWxh+(RtHt1)Whh+bh)
H t = Z t ⊙ H t − 1 + ( 1 − Z t ) ⊙ H t ~ H_t=Z_t\odot H_{t-1}+(1-Z_t)\odot \widetilde{H_t} Ht=ZtHt1+(1Zt)Ht
在时间步 t t t,输出层的输出为:
Y t = H t W h q + b q Y_t=H_tW_{hq}+b_q Yt=HtWhq+bq
其中, W x r , W x z , W x h W_{xr},W_{xz},W_{xh} Wxr,Wxz,Wxh的大小都是 d × h d\times h d×h W h r , W h z , W h h W_{hr},W_{hz},W_{hh} Whr,Whz,Whh的大小都是 h × h h\times h h×h W h q W_{hq} Whq的大小为 h × q h\times q h×q b r , b z , b h b_r,b_z,b_h br,bz,bh的大小都是 1 × h 1\times h 1×h b q b_q bq的大小为 1 × q 1\times q 1×q,它们与前面的矩阵相加时会用到广播机制。且这些参数的下标只是一个便于记忆的标记而已,只起到区分变量的作用,没有其他作用,将其换为 W 1 , W 2 , W 3 , W 4 , W 5 , W 6 , W 7 , b 1 , b 2 , b 3 , b 4 W_1,W_2,W_3,W_4,W_5,W_6,W_7,b_1,b_2,b_3,b_4 W1,W2,W3,W4,W5,W6,W7,b1,b2,b3,b4也未尝不可。 R t , Z t , H t ~ R_t,Z_t,\widetilde{H_t} Rt,Zt,Ht 的大小是 n × h n\times h n×h Y t Y_t Yt的大小时 n × q n\times q n×q

3.长短期记忆(Long Short-term Memory,简称LSTM)

LSTM
假设 X t ∈ R n × d X_t\in R^{n\times d} XtRn×d是时间步 t t t的小批量输入, H t ∈ R n × h H_t\in R^{n\times h} HtRn×h是该时间步的隐藏变量,则
I t = σ ( X t W x i + H t − 1 W h i + b i ) F t = σ ( X t W x f + H t − 1 W h f + b f ) O t = σ ( X t W x o + H t − 1 W h o + b o ) C ~ t = t a n h ( X t W x c + H t − 1 W h c + b c ) C t = F t ⊙ C t − 1 + I t ⊙ C ~ t H t = O t ⊙ t a n h ( C t ) I_t = σ(X_tW_{xi} + H_{t−1}W_{hi} + b_i) \\ F_t = σ(X_tW_{xf} + H_{t−1}W_{hf} + b_f)\\ O_t = σ(X_tW_{xo} + H_{t−1}W_{ho} + b_o)\\ \widetilde{C}_t = tanh(X_tW_{xc} + H_{t−1}W_{hc} + b_c)\\ C_t = F_t ⊙C_{t−1} + I_t ⊙\widetilde{C}_t\\ H_t = O_t⊙tanh(C_t) It=σ(XtWxi+Ht1Whi+bi)Ft=σ(XtWxf+Ht1Whf+bf)Ot=σ(XtWxo+Ht1Who+bo)C t=tanh(XtWxc+Ht1Whc+bc)Ct=FtCt1+ItC tHt=Ottanh(Ct)
在时间步 t t t,输出层的输出为:
Y t = H t W h q + b q Y_t=H_tW_{hq}+b_q Yt=HtWhq+bq
其中, W x i , W x f , W x o , W x c W_{xi},W_{xf},W_{xo},W_{xc} Wxi,Wxf,Wxo,Wxc的大小是 d × h d\times h d×h W h i , W h f , W h o , W h c W_{hi},W_{hf},W_{ho},W_{hc} Whi,Whf,Who,Whc的大小是 h × h h\times h h×h W h q W_{hq} Whq的大小为 h × q h\times q h×q b q b_q bq的大小为 1 × q 1\times q 1×q b i , b f , b o , b c b_i,b_f,b_o,b_c bi,bf,bo,bc的大小是 1 × h 1\times h 1×h,它与前面的加号加的时候会用到广播机制。同样,这些参数的下标也只是便于记忆的标记而已,只起到区分变量的作用,没有其他作用。 I t , F t , O t , C ~ , C t I_t,F_t,O_t,\widetilde{C},C_t It,Ft,Ot,C ,Ct的大小是 n × h n\times h n×h Y t Y_t Yt的大小是 n × q n\times q n×q

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值