• 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

      把遗忘门和传输门进行合并叫更新门,还把偏执省掉了。
      
  • 相关阅读:
    INSERT
    jQuery选择器
    工厂模式
    快乐的Linux命令行
    Linux常用命令与基本概念
    RAC 集群更换IP
    RMAN-03009 ORA-19504 ORA-27038
    Redhat 6.4_联网 yum 配置
    /dev/sda3: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
    nginx安装笔记
  • 原文地址:https://www.cnblogs.com/xujunkai/p/14322262.html
Copyright © 2020-2023  润新知