IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 递归神经网络RNN——LSTM -> 正文阅读

[人工智能]递归神经网络RNN——LSTM

作者:recommend-item-box-tow


关于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!!!!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:28:32  更:2022-03-08 22:29:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 16:35:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码