码迷,mamicode.com
首页 > 其他好文 > 详细

LSTM原理

时间:2021-01-26 12:10:00      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:targe   target   多个   一个   记忆   连接   识别   开始   神经网络   

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

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

LSTM原理

标签:targe   target   多个   一个   记忆   连接   识别   开始   神经网络   

原文地址:https://www.cnblogs.com/xujunkai/p/14322262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!