zoukankan      html  css  js  c++  java
  • RNN和LSTM的理解

    CNN模型比较适合计算机视觉,他只有相邻的层之间才会有联系,但是对于一句话来说,前后之间是有一定的联系的,比如英语中一些词的单复数和主语有很大的关系,我们在判断时候就需要看一下前面的词,但是CNN模型只能看到上一层,再往前是看不到的,因此在自然语言处理中,CNN模型是不合适的,而RNN模型的输出是受之前输入的值的影响的,因此他在判断一个词时就能够去结合前面输入的词进行判断,适合自然语言处理。

    RNN的结构以及计算公式如下图所示

    在计算每一次的输出状态时,都会考虑本次的输入以及之前的状态。但是在反向传播的过程中,进行求导时出现的公式是:

    公式中的累乘项有Ws这个参数,随着向前传播就会出现很多的Ws的n次方,这时就会出现梯度消失和梯度爆炸的问题。LSTM就是对RNN的进一步改进,解决了梯度消失的问题。

     LSTM模型的讲解见博客 https://blog.csdn.net/ch18328071580/article/details/96500490

    首先是模型的遗忘门,函数的参数是当前状态的输入和上一时刻的隐藏状态,激活函数是sigmoid函数,得到的输出代表遗忘上一层隐藏细胞状态的概率。之后是模型的输入门,他由两部分组成,第一个是sigmoid函数,另一个是tanh函数。然后去更新记忆细胞的状态,因为当前记忆细胞只记录了上一时刻的内容,我们要让记忆细胞进行更新,让他也记住这一时刻的内容。最后是输出门,由两部分组成,第一部分由上一时刻的隐藏状态和当前的输入经过sigmoid激活函数获得,第二部分由更新过的记忆细胞状态经过tanh激活函数得到。最后就是更新当前时刻预测输出。

    在LSTM中有记忆细胞,是对前面信息的一个存储,LSTM中记忆细胞的更新公式为:

     

    遗忘门主要是计算出遗忘上一层隐藏细胞状态的概率。记忆细胞将之前输入的信息与本次输入的信息进行了结合,最后使细胞的状态进行了更新。

    输出门计算公式:

    输出门最终输出了这一层的结果,他是本次记忆细胞和本次输入信息还有上一层输出的一个结合。

    LSTM的反向求导公式:

  • 相关阅读:
    jsfl学习
    反射的小例子
    Tsql 递归构造连续日期序列
    无法远程链接sqlserver的解决办法
    ubuntu下安装中文输入法ibus
    vs2008设置为这个背景色
    由于登陆失败而无法启动服务mssqlserver无法启动的问题
    配置solr
    笔记本无法检测到无线信号的终极解决方案
    win7 asp.net 配置iis
  • 原文地址:https://www.cnblogs.com/zhang12345/p/15308356.html
Copyright © 2011-2022 走看看