跳到主要内容

RNN 学习笔记

RNN 时间序列输入形式

自用—时间序列数据、RNN、LSTM 中输入形式的记录_

LSTM 结构

LSTM

GRU 结构

GRU

ConvLSTM

ConvLSTM

ConvLSTM 公式:

输入门:it=σ(Wxixt+Whiht1+Wcict1+bi)输入门:i_t =\sigma(W_{xi}x_t+W_{hi}h_{t-1}+W_{ci} \circ c_{t-1}+b_i)

遗忘门:ft=σ(Wxfxt+Whfht1+Wcfct1+bf)遗忘门:f_t=\sigma(W_{xf}x_t+W_{hf}h_{t-1}+W_{cf} \circ c_{t-1}+b_f) 内部记忆单元:ct=ftct1+ittanh(Wxcxt+Whcht1+bc)内部记忆单元:c_t=f_t \circ c_{t-1}+ i_t \circ tanh(W_{xc}x_t+W_{hc}h_{t-1}+b_c) 输出门:ot=σ(Wxoxt+Whoht1+Wcct+bo)输出门:o_t=\sigma(W_{xo}x_t+W_{ho}h_{t-1}+W_{c} \circ c_t +b_o) 隐藏层ht=ottanh(ct)隐藏层 h_t=o_t \circ tanh(c_t)

ConvGRU

GRU 摒弃了 LSTM 中的记忆单元,并将输入门和遗忘门结合成了更新门(update gate) 在不失精度的情况下,简化 ConvLSTM 的结构,加快训练的次数。 公式:

输入门:rt=σ(Wtxt+Utht1)输入门:r_t=\sigma(W_tx_t+U_th_{t-1}) 更新门:zt=σ(Wzxt+Uzht1)更新门:z_t=\sigma(W_zx_t+U_zh_{t-1}) 隐藏层候选值:h~t=tanh(Wxt+U(rtht1))隐藏层候选值:\widetilde{h}_t=tanh(Wx_t+U(r_t \circ h_{t-1})) 隐藏层:ht=(1zt)ht1+zth~t隐藏层:h_t =(1-z_t)\circ h_{t-1} + z_t \circ \widetilde{h}_t

z 为更新门,决定有多少迁移一层的状态要更新当前神经元中 h~\widetilde{h} 为隐含层候选值,但输出的隐含层值是有更新门 z 计算出来的