ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LSTM原理

2021-01-24 21:02:44  阅读:340  来源: 互联网

标签:输出 传送带 ht 货物 原理 LSTM 输入


LSTM原理

  • CNN卷积神经网络 应用:图像,视频

  • RNN 递归神经网络 应用:NLP

1RNN结构

  • one to one

    比如输入一张图片,它会给我们输出是猫还是狗
    
  • one to many

    比如输入一张图片,给出一些列图片描述
    
  • many to one

    比如文本分析,给出文本是积极还是消极的
    
  • many to many (输出 与 输入 不定长)

    比如 聊天机器人
    
  • many to many (输入 与 输出定长)

2.LSTM原理

  • LSTM是升级版的RNN,LSTM解决了RNN无法解决长期以来问题,输出前面很长一段序列有关的问题。LSTM相比RNN添加了三个门:遗忘门,输入门,输出门。

    遗忘门:决定从细胞状态中丢弃什么信息
    输入门:决定让多少新的信息加入细胞状态,这一步将输出细胞状态
    输出门:确定输出值,该输出值基于细胞状态 
    

  • 门的概念:

    我们认为细胞的流动是一个传送带,传送带进行线性交互,我们认为将一些货物放到传送带进行传动,而LSTM内部设计一种结构为门的结构,门可以去除或增加一些细胞状态,它决定哪些货物放到传送带上,哪些货物不放到传送带上。而这些货物可以认为是信息
    

    如上图,可以看到 σ 它是神经网络的激活层, 粉色X 为 点乘,我们通过 σ 输出0-1数值,它能描述哪些货物可以通过,然后通过点乘汇集到传送带上。
    
    上面三个门都是为了保护,控制细胞状态。为了保证哪些货物要放到传送带,哪些货物不放到传送带。在LSTM第一步中我们要确定往细胞丢弃什么信息,也就是确定哪些货物要放到传送带,哪些货物不放到传送带.
    
    
  • 遗忘门:

    • ​ 最开始是一个遗忘门,首先它会读取ht-1时刻向量值和xt时刻的输入,然后通过激活层 σ 输出一个0-1之间数值(激活层函数一般为ReLU),然后进行一个点乘,最终到传送带。1表示完全保留,0表示完全舍弃。

    • 如下公式:

      ft 为 σ网络激活层
      Wf 为 权重
      ht-1,xt 为 输入
      bf 为 偏执量
      
  • 输入门:

    • 这一步要确定什么样信息放到细胞状态中,什么样货物最终放到传送带进行传送。这里包含2个步骤:

      1.首先:通过ht-1时刻向量值和xt时刻的输入然后通过 σ 网络激活层 决定哪些信息要更新,最终放入传送带。
      2.然后:通过tanh层,通过tanh层生成一个向量,对输入端进行激活,对细胞进行更新将Ct-1更新为Ct
      
    • 如下公式:

      公式1:
      	it 输入
      	Wi 为 权重
      	ht-1,xt 为 输入
      	bi 为 偏执
      公式2:
      	Wc 为 权重
      	ht-1,xt 为 输入
      	Bc 为 偏执
      
    • 更新信息的确定详解:

      我们首先根据ft(之前经过遗忘门保留的部分)和Ct-1进行点乘,然后结合it(更新的部分)和Ct进行点乘,进入传送带进行传送,最终进行加权输出到Ct。
      

    • 如下公式

  • 输出门

    • 它决定我们最终输出是什么样子的,我们基于ht最终输出是什么样子输出。

      首先我们通过  σ 网络激活层 ,这里输入还是ht-1,xt得到称为ot,然后通过我们之前在传送带传送的货物Ct,经过tanh层 进行点乘 最终输出ht
      

    • 公式:

      ot 相当于激活层:权重, 输入,偏执得到结果
      ht 相当于最终输出
      

3.LSTM应用场景

  • 语音识别
  • 图像描述
  • 聊天机器人

4.LSTM模型训练过程

  • 从RNN到LSTM

    原始RNN只有一个状态h,LSTM加入了长期状态c,而加入长期状态c以后,可以实现长远的记忆。
    
  • LSTM循环展开

    LSTM循环展开后可以看成多个神经元,我们进行多次赋值,在传送带传送h和C(用于传送状态),也就是要传送的货物
    
  • LSTM核心思想----门

    遗忘门处理完 获取到了上一个时期的长期状态,当前时刻的即时状态(我们需要更新状态),我们通过输入门,将货物最终放到要传送带,最终输出门控制那些需要输出,那些不需要输出
    

5.LSTM训练算法

  • LSTM使用BPTT算法,它随时间反向传播,是一种具有长时记忆能力的神经网络模式,被广泛应用序列标注,因之前通常使用前向传播,会造成梯度消失或梯度爆炸问题。
梯度消失:随着时间增长,权重会越来越小,
梯度爆炸:权重相乘 数值会特别大
  • 而BPTT反向传播的激活函数Tanh术语双曲正切 -1 到1之间。有效解决上述问题。

  • BPTT反向传播推导公式

  • LSTM BPTT算法

  • 前向推导

    前向推导假如上一层节点i,j,k...等一些节点与本层的节点w有链接。那么节点w的值如何计算?
    	通过上一层的i,j,k等节点以及对应的连接权值(W)进行加权和运算,最终结果再加上一个偏执项,最后通过非线性函数(又称激活函数),若ReLu,sigmoid等函数,最后得到的结果就是本层节点w输出。
    	最后不断的通过这种方法一层层运算,得到输出层结果。
    
    • 如下公式:

      a2=σ(z2)=σ(a1∗W2+b2)

      其中,上标代表层数,星号表示卷积,b表示偏置项bias,σ \sigmaσ表示激活函数。
      
  • 反向推导

前向推导和反向推导

6.LSTM不足

  • 和RNN一样,只是缓解了梯度问题。序列长度过长,还是存在梯度问题。
  • LSTM计算相对费时,LSTM的cell里面都有4个全连接层(MLP)。

7.LSTM模型改进

  • Peephole LSTM

    在 LSTM 本体上加上一个Peephole connection,
    
  • GRU

    把遗忘门和传输门进行合并叫更新门,还把偏执省掉了。
    

标签:输出,传送带,ht,货物,原理,LSTM,输入
来源: https://www.cnblogs.com/xujunkai/p/14322262.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有