LSTM与ConvLSTM

LSTM论文链接:LSTM
Conv论文链接:ConvLSTM

LSTM

RNN网络的每个细胞单元在时间轴的维度上,向下一时刻的RNN细胞单元共享权重,来实现处理时间维度的信息,同时RNN网络对短期数据显得较为敏感,但是对长期数据显得疲惫,LSTM是RNN 网络的一种变体,为了解决长期记忆的问题。


LSTM架构背后的中心思想是一个可以随时间保持的记忆细胞 C t C_t Ct),以及调节细胞内外信息流的非线性门控单元(输入门,输出门,遗忘门)。记忆细胞 C t C_t Ct本质上充当了状态信息的累加器。同时采用多个具有参数的控制门对记忆细胞进行访问、写入和清除。

遗忘门

f t = σ ( W f t [ h t − 1 x t ] + b f ) f_t=\sigma(W_ft\begin{bmatrix}h_{t-1}\\x_t\end{bmatrix}+b_f) ft=σ(Wft[ht1xt]+bf)
上一时刻的隐藏状态信息 h t − 1 h_{t-1} ht1与本时刻的数据 x t x_t xt拼接,共同输入到Sigmoid函数,得到的输出结果介于0~1之间,用于判断过去信息是否重要,接近0表示信息不重要可以忘记,接近1表示信息很重要需要记住,最后得到的值会与前一时刻的记忆细胞 C t − 1 C_{t-1} Ct1做乘积运算,用来限制前面的记忆对后面的影响。

输入门
i t = σ ( W t [ h t − 1 x t ] + b i i_t = \sigma(W_t\begin{bmatrix}h_{t-1}\\x_t\end{bmatrix}+b_i it=σ(Wt[ht1xt]+bi
c t ^ = t a n h ( W C t [ h t − 1 x t ] + b c ) \hat{c_t} = tanh(W_Ct\begin{bmatrix}h_{t-1}\\x_t\end{bmatrix}+b_c) ct^=tanh(WCt[ht1xt]+bc)
c t = f t ⊙ c t − 1 + i t ⊙ c t ^ c_t = f_t\odot c_{t-1}+i_t\odot \hat{c_t} ct=ftct1+itct^

i t i_t it与遗忘门的结构几乎一致,产生一个0~1的数值,作为输入重要性因子 C t ^ \hat{C_t} Ct^的输入也是由 h t − 1 , x t h_{t-1},x_t ht1,xt组成,通过tanh激活函数,可以使数据关于y轴对称,起到了数据中心化的效果,加快了数据的收敛,与输入重要性因子相乘用于判断输入信息是否重要,如果重要则该信息可以用于更新记忆细胞

输出门
o t = σ ( W o [ h t − 1 x t ] + b o ) o_t=\sigma(W_o\begin{bmatrix}h_{t-1}\\x_t\end{bmatrix}+b_o) ot=σ(Wo[ht1xt]+bo)
h t = o t ⊙ t a n h ( c n ) h_t = o_t\odot tanh(c_n) ht=ottanh(cn)

o t o_t ot用来衡量输出的重要性,与经过tanh激活函数的该层记忆细胞 C t C_t Ct相乘后,作为本层的输出 y t y_t yt,同时也作为下一层的隐层函数 h t h_t ht

因此遗忘门,输入门,输出门,都是作为非线性激活函数用来衡量细胞内外信息的重要性.三类激活函数具有三个不同的矩阵,我们在训练模型的时候就是为了训练矩阵的数值.在遗忘门中,它决定了 C t − 1 C_{t-1} Ct1是否应该忘记,在输入门中它决定了 C t ^ \hat{C_t} Ct^是否需要加入记忆细胞中用于记忆,在输出门中,它决定了更新的细胞有多重要作用到下一个隐藏层中。

ConvLSTM

FC-LSTM可以看作是LSTM的多变量版本,其中输入、单元输出和状态都是一维向量,尽管它在处理时序信息中十分有效,但是对于空间信息而言存在较多的冗余信息。为了解决这个问题,我们提出了FC - LSTM的扩展,在输入到状态状态到状态的转换中都具有卷积结构。
在这里插入图片描述
如图1所示,我们可以将输入和状态信息,想象成站在空间网格上的向量,此时特征信息从2D图像格式,转变为3D tensor格式。与FC-LSTM不同,ConvLSTM中所有的输入信息、隐藏层、输出信息、门控信息都是3D向量形式。ConvLSTM将LSTM具有的矩阵计算转变成了卷积计算,当前网格中具体细胞信息由上一时刻细胞周围信息和此时的输入计算而来。公式如下:

i t = σ ( W x i ∗ X t + W h i ∗ H t − 1 + W c i ∘ C t − 1 + b i i_t = \sigma(W_{xi}\ast\mathcal{X_{t}}+W_{hi}\ast\mathcal{H_{t-1}}+W_{ci}\circ \mathcal{C_{t-1}}+b_i it=σ(WxiXt+WhiHt1+WciCt1+bi
f t = σ ( W x f ∗ X t + W h f ∗ H t − 1 + W c f ∘ C t − 1 + b f ) f_t=\sigma(W_{xf}\ast\mathcal{X_{t}}+W_{hf}\ast\mathcal{H_{t-1}}+W_{cf}\circ \mathcal{C_{t-1}}+b_f) ft=σ(WxfXt+WhfHt1+WcfCt1+bf)

C t = f t ∘ C t − 1 + i t ∘ t a n h ( W x c ∗ X t + W h c ∗ H t − 1 + b c ) \mathcal{C_t} = f_t\circ C_{t-1}+i_t\circ tanh(W_{xc}\ast\mathcal{X_{t}}+W_{hc}\ast\mathcal{H_{t-1}}+b_c) Ct=ftCt1+ittanh(WxcXt+WhcHt1+bc)
o t = σ ( W x o ∗ X t + W h o ∗ H t − 1 + W c o ∘ C t − 1 + b o ) o_t=\sigma(W_{xo}\ast\mathcal{X_{t}}+W_{ho}\ast\mathcal{H_{t-1}}+W_{co}\circ \mathcal{C_{t-1}}+b_o) ot=σ(WxoXt+WhoHt1+WcoCt1+bo)
H t = o t ∘ t a n h ( C t ) \mathcal{H_t} = o_t\circ tanh(\mathcal{C_t}) Ht=ottanh(Ct)

其中 ∗ \ast 代表卷积, ∘ \circ 代表Hadamard积(相同位置上对应元素的内积)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值