Long Short-Term Memory

news2024/11/14 4:00:16

这篇论文总结的太抽象了,只是翻译了一遍。
(我太笨了,如果把这个当我的入门读物,我觉着会把我折磨坏)

递归神经网络的一个重要优点是它们在映射输入和输出序列时使用上下文信息的能力。不幸的是,对于标准的RNN体系结构,实际可以访问的上下文范围非常有限。问题是,给定输入对隐藏层的影响,以及对网络输出的影响,在围绕网络的循环连接循环时,要么衰减,要么呈指数增长。这种效应在文献中通常被称为梯度消失问题(Hochreiter, 1991;Hochreiter et al., 2001;Bengio et al., 1994)。梯度消失问题如图4.1所示


图4.1 rnn的梯度消失问题。
未展开网络中节点的阴影表示它们在时刻1时对输入的灵敏度(阴影越深,灵敏度越高)。随着新的输入覆盖隐藏层的激活,灵敏度随着时间的推移而衰减,并且网络“忘记”了第一个输入。

在20世纪90年代,人们做了许多尝试来解决rnn的梯度消失问题。其中包括非梯度训练算法,如模拟退火和离散误差传播(Bengio et al., 1994),明确引入了时间延迟(Lang et al., 1990;Lin et al., 1996;Plate, 1993)或时间常数(Mozer, 1992),以及分层序列压缩(Schmidhuber, 1992)。本书推崇的方法是长短期记忆(LSTM)架构(Hochreiter和Schmidhuber, 1997)。

本章回顾LSTM的背景资料。第4.1节描述了LSTM的基本结构,并解释了它如何处理梯度消失问题。第4.3节讨论了计算LSTM误差梯度的近似和精确算法。第4.4节描述了对基本LSTM体系结构的一些增强。第4.2节讨论了预处理对远程依赖关系的影响。第4.6节提供了训练和应用LSTM网络所需的所有方程。

4.1 网络结构

LSTM体系结构由一组循环连接的子网(称为内存块)组成。这些块可以被认为是数字计算机中存储芯片的可微分版本。每个块包含一个或多个自连接的存储单元和三个乘法单元,输入、输出和遗忘门——为单元提供连续的类似的写、读和复位操作。

图4.2提供了一个LSTM内存块与单个单元的示例。LSTM网络与标准RNN相同,只是隐藏层中的求和单元被存储块取代,如图4.3所示。 LSTM块也可以与普通的求和单元混合使用,尽管这通常是不必要的。LSTM网络可以使用与标准rnn相同的输出层。


图4.2 单元LSTM内存块。
这三个门是非线性的求和单元,收集来自内部和外部块的激活,并通过乘法(小黑色圆圈)控制细胞的激活。输入和输出门将细胞的输入和输出相乘,而遗忘门将细胞的先前状态相乘。在单元格内不应用任何激活函数。门激活函数' f '通常是逻辑s型,因此门激活在0(门关闭)和1(门打开)之间。单元输入和输出激活函数(' g '和' h ')通常是tanh或逻辑s型,尽管在某些情况下' h '是恒等函数。从细胞到门的加权“窥视孔”连接用虚线表示。块内的所有其他连接都是未加权的(或者等价地,具有固定的权重1.0)。从区块到网络其余部分的唯一输出来自输出门乘法。


图4.3 LSTM网络。(抽象=_=)
该网络由四个输入单元、两个单细胞LSTM存储块的隐藏层和五个输出单元组成。并不是所有的连接都显示出来。注意,每个块有四个输入,但只有一个输出。

这是12年的论文,感觉现在的表现形式更加清晰易懂

首先LSTM有两个状态,c^t,h^t 

c^t 变化的比较慢

h^t 变化的比较快

那除了变化快慢还有什么区别呢

在了解 c^t,h^t  区别之前先了解一下两个输入和四个激活状态

两个输入: h^{t-1}, x^{t}

四个激活状态包括3个sigmiod还有一个tanh,3个sigmoid表示不同的门,tanh表示输入的激活状态

三个门都有:

遗忘门: z^f=\sigma (w^f[x^t,h^{t-1}]+b^f)

记忆门: z^i=\sigma (w^i[x^t,h^{t-1}]+b^i)

输出门:z^o=\sigma (w^o[x^t,h^{t-1}]+b^o)

输入的激活状态:

        z=tanh(w[x^t,h^{t-1}]+b)

然后就是利用得到的这4个状态求  c^t,h^t 

首先由 c^{t-1} 得到 c^t

        c^t=z^f c^{t-1}+z^i z

        这一步的意思就是忘记之前不重要的,记住当前输入重要的

再由 c^t 得到 h^{t}

        h^t=z^otanh(c^t)

 LSTM中的激活函数包括sigmiod和tanh,为什么不使用一个激活函数呢

sigmoid的使用是作为一个门的作用,他的取值是0-1,可以根据数据的重要性给予数值,这个无法代替,但是tanh就是一个简单的激活函数可以使用其他的激活函数代替。

乘法门允许LSTM存储单元长时间存储和访问信息,从而减轻了梯度消失的问题。例如,只要输入门保持关闭(即具有接近0的激活),单元的激活将不会被到达网络的新输入覆盖,因此可以通过打开输出门在序列的较晚时间内对网络可用。LSTM对梯度信息随时间的保存如图4.4所示。


图4.4 LSTM对梯度信息的保存。
如图4.1所示,节点的阴影表示它们在时刻1时对输入的敏感性;在这种情况下,黑色节点是最敏感的,而白色节点是完全不敏感的。输入门、遗忘门和输出门的状态分别显示在隐藏层的下方、左侧和上方。为简单起见,所有的门要么完全打开(' O '),要么完全关闭(' - ')。只要遗忘门打开,输入门关闭,记忆细胞就会“记住”第一个输入。输出层的灵敏度可以通过输出门打开和关闭而不影响电池。

在过去的十年中,LSTM在一系列需要远程记忆的合成任务中被证明是成功的,包括学习无上下文语言(Gers和Schmidhuber, 2001),在扩展的噪声序列上回忆高精度实数(Hochreiter和Schmidhuber, 1997)以及各种需要精确计时和计数的任务(Gers等,2002)。特别是,它解决了其他任何RNN架构都无法解决的几个人为问题。

此外,LSTM已应用于各种现实问题,如蛋白质二级结构预测(Hochreiter et al., 2007;Chen and Chaudhari, 2005),音乐生成(Eck and Schmidhuber, 2002),强化学习(Bakker, 2002),语音识别(Graves and Schmidhuber, 2005);Graves et al., 2006)和手写识别(Liwicki et al., 2007;Graves et al., 2008)。正如预期的那样,它的优势在需要使用远距离上下文信息的问题上最为明显。

4.2 预处理的影响

上述讨论提出了预处理影响的重要观点。如果我们能找到一种方法,在将包含长范围上下文依赖关系的任务呈现给序列学习算法之前,将其转换为只包含短范围依赖关系的任务,那么LSTM等架构就会变得有些多余。例如,原始语音信号通常具有超过40khz的采样率。显然,序列学习算法需要跨越大量的时间步,才能对以这种形式呈现的话语进行标记或建模。然而,当信号首先转换为100hz的梅尔频率倒谱系数序列时,使用上下文范围相对较短的算法(如隐马尔可夫模型)对数据进行建模就变得可行了。

尽管如此,如果这样的转换是困难的或未知的,或者如果我们只是希望得到一个好的结果而不必设计特定于任务的预处理方法,那么能够处理长时间依赖性的算法是必不可少的。

 4.3 梯度计算

与上一章讨论的网络一样,LSTM是一个可微函数逼近器,通常使用梯度下降进行训练。最近,LSTM的非梯度训练方法也被考虑(Wierstra et al., 2005;Schmidhuber et al., 2007),但它们超出了本书的范围

最初的LSTM训练算法(Hochreiter和Schmidhuber, 1997)使用了一个近似的误差梯度,结合了实时循环学习(RTRL;Robinson and Fallside, 1987)和时间反向传播(BPTT;Williams and Zipser, 1995)。BPTT部分在一个时间步后被截断,因为人们认为长时间依赖性将由记忆块处理,而不是由循环连接周围的(消失的)激活流处理。截断梯度的好处是使算法完全在线,因为可以在每个时间步之后进行权重更新。对于连续控制或时间序列预测等任务来说,这是一个重要的特性。

然而,也可以使用未截断的BPTT计算精确的LSTM梯度(Graves和Schmidhuber, 2005b)。除了比截断梯度更精确外,精确梯度还具有更容易调试的优点,因为它可以使用第3.1.4.1节中描述的技术进行数值检查。本书中只使用了精确梯度,其公式在第4.6节中提供。

4.4 架构变体

在其原始形式中,LSTM只包含输入门和输出门。遗忘门(Gers et al., 2000),以及附加的窥视孔权重(Gers et al., 2002),将这些门连接到记忆单元,然后添加到扩展的LSTM中(Gers, 2001)。遗忘门的目的是为记忆细胞提供一种自我重置的方式,这对于需要网络“忘记”之前输入的任务很重要。与此同时,窥视孔连接提高了LSTM学习需要精确计时和计算内部状态的任务的能力。

由于LSTM完全由简单的乘法和求和单元以及它们之间的连接组成,因此可以直接创建块体系结构的进一步变体。事实上,研究表明,在诸如学习上下文无关语言和上下文敏感语言等玩具问题上具有同样良好性能的替代结构可以自动进化(Bayer et al., 2009)。然而,标准扩展形式似乎是序列标记的良好通用结构,并且在本书中专门使用。

4.5 双向长短期记忆

在双向递归神经网络(第3.2.4节)中使用LSTM作为网络架构可以得到双向LSTM (Graves and Schmidhuber, 2005 5a,b;Chen and Chaudhari, 2005;Thireou and Reczko, 2007)。双向LSTM在两个输入方向上都提供了对长范围上下文的访问,并将在后面的章节中广泛使用。

4.6 网络方程

本节提供了递归神经网络中LSTM隐藏层的激活(正向传递)和BPTT梯度计算(反向传递)的方程。

和前面一样,wij是从单元i到单元j的连接的权值,在t时刻网络对单元j的输入记为j,单元j在t时刻的激活记为bt j。LSTM方程仅针对单个内存块给出。对于多个区块,计算只是以任意顺序对每个区块重复。下标ι、φ、ω分别表示该模块的输入门、遗忘门、输出门。下标c表示一个c存储单元。从cell c到输入门、遗忘门和输出门的窥视孔权重分别记为wci、wcφ和wcω。St c是细胞c在时刻t的状态(即线性细胞单元的激活)。F是门的激活函数,g和h分别是细胞输入和输出的激活函数。

设I是输入的个数,K是输出的个数H是隐藏层的单元个数。请注意,只有c单元输出连接到层中的其他块。其他LSTM激活,例如状态、单元输入或门激活,仅在块中可见。我们使用索引h来引用隐藏层中其他块的单元输出,与标准隐藏单元完全相同。与标准rnn一样,对于长度为T的输入序列x,前向传递是通过从T = 1开始,递归地应用更新方程,同时增加T来计算的,BPTT后向传递是通过从T = T开始,递归地计算单位导数,同时将T减少到1来计算的(详细信息参见3.2节)。最终的权重导数是通过对每个时间步长的导数求和得到的,用Eqn表示。(3.35)。

在向前和向后传递过程中计算方程的顺序很重要,并应按照下面指定的顺序进行。与标准rnn一样,所有状态和激活在t =0时初始化为零,并且在t = T+1时所有δ项都为零 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机——按键控制

1、按键介绍 轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。 2、按键的抖动 对于机械开关,当机械触点断开、闭合时,由于…

基于SpringBoot+Vue的家教管理系统

文章目录 前言1.项目类型2.技术栈介绍1.客户端技术栈介绍2.服务端技术栈介绍 3.功能介绍1.客户端功能2.服务单功能 4.项目亮点5.适用场景6.项目展示1.客户端展示2.服务端展示 7.诚邀参与 前言 大家好,我是执手天涯,今天非常荣幸地向大家介绍一款基于Spr…

关于ssrf的实现

ssrf漏洞形成 SSRF(Server-Side Request Forgery:服务器端请求伪造)漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求的内容的URL参数,并且未对客户端所传输过来的URL参数进行过滤 ssrf实现 本次ssrf于Pikachu靶场上实现 我们可以先拉取镜像 docker …

计算机毕业设计Spark+Tensorflow股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

1. 需求分析 基于Spark的股票大数据分析及可视化系统是一个利用Spark分布式计算框架进行股票市场数据处理、分析和可视化的系统。它能够处理大规模的实时股票数据,包括股票价格、交易量、市场指标等,提供实时数据处理、数据可视化与展示和并提供相应决策…

【图像增强】使用 Albumentations Python 库(02)

一、说明 在本博客的第 1 部分中,我介绍了使用 Albumentations Python 库进行图像增广的基础知识。本部分介绍高级详细信息。 二、使用 Albumentations 进行语义分割任务 我们将使用来自 TGS 盐鉴定挑战赛的图像和数据。TGS Salt Identification Challenge | Kaggl…

基于carsim的线控转向仿真(2)--齿条力观测

观测器更详细的介绍文章可以关注博主以下两篇文章 从小车倒立摆系统看系统建模控制LQRLQE仿真_lqr平衡小车仿真模型-CSDN博客 好玩的直流电机调速实验、PID、极点配置、LQR、观测器;不讲大道理_观测器极点配置-CSDN博客 三个实例迅速掌握经典卡尔曼滤波用法_卡尔…

VIM的简单用法

vim三种模式的切换 Set nu:显示行号 Set nonu:不显示行号 Set mousea显示鼠标光标 Set cursorline:显示行线 为什么这些设定默认不能永久存在: 进程结束后,所占的内存空间会被系统回收,资源被释放,这些资源…

国内号码验证注册谷歌邮箱【亲测有效】

前言: 谷歌邮箱可以无需注册直接登录很多软件,但是直接很多人直接注册都会表示国内号码注册不了,所以需求还是有的,这里我尝试一下,顺便记录一下​。 ​环境前提:魔法 ​正文: 打开魔法,开启…

react笔记(React18)

以下笔记可能毫无章法,仅供个人学习记录使用。 关于状态提升: 状态提升适用于兄弟组件之间传递数据,共享状态,其实就是把两个兄弟组件要共同使用的数据存放到共同的父组件中,称状态提升。 关于context跨层级组件通信…

5步掌握“花开富贵”花园管理系统开发——基于Python Django+Vue

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

Java超市收银系统(十、爬虫)

引言 爬虫功能实现,要求爬取页面数据至少100条,这里以豆瓣音乐为示例编写代码豆瓣音乐标签: 民谣 (douban.com)。 功能实现 除了爬虫功能增加,代码其他内容原理和之前博客发布是一致的,只不过这里为了区分,我们重新创…

IDM是海外加速器吗 IDM在国内好用吗

IDM是一款出色的下载加速器,它可以将下载任务分割成多个部分,利用多线程技术加速下载速度,支持断点续传功能,能够从上次下载中断的地方继续下载,提高了下载效率和稳定性,所以深受年轻人的欢迎。 一、IDM是…

集合及数据结构第十节(下)————常用接口介绍、堆的应用和java对象的比较

系列文章目录 集合及数据结构第十节(下)————常用接口介绍和堆的应用 常用接口介绍和堆的应用 PriorityQueue的特性.PriorityQueue常用接口介绍top-k问题堆排序PriorityQueue中插入对象元素的比较.对象的比较.集合框架中PriorityQueue的比较方式 文…

《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-04-SOA设计

文章目录 1. SOA设计的标准要求1.1 文档标准1.2 通信协议标准1.3 应用程序统一登记与集成1.4 服务质量 (QoS)1.4.1 可靠性1.4.2 安全性1.4.3 策略1.4.4 控制1.4.5 管理 2. SOA的设计原则 1. SOA设计的标准要求 OASIS Organization for the Advancement of Structured Informati…

RISCV汇编编程讲解

第一章 引言 为什么要讲riscv? riscv的特点: -诞生于顶尖学术机构:诞生于加州大学伯克利分校的体系结构研究院。吸引了大批的顶尖企业参与(e.g. 谷歌、华为、高通、阿里巴巴为rsicv的发展提供了大量的资金支持和贡献了技术和人才…

【计算机网络】名词解释--网络专有名词详解(更新)

在网络通信中,有许多专业术语和概念,它们共同构成了网络通信的基础。以下是一些常见的网络术语及其定义和相互之间的关系: 一、网络基础 1.1 电路交换:电路交换是一种在数据传输前建立专用通信路径的通信方式。在通信开始前&…

RAG 技术原理

目录 RAG 技术原理背景和概念实现步骤1. ChatGPT/GLM 等大语言模型的调用2. 读取知识库数据3. 文本索引与答案检索4. 文本嵌入与向量检索5. 文本多路召回与重排序6. 文本问答Promopt优化 原创链接 RAG 技术原理 背景和概念 在自然语言处理领域,大型语言模型&#x…

使用 C 语言实现字符走迷宫 DFS算法应用

使用 C 语言实现字符走迷宫 DFS算法应用 迷宫问题是一个经典的编程问题,通常用于算法训练。我们将通过使用 C 语言来实现一个字符迷宫的求解,其中玩家可以控制字符在迷宫中移动,直到找到出口。 1. 问题描述 我们将设计一个二维迷宫&#xf…

Unity--AnimationCurve动画曲线设置

参考文章:https://blog.csdn.net/qq_20179331/article/details/131309128 打开Clip文件点击Curves选项,选中想要编辑的动作关键帧,右键选择Auto 这样动画就变成线性的了

爆改YOLOv8 |利用 iAFF迭代注意力改进C2f,高效涨点

1,本文介绍 iAFF的核心思想是通过细致的注意力机制优化特征融合,从而提升卷积神经网络的性能。它不仅解决了因尺度和语义不一致导致的特征融合问题,还引入了多尺度通道注意力模块,提供了一个统一且通用的特征融合方案。此外&…