资料介绍
长短时记忆网络
循环神经网络很难训练的原因导致它的实际应用中很处理长距离的依赖。本文将介绍改进后的循环神经网络:长短时记忆网络(Long Short Term Memory Network, LSTM),
原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么如果我们再增加一个状态,即c,让它来保存长期的状态,这就是长短时记忆网络。
新增加的状态c,称为单元状态。我们把上图按照时间维度展开:
可以看到在 t 时刻,LSTM的输入有三个:当前时刻网络的输出值 xt 、上一时刻LSTM的输出值 ht−1、以及上一时刻的单元状态 ct−1;LSTM的输出有两个:当前时刻LSTM输出值 ht 、和当前时刻的单元状态 xt 。注意 x、h、c 都是向量。
LSTM的关键,就是怎样控制长期状态c。在这里,LSTM的思路是使用三个控制开关。第一个开关,负责控制继续保存长期状态c;第二个开关,负责控制把即时状态输入到长期状态c;第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。三个开关的作用如下图所示:
接下来我们要描述一下,输出h和单元状态c的具体计算方法。
长短时记忆网络的前向计算
我们引入“门(gate)”的概念。门实际上就是一层全连接层,它的输入是一个向量,输出是一个0到1之间的实数向量。假设W是门的权重向量,b是偏置项,那么门可以表示为:
门的输出是0到1之间的实数向量,用门向量的输出向量按元素乘以我们需要控制的那个向量,当门输出为0时,任何向量与之相乘都会得到0向量,这就相当于啥都不能通过;输出为1时,任何向量与之相乘都不会有任何改变,这就相当于啥都可以通过。因为σ(也就是sigmoid函数)的值域是(0,1),所以门的状态都是半开半闭的。
LSTM用两个门来控制单元状态 c 的内容,一个是遗忘门,它决定了上一时刻的单元状态 t−1 有多少保留到当前时刻 ct ;另外一个是输出门,他决定了当前时刻网络的输入 xt 有多少保存到单元状态 ct 。LSTM用输出门来控制单元状态 ct 有多少输出到LSTM的当前输出值 ht 。LSTM用输出门来控制单元状态 ct 有多少输出到LSTM的当前输出值ht。
遗忘门的表达式是:
上式中,Wf 是遗忘门的权重矩阵,ht−1 , xt 表示把两个向量连接成一个更长的向量,bf 是遗忘门的偏置项,σ是sigmoid函数。如果输入的维度是dx,隐藏层的维度是 dh,单元状态的维度是 dc( d_c = d_h ),则遗忘门的权重矩阵 Wf维度是 dcx(dh + dx ) 。事实上,权重矩阵 Wf 都是两个矩阵拼接而成的:一个是Wfh,它对应着输入项 ht−1 ,其维度为 dcxdh;一个是Wfx,它对应着输入项 xt ,其维度为dcxdx。Wf 可以写为:
下图显示了遗忘门的计算:
接下来看看输入门:
上式中,Wi 是输入门的权重矩阵,$b_i$是输入门的偏置项。下图表示了输入门的计算:
接下来,我们计算用于描述当前输入的单元状态,它是根据上一次的输出和本次输入来计算的:
下图是的计算:
现在,我们计算当前时刻的单元状态 ct。它是由上一次的单元状态 ct−1 按元素乘以遗忘门 ft ,再用当前输入的单元状态按元素乘以输入门 it ,再将两个积加和产生的:
符号O表示按元素乘。下图是 ct 的计算:
这样,我们就把LSTM关于当前的记忆和长期的记忆 ct−1 组合在一起,形成了新的单元状态 ct 。由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。下面,我们要看看输出门,它控制了长期记忆对当前输出的影响:
下面表示输出门的计算:
LSTM最终的输出,是由输出门和单元状态共同确定的:
下图表示LSTM最终输出的计算:
式1到式6就是LSTM前向计算的全部公式。至此,我们就把LSTM前向计算讲完了。
长短时记忆网络的训练
LSTM训练算法框架
LSTM的训练算法仍然是反向传播算法,对于这个算法,我们已经非常熟悉了。主要有下面三个步骤:
1、前向计算每个神经元的输出值,对于LSTM来说,即 ft、it、ct、ot、ht 五个向量的值。计算方法已经在上一节中描述过了。
2、反向计算每个神经元的误差项δ值。与循环神经网络一样,LSTM误差项的反向传播也是包括两个方向:一个是沿时间的反向传播,即从当前t时刻开始,计算每个时刻的误差项;一个是将误差项向上一层传播。
3、根据相应的误差项,计算每个权重的梯度。
作者:凌逆战
来源:博客园
原文链接:https://www.cnblogs.com/LXP-Never/p/10398531.html
欢迎任何形式的转载,但请务必注明出处。 限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 本文章不做任何商业用途,仅作为自学所用,文章后面会有参考链接,我可能会复制原作者的话,如果介意,我会修改或者删除。
- PyTorch教程之长短期记忆(LSTM)
- 基于LSTM模型的信号调制类型识别方法 26次下载
- 融合EMD与LSTM网络的频谱占用度预测模型 11次下载
- 基于双向长短时记忆的序列标注神经网络模型 15次下载
- 基于长短期记忆网络的长距离股票趋势预测 7次下载
- 使用双向长短时记忆网络检测跨站脚本攻击 10次下载
- 基于改进长短时记忆网络的儿童语音情感识别模型 14次下载
- 基于PCA和LSTM神经网络的硬件木马检测方法 18次下载
- 基于PCA和LSTM神经网络的硬件木马检测方法 10次下载
- 基于长短时记忆网络的自适应零速检测算法 8次下载
- 如何使用神经网络实现实体属性情感分析 7次下载
- 如何使用多注意力长短时记忆进行实体属性的情感分析 5次下载
- 如何使用深度长短时记忆神经网络模型进行心律失常检测算法的资料说明 3次下载
- 一种新的查询意图识别模型 0次下载
- 基于长短期记忆模型的多维主题模型 1次下载
- LSTM模型的基本组成 557次阅读
- 如何理解RNN与LSTM神经网络 236次阅读
- 用于自然语言处理的神经网络有哪些 306次阅读
- 影响闪存遗忘的主要因素 566次阅读
- 基于CNN-LSTM网络的电力负荷预测 3252次阅读
- 长短距离循环更新(LRRU)网络的轻量级深度网络框架介绍 788次阅读
- 长短链接原理案例 629次阅读
- 使用三种不同结构的LSTM神经网络结构对触觉力进行动态重建 1336次阅读
- LSTM的硬件加速方式 2935次阅读
- 循环神经网络(RNN)和(LSTM)初学者指南 839次阅读
- LSTM隐层神经元结构分析,及应用的程序详细概述 9212次阅读
- RNN及其变体LSTM和GRU 1.6w次阅读
- 长短时记忆神经网络的算法 4605次阅读
- 人工智能的重要算法之一--LSTM算法 1.9w次阅读
- 深度解析LSTM的全貌 1w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多