递归神经网络RNN——LSTM

  • 1、LSTM的产生原因及优点
  • 2、LSTM网络结构
  • 3、LSTM工作机制
  • 4、LSTM Attention 机制

关于LSTM模型,看懂这篇文章就OK了,不用再看别的了

1、LSTM的产生原因及优点

RNN模型中介绍了,由于长期依赖的问题,对于步长大的时刻求梯度,有一比分梯度的计算是类乘的形式,这样就会造成指数计算,从而造成梯度消失和梯度爆炸,所以LSTM和GRU模型被退出,原因是,LSTM和GRU模型他们采用了特殊的方式来进行"记忆"的存储,使得以前比较大的记忆不会像简单的RNN模型一样立刻被抹除掉,因此可以一定程度上克服梯度小时的问题

LSTM也是RNN的一种,大体结构一直,区别在于:

  • LSTM的记忆细胞是改造过的
  • 该记录的信息会一直传递,不该记录的信息会被截断掉

2、LSTM网络结构


注意:上边图形中的方块A并不是神经元。A是一个记忆细胞,里面有复杂的结构。

现在我们将”记忆细胞“展开:

对于普通的RNN我们只是简单的对上一层记忆细胞的输出乘一个参数矩阵作为下一层的一个输入,而LSTM的记忆细胞没有那么简单,这个图很重要,要会画,会写计算公式,我们来分析一下:

3、LSTM工作机制

1、LSTM怎么控制“细胞状态”:

  • LSTM通过gates(门)结构来去除或者增加“细胞状态”de信息。
  • 包含一个sigmoid神经网络层,和一个pointwist乘法操作。
  • Sigmoid输出一个0~1之间的概率值,描述每个部分有多少量可以通过,0表示“不允许任务变量通过”,1表示“运行所有变量通过”
  • LSTM中有三个“门”结构来控制细胞状态

2、要知道LSTM的里边都是有那些结构和操作:

  • 1、遗忘门

决定从细胞状态中丢弃什么信息,比如在与语言模型中,细胞状态可能包含了性别信息(他或者她),当我们看到新的代名词的时候,比如他的具体名字,可以考虑忘记旧数据

ft在乘Ct-1就起到了遗忘作用

  • 2、输入门(信息增加门)

决定什么信息可以增加到“信息状态”中去
Sigmoid层决定什么信息需要增加
tanh层,创建一个新的候选向量Ct
主要是为了状态更新做准备

经过第一个门和第二个门之后,可以确定信息的传递和增加,即可进行“细胞状态”的更新。

更新Ct-1为Ct
将旧状态与第一个门得到的ft相乘,丢失掉确定不要的信息
加上新的侯选值it x Ct得到最终更新后的“细胞状态”

  • 3、输出门

基于细胞状态得到输出
首先运行一个Sigmoid层,来确定细胞状态的那个部分将输出
用一个tanh处理记忆细胞状态得到一个-1~1之间的值,再将他和Sigmoid的输出值相乘,输出程序确定输出部分。

  • 4、神经网络层(神经元)

四个黄色部分有4个神经元,每个神经元有不同的参数W,是不一样的。

  • 5、激活函数

4个神经元中有5个激活函数,有Sigmoid和tanh,粉色的激活函数没参数W

  • 6、点扭操作

用于记忆状态和细胞状态的状态选择

  • 7、矢量传输
  • 8、连接拼接
  • 9、复制
  • 10、细胞状态C(记忆单元,图中上面的直线)

类似于传送带,直接在整个链上运行,只有一些少量的线性交互(点成,点加),信息在上面流保持不变很容易。

4、LSTM Attention 机制

核心思想:抑制不重要的信息,加强重要的信息
**输入输出信息都可以做,**下面我们举一个输出信息做的,在卷积模型中的SEnet,和CAMB上就是在输入上做的Attention

Attention机制就是一个注意力机制,他具体做的就是将输入在不同的层次上加上一个权重,可能是通道上,也可能是空间上,加权重的方式也有很多种,可能是做平均池化,也可能是做最大值池化然后将输出结果做全连接在加Sigmoid或者Softmax,将输入映射到0~1的值。

LSTA Attention的作用机制有:

  • 1、直接对每个输入进行权重计算,然后在加权求和
    对输入进行权重计算,此方法很简单,就是将输入做一个全连接,随后采用Softmax函数激活概率

假设输入是一句话:
我 在 北 京
经过:lstm/rnn
输出:
y1=1 y2=4 y3=5 y4=6
如果我用普通的不含有Attention的模型做分类任务,我就只看y4的值
如果我添加了Attention
1、计算权重:
分母一样的:e1 + e4 + e5 + e6
1时刻输出y1的权重:e1 /分母 = 0.2
2时刻输出y2的权重:e4 /分母 = 0.3
3时刻输出y3的权重:e5 /分母 = 0.1
4时刻输出y4的权重:e6 /分母 = 0.4
2、最终整句话的输出:
y = (1* 0.2) +( 4 * 0.3) + (5 * 0.1) + (6 * 0.4)
这就考虑每一时刻的输出值,不在只考虑最后一时刻的输出值了

  • 2、多层加Attention机制

第一层:最后一个时刻y1
第二层:最后一个时刻y2
第三层:最后一个时刻y3
然后对每一层的最后一个时刻的y做一个Attention,用来融合每一层的信息

  • 2、加入激活函数并求和
    第一种方法我们是计算权重之后计算输出值,这里我们计算权重之后再加一个tanh激活函数,然后求完权重进行了加和。

关于LSTM模型,看懂这篇文章就OK了,不用再看别的了

LSTM有很多变种,变种就是记忆细胞里边信息的传递机制发生改变,类比LSTM都能看得懂。
OK!!!!

递归神经网络RNN——LSTM相关推荐

  1. rnn 递归神经网络_递归神经网络rnn的简单解释

    rnn 递归神经网络 Recurrent neural network is a type of neural network used to deal specifically with seque ...

  2. 递归神经网络RNN网络 LSTM

    转自: https://blog.csdn.net/Jerr__y/article/details/61195257 @author: huangyongye 前言: 根据我本人学习 TensorFl ...

  3. 卷积神经网络基础:(8)递归神经网络RNN

    1.RNN网络由来 RNN:Recurrent Neural Network.递归神经网络只是在传统神经网络上进行一个改进而已. 正常流程是:输入---->隐层---->输出 (数据来了经 ...

  4. 递归神经网络RNN总结

    一.前述 传统的神经网络每个输入节点之间没有联系, RNN (对中间信息保留): 由图可知,比如第二个节点的输入不仅依赖于本身的输入U1,而且依赖上一个节点的输入W0,U0,同样第三个节点依赖于前两个 ...

  5. 深度学习~循环神经网络RNN, LSTM

    目录 1. 循环神经网络RNN 1.1 RNN出现背景 1.2 RNN概念 2. LSTM 2.1 LSTM出现背景 2.2 LSTM结构 参考 1. 循环神经网络RNN 1.1 RNN出现背景 pr ...

  6. lecture7-序列模型及递归神经网络RNN

    Hinton 第七课 .这里先说下RNN有recurrent neural network 和 recursive neural network两种,是不一样的,前者指的是一种人工神经网络,后者指的是 ...

  7. matlab递归神经网络RNN实现:桨距控制控制风力发电机组研究

    本文介绍了用于涡轮桨距角控制的永磁同步发电机(PMSG)和高性能在线训练递归神经网络(RNN)的混合模糊滑模损失最小化控制的设计.反向传播学习算法用于调节RNN控制器.PMSG速度使用低于额定速度的最 ...

  8. 递归神经网络RNN桨距控制控制风力发电机组

    本文介绍了用于涡轮桨距角控制的永磁同步发电机(PMSG)和高性能在线训练递归神经网络(RNN)的混合模糊滑模损失最小化控制的设计.反向传播学习算法用于调节RNN控制器.PMSG速度使用低于额定速度的最 ...

  9. 深度学习笔记——循环神经网络RNN/LSTM

    原文来自知乎专栏NLP进阶之路,作者韦伟. 以下文章是摘录了原文部分内容的学习笔记,侵删. 循环神经网络(Rerrent Neural Network) RNN是神经网络的一种,RNN对具有序列特性的 ...

最新文章

  1. 管理 Oracle Solaris ZFS 存储池网址
  2. 倒梁法matlab,在编制措施项目清单时,关于钢筋混凝土模版及支架费项目,应在清单中列明(    )...
  3. python selenium 元素定位_python3+selenium入门04-元素定位
  4. UA MATH571B 试验设计V 2K析因设计
  5. Matlab中 pdist 函数详解
  6. 给Vista系统加入一键还原功能
  7. ecplice中class.forname一直报错_A6v5.1升级A6v7.0报错:调用Java代码
  8. 飞鸽传书文件传输实现原理
  9. php文件名解析漏洞 nginx,nginx服务器解析漏洞(一)
  10. Java内部类实例测试及总结
  11. ZUC密码算法 - Python实现
  12. linux 安装 rtl8111e / r8168 驱动
  13. 实测分析免费建站软件有哪些?哪个最好?
  14. mysql codesmith_CodeSmith MySql
  15. TODA项目Part1—后端项目设置与连接数据库
  16. 小新pro13睡眠后无法唤醒_小新air12、air13、air13pro睡眠后无法唤醒的调试方法
  17. android 判断图片的格式的,android判断文件是否是图片文件的方法
  18. 如何使用Lumberyard制作特效[【1】——Overview
  19. 从go语言中找和*区别
  20. java设计模式之原型模式和建造者模式的写法(二)

热门文章

  1. ASP中的HTML在线编辑器的调用方法
  2. Android-App性能测试工具GT的使用方法
  3. 利用HTML5的本地存储制作的个性化导航页
  4. 小虎对《人民的名义》小说人物人名研究V0.1
  5. 《FFmpeg+SDL的视频播放器的制作》学习记录(4):SDL播放视频
  6. 基于单片机的蓝牙智能家居系统
  7. 30G 的redis 如何优化
  8. 摄像头网线连接到WiFi
  9. 知道平面任意抛物线的顶点和焦点坐标建立该抛物线方程
  10. 用python画一朵玫瑰给你