美文网首页
RNN学习笔记(二):LSTM

RNN学习笔记(二):LSTM

作者: 南国_ | 来源:发表于2021-02-25 23:37 被阅读0次
1.LSTM概述

LSTM(Long Short Term Memory,长短时记忆),是RNN的一种改进网络。普通RNN在解决长时间依赖问题时,会存在信息丢失(梯度消失or梯度爆炸)等问题,而LSTM为解决这个问题应运而生。

2.LSTM与RNN的区别

 LSTM与RNN的网络结构大体一样,只是每个隐状态内部存在差异,具体区别如下:

  • LSTM的"记忆细胞Cell"是改造过的
  • 想记录的信息会一直传递,不想记录的信息会被忘掉
3.LSTM的核心思想

 LSTM 的关键就是细胞状态,细胞状态类似于传送带,直接在整个链上运行,由于细胞状态链上只有一些少量的线性交互,所以信息在上面流传会很容易保持不变。
 细胞状态会在如图,水平线上方贯穿运行。

细胞状态传送.png
4.LSTM网络结构

 LSTM是通过门结构为细胞状态删除或者增加信息的,LSTM隐状态中共有三个门,分别是:忘记门、更新门、输出门。


LSTM中的隐状态.png

1)忘记门:
 将细胞状态中的信息选择性地遗忘 ,决定从"细胞状态"中丢弃什么信息。
 忘记门会读取输入信息\left [ h_{t-1},x_{t} \right ],通过sigmoid转换后,会输出一个0到1之间的数值,用来控制上一时刻细胞状态C_{t-1}中需要删除or保留的信息。1表示”完全保留“,0表示”完全舍弃“。
f^{\left ( t \right )} = \sigma \left ( w_{f}\cdot h_{t-1}+u_{f}\cdot x_{t}+ b_{f}\right )

忘记门.png

2)信息更新门(输入门):
 将新的信息选择性的记录到细胞状态中 ,决定放什么新信息到"细胞状态"中。
 更新门中包含两个部分:
  Sigmoid层称 ‘输入门层’ ,决定什么值需要更新;(即增加想要特征信息的权重)
  Tanh层创建一个新的候选向量\widetilde{C_{t}},这个向量会被加入到细胞状态中。(即创建一个需要增加到细胞状态中的特征信息向量)
i^{\left ( t \right )} = \sigma \left ( w_{i}\cdot h_{t-1}+u_{i}\cdot x_{t}+ b_{i}\right ) \widetilde{C}^{\left ( t \right )} = tanh \left ( w_{C}\cdot h_{t-1}+u_{C}\cdot x_{t}+ b_{C}\right )

更新门.png

\color{red}{经过第一个和第二个门后:}就可以确定传递信息的删除和增加,即进行细胞状态的更新了。

  • 更新C_{t-1}C_{t}
  • 将旧状态与f_{t}相乘,丢掉不想要的信息
  • 加上新的候选信息i_{t}*C_{t}
  • 得到最终更新后的细胞状态
    C^{\left ( t \right )} = f^{\left ( t \right )}\cdot C^{\left ( t-1 \right )}+i^{\left ( t \right )}\cdot \widetilde{C}^{\left ( t \right )}
    细胞状态更新.png

3)输出门:
基于更新后的”细胞状态“得到输出。

  • 首先运行一个sigmoid层来确定细胞状态的那个部分将输出
  • 使用tanh处理细胞状态得到一个-1到1之间的值,再将它和sigmoid门的输出相乘,输出 程序确定输出的部分。

o^{\left ( t \right )} = \sigma \left ( w_{o}\cdot h_{t-1}+u_{o}\cdot x_{t}+ b_{o}\right ) h_{t} = o^{\left ( t \right )}*tanh\left ( C^{\left ( t \right )}\right )

输出门.png

5. LSTM的应用场景

  • 自然语言处理:语言模型与文本生成
  • 机器翻译
  • 语音识别
  • 看图说话
  • 代码生成
LSTM应用场景.png

6.GRU

1)GRU结构

  • 只有两个门:更新门和重置门。
  • 将忘记门和输入门合并为一个更新门
  • 同时合并了数据单元状态和隐藏状态
  • 结构比LSTM更加简单,但效果却与LSTM差不多
GRU细胞结构.png

2)GRU公式
\begin{align*}\label{2} & u^{\left ( t \right )} = \sigma \left ( w_{u}\cdot h_{ t-1}+u_{u}\cdot x_{t }+b_{u} \right )\\ & r^{\left ( t \right )} = \sigma \left ( w_{r}\cdot h_{ t-1}+u_{r}\cdot x_{t}+b_{r} \right )\\\\ & \widetilde{h^{\left ( t \right )}} = tanh\left ( w_{h} \cdot \left ( r^{\left ( t \right )}\cdot h_{t-1} \right )+u_{h}\cdot x_{t}+b_{h}\right )\\ & h_{t} = \left ( 1-u^{\left ( t \right )} \right )\cdot h_{t-1}+u^{\left ( t \right )}\cdot \widetilde{h^{\left ( t \right )}} \end{align*}

\color{red}{注释:}
u^{\left ( t \right )}:更新门
r^{\left ( t \right )}:重置门
r^{\left ( t \right )}:决定从之前细胞状态中保留(抽取)多少信息
\widetilde{h^{\left ( t \right )}}:决定接受多少的新信息放入当前细胞状态h_{t}
h_{t}:当前时刻的细胞状态。百分之多少的内容从旧的信息中抽取,百分之多少的内容从新的信息中抽取。

相关文章

网友评论

      本文标题:RNN学习笔记(二):LSTM

      本文链接:https://www.haomeiwen.com/subject/qqoyfltx.html