2.LSTM

LSTM(long short-Term Memory,长短时记忆模型)

一、LSTM简述

    LSTM是基于RNN进行修改,属于RNN的一种变形,为了避免RNN中出现的梯度消失问题。对比RNN,LSTM中多了一条贯穿所有状态的记忆状态,所有的遗忘门、记忆们、输出门也都结合记忆状态进行操作。

二、LSTM的具体结构

    其中LSTM内部结构由1个记忆状态(细胞状态)和3个控制门控神经元组成(输入门、输出门、遗忘门)

三、结构模块解析

    3.1、遗忘门(forget gate):以一定概率控制遗忘掉多少上一层的记忆状态(隐藏细胞)。具体结构如下图:

    其中ht-1表示上一层的隐藏状态,xt表示该层的特征输入,再通过一个激活函数sigmoid,得到遗忘门的输出ft,由于ft的值是在0-1之间,这里就代表了遗忘掉多少上一层的记忆状态。用数学公式表示为:
    f(t)=σ(Wf · h(t−1) + Uf · x(t) + bf)
    其中Wf, Uf, bf为线性关系的系数和偏差。σ为sigmoid激活函数。

    3.2、输入门(input data):负责处理当前位置的输入,决定有多少新的输入信息需要存入到记忆状态。

    从图中可以看到输入门由两部分组成,第一部分使用了sigmoid激活函数,输出为i(t),第二部分使用了tanh激活函数,输出为a(t), 两者的结果后面会相乘再去更新细胞状态。用数学表达式即为:
     i(t) = σ(Wi · h(t−1) + Ui · x(t) + bi)
     a(t) = tanh(Wa · h(t−1) + Ua · x(t) + ba)
    其中Wi,Ui,bi,Wa,Ua,ba,为线性关系的系数和偏差。σ为sigmoid激活函数。

    3.3、记忆状态的更新:选择性的移除前一时刻的旧信息(记忆状态)并且选择性的添加当前时刻的新信息

    细胞状态C(t)由两部分组成,第一部分是C(t−1)和遗忘门输出f(t)的乘积,第二部分是输入门的i(t)和a(t)的乘积,即:
    C(t) = C(t−1) ⊙ f(t) + i(t) ⊙ a(t)
    其中,⊙为Hadamard积。

     3.4、LSTM输出门:决定当前时刻多少记忆状态用于输出。即决定当前状态的输出以及下一状态隐藏状态的输入。

     当前状态的输出以及该状态隐藏状态的输出ht:

     o(t) = σ(Wo · h(t−1) + Uo · x(t) + bo)
     h(t) = o(t) ⊙ tanh(C(t))

四、LSTM的前向传播
     LSTM模型有一个隐藏状态h(t),以及记忆状态C(t),模型参数几乎是RNN的4倍,因为现在多了Wf,Uf,bf,Wa,Ua,ba,Wi,Ui,bi,Wo,Uo,bo这些参数。
     1)更新遗忘门输出:
          f(t) = σ(Wf · h(t−1) + Uf · x(t) + bf)
     2)更新输入门两部分输出:
         i(t) = σ(Wi · h(t−1) + Ui · x(t) + bi)
     a(t) = tanh(Wa · h(t−1) + Ua · x(t) + ba)
     3)更新记忆状态:
          C(t) = C(t−1) ⊙ f(t) + i(t) ⊙ a(t)
     4)更新输出门输出:
          o(t) = σ(Wo · h(t−1) + Uo · x(t)+bo)
          h(t) = o(t) ⊙ tanh(C(t))
     5)更新当前序列索引预测输出:
          y^(t)=σ(V · h(t)+c)

五、参考学习链接
     https://www.cnblogs.com/pinard/p/6519110.html,其中反向传播也可以参考该链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值