深度学习(Deep Learning)读书思考七:循环神经网络二(LSTM)

LSTM 论文(Hochreiter & Schmidhuber, 1997)精读(三):恒定误差流与门控机制解析 本文深入解析了LSTM(长短期记忆网络)的核心机制,重点阐述了恒定误差流如何通过细胞状态的线性加法操作解决传统RNN的梯度消失问题,从而构建了长程记忆的“高速公路”。同时,详细剖析了遗忘门、输入门和输出门组成的门控系统如何协同工作,实现对信息的智能筛选、更新与输出,使模型具备强大的序列建模能力。 阅读详情

概述

通过前一节对循环神经网络RNN的了解,简单的RNN虽然能够解决长期依赖问题,但是训练和优化比较困难,然后长短时记忆模型LSTM很大程度上解决长期依赖问题,本文主要介绍

1.LSTM的提出
2.LSTM网络结构
3.LSTM的分析

LSTM的提出

早在94年Hochreiter发现了RNN训练过程中的梯度消失和爆炸问题,然后在99年提出LSTM解决该问题。

梯度消失问题的原因可以参考之前的介绍。

常量错误传播

RNN难训练的主要原因在后向传播过程中,梯度随着时间序列的增加而逐渐消失。如果误差能够不消减的进行传递,则可以避免训练难得问题。

常量错误传播-直观想法

假设隐藏层只有一个节点j,则该节点误差计算过程为

δj(t)=f′j(netj(t))δj(t+1)wjj
其中netj(t)表示该节点的网络输入,δj(t)表示节点j的误差.
如果想做到常误差传播,则需要
f′j(netj(t))wjj=1

此时可以近似无限长时间序列,但是网络过于简单并且实现比较复杂。

LSTM也是根据CEC演化而来。

针对上面的必要条件f′j(netj(t))wjj=1,两边同时积分可以得到

fj(netj(t))=netj(t)wjj
对于任意时序网络输入netj(t)都要满足。
此时激活函数必须是线性并且激活值保持为常量。
yj(t+1)=fj(netj(t+1))=fj(wjjyj(t))=yj(t)
此时激活函数必须满足f(x)=x,并且wjj=1
作者将满足这个等式的传播称之为 CEC。

当然如果满足CEC的约束条件能够进行常误差传播,但是该网络结构过于简单,同时有两个相关问题需要解决:

1.输入权重冲突:隐藏层节点不仅要保存历史信息,还要对当前的输入进行响应。
2.输出权重冲突:同理隐藏层节点不仅保存历史信息,还要响应该节点到输出层的反馈。
因此隐藏层不仅保存历史信息还要对输入和输出进行不同程度的响应,会导致相关的权重更新冲突。这也是LSTM加入门节点的重要原因之一。

LSTM原型

为了解决1)常量误差传播2)冲突问题,作者通过引入内存单元和门单元重新构建了网络结构。
输入门:能够保护内存单元的内容不受不相关输入的影响,最大程度保存有用信息。
输出门:能够保护其他单元不受不相关内存的影响。网络拓扑如下:
这里写图片描述

1.y_in表示输入门 ,y_out表示输出门。门在网络结构中相当于新引入隐藏节点,不过激活函数一般选取为sigmoid,将权重压缩到0-1之间
2.内存单元状态sc用于存储历史信息和当前输入。
3.内存块,这也是该模型长短时记忆由来的原因。在一个内存块中可以有多个内存单元,他们有着相同的输入和输出门。引入内存块能够减少门的个数,加快计算效率。

引入遗忘门

为了解决状态不断累加问题,引入遗忘门对状态进行缩减。网络结构如下:

这里写图片描述

引入Peephole Connection

为了学习到更精确的时序,引入Peephole Connection,使得各种门的状态能够学习更准确。这也是目前使用最多的网络结构。
这里写图片描述

LSTM经典网络结构

目前使用较多的网络结构如下图所示:
这里写图片描述

1.上图展示的是一个内存块并且内存块中仅有一个内存单元
2.网络结构中包括输入、输出和遗忘门;Cell为内存状态单元;虚线表示Peephole连接。

LSTM展开图

下图更形象的展示了LSTM的网络结构,隐藏层有两个内存块,每个内存块有2个单元。
这里写图片描述

LSTM数学表达

符号定义

I 表示输入集合
H 表示隐藏层节点个数
C为内存块中细胞单元个数
K表示输出层节点个数
γ,ϕ,ω分布表示输入门、遗忘门以及输出门
S表示内存单元状态

前向遍历过程

某个内存块计算过程如下:

  1. 输入门表达
    atγbtγ=∑i=1Iwi,γxti+∑h=1Hwh,γbt−1h+∑c=1Cwc,γst−1c=f(atγ)
    输入门的输入依次来自于原始输入x、前一时序隐藏层h、前一时序内存节点状态
  2. 遗忘门表达
    atϕbtϕ=∑i=1Iwi,ϕxti+∑h=1Hwh,ϕbt−1h+∑c=1Cwc,ϕst−1c=f(atϕ)
    类似于输入门,遗忘门的输入依次来自于原始输入x、前一时序隐藏层h、前一时序内存节点状态
  3. 细胞单元表达
    atcstc=∑i=1Iwi,cxti+∑h=1Hwh,cbt−1h=btϕst−1c+btγg(atc)
    中间状态计算包括两部分一是通过遗忘门加权的前一时序的状态值;二是通过输入门进行加权后的当前单元的输入
  4. 输出门表达
    atωbtω=∑i=1Iwi,ωxti+∑h=1Hwh,ωbt−1h+∑c=1Cwc,ωstc=f(atω)
    输出门的输入依次来自于原始输入x、前一时序隐藏层h、当前时序内存节点状态。需要注意的是:输出门控制的是当前细胞单元的输出,因此需要依赖当前节点的状态。
  5. 内存单元输出
    btc=btωh(stc)
    内存单元的最终输出可以用于连接输出层和下一时序的隐藏层输入。

后向遍历过程

后向遍历过程,类似于RNN,需要计算得到各个节点的误差,然后传递到相关的权重。

符号定义

ϵtc=∂L∂btc表示细胞单元输出的误差,即到达btc时的汇总误差
ϵts=∂L∂stc表示中间状态的误差
δtk表示输出层节点的误差

1.细胞节点误差

ϵtc=∑k=1Kwckδtk+∑g=1Gwcgδt+1g
误差主要来自于1)输出层传递的误差2)下一时序输出门、输入门、遗忘门和中间状态传递的误差,其中G=4H分别表示各个部分
2.输出门误差
δtω=f′(atω)∑c=1Ch(stc)ϵtc
由于一个内存块共享一个输出门,因此需要对该内存块中的各个节点进行误差累加
3.细胞状态误差
ϵtc=btωh′(stc)ϵtc+bt+1ϕϵt+1s+wc,γδt+1γ+wc,ϕδt+1ϕ+wc,ωδtω
误差依次来自于1)细胞输出传递的误差2)后一时序细胞状态的误差3)后一时序输入门的误差4)后一时序遗忘门的误差5)输出门的误差
4.细胞节点的误差
δtc=btγg′(atc)ϵts

5.遗忘门误差
δtϕ=f′(atϕ)∑c=1Cst−1cϵts

6.输入门误差
δtγ=f′(atγ)∑c=1Cg(atc)ϵts

LSTM分析

优势

1.在一个内存块中LSTM能够做到常误差传递(通过后向传递过程可以得到);以及在不同时序阶段中通过输入门和遗忘门的控制能够使得误差极大化向后传递;最终使得LSTM能够解决较长的依赖问题
2.LSTM能够处理噪声、连续型输入以及分布式表示等问题
3.LSTM泛化能力较其他模型强
4.不需要细粒度参数调优,而且计算复杂度和RNN一致

局限

1.计算复杂度线性增加
2.RNN加上相关优化算法能够解决100以内依赖问题,LSTM能够处理1000以内依赖问题;对于更长的依赖LSTM也会遇到梯度相关问题。

总结

通过本文学习能够非常清楚LSTM的网络结构以及求解算法、理解LSTM内存块内的常量误差传递。

深度学习(Deep Learning)读书思考六:循环神经网络一(RNN) 概述 循环神经网络(RNN-Recurrent Neural Network)是神经网络家族中的一员,擅长于解决序列化相关问题。包括不限于序列化标注问题、NER、POS、语音识别等。RNN内容比较多,分成三个小节进行介绍,内容包括RNN基础以及求解算法、LSTM以及变种GRU、RNN相关应用。本节主要介绍 1.RNN基础知识介绍 2.RNN模型优化以及存在的问题 3.RNN模 阅读详情

相关推荐

【深度学习(deep learning)】花书第10章 序列建模:循环和递归网络 读书笔记

【深度学习(deep learning)】花书第10章 序列建模:循环和递归网络 读书笔记 第10章 序列建模:循环和递归网络 【深度学习(deep learning)】花书第10章 序列建模:循环和递归网络 读书笔记前言一、序列模型1.1 序列模型中的参数共享1.时延神经网络(卷积)2.循环神经网络1.2 计算图展开二、循环神经网络 RNN2.1 多对多,隐藏到隐藏**反向传播:通过时间反向传播(BPTT)**2.2 多对多,输出到隐藏训练算法:导师驱动过程(teacher forcing)2.3 多对

qq_44055705的博客 1133

LSTM学习笔记

Long Short-Term Memory(LSTM) 是一种循环神经网络(Recurrent Neural Network, RNN)。跟所有RNN一样,在网络单元足够多的条件下,LSTM可以计算传统计算机所能计算的任何东西。 Like most RNNs, an LSTM network is universal in the sense that given enough netwo

omnispace的博客 1276

《深度学习》/《Deep Learning》——深度学习圣经的读书笔记

学习方法 对着书看一遍,把理解的内容写成笔记 看完一章后,看着笔记和书,把内容复习一下,把需要画线的地方画好并理解 逐层深入:这本书讲解基础概念讲得不生动,但是高层次上有很多不错的高瞻远瞩的见解,所以先看网文理解到基本的网络(如RNN-LSTM),然后看书深化理解 *. JumpingJumping ReadRead:读某一章很痛苦的时候,先读后面一章,然后返回来读熟悉语音,VAE,tf,pytho

数据分析之路 1万+

(2024,LSTM,Transformer,指数门控,归一化器状态,多头内存混合)xLSTM:扩展的 LSTM

xLSTM 引入指数门控,并修改 LSTM 的内存结构来扩展LSTM。sLSTM带有标量内存、标量更新和新的内存混合。完全可并行化的 mLSTM,具有矩阵内存和协方差更新规则(类似于Transformer的QKV)。

qq_44681809的博客 3503

(DPRL+GCNN读书笔记)Deep Progressive Reinforcement Learning for Skeleton-based Action Recognition

(DPRL+GCNN读书笔记)Deep Progressive Reinforcement Learning for Skeleton-based Action Recognition1.摘要2.引言3.相关工作3.1Skeleton-based Action Recognition 论文的特点:就是使用了DPRL方法,在全部的帧中挑选出了更重要的帧;使用更重要的帧进行识别。 1.摘要  总结一下,首先作者在摘要中解释了贯穿全文的一个概念DPRL(Deep Progressive Reinforcement

qq_38959366的博客 2963

Neural network and deep learning阅读笔记(6)深度学习

这一章介绍了卷积神经网络——在深度学习中非常常用的一种网络,先建立简单的网络,然后添加很多增强网络能力的方法:卷积、池化、GPU、dropout等等。这一章建立的网络很强大,正确率达到99.67%,识别错误的数字很多是人眼也无法正确识别的。还会提到RNN、LSTM单元,如何在语音识别、自然语言处理或者其他领域运用模型。 Introducing convolutional networks 之前我们...

niyidan0527的博客 1877

学习笔记TF017:自然语言处理、RNN、LSTM

自然语言处理 (NLP)问题都是序列化的。前馈神经网络,在单次前馈中对到来数据处理,假定所有输入独立,模式丢失。循环神经网络(recurrent neural network,RNN)对时间显式建模神经网络。RNN神经元可接收其他神经元加权输入。RNN神经元可与更高层建立连接,也可与更低层建立连接。隐含活性值在同一序列相邻输入间被记忆。2006年 LSTM。语音识别、语音合成、手写连体字识别、时间序

利炳根 967

机器学习书单:按学习阶段精准匹配的实战路线图

机器学习入门与进阶的核心挑战,不在于知识量多少,而在于学习路径是否匹配真实工程节奏。从数据预处理、模型训练到原理深挖,关键要理解‘直觉→工具→原理→领域’的四阶段演进逻辑。尤其在Python机器学习实践中,scikit-learn的Pipeline构建、PyTorch手写反向传播、特征工程中的时间序列滚动统计等高频技术点,往往文档缺失、教程脱节。本书单聚焦可运行代码、带验证题的章节设计和GitHub活跃度三大硬指标,筛选出真正支撑Kaggle竞赛、风控建模、推荐系统等工业场景的12本核心读物,帮助学习者避开

weixin_30463341的博客 477

手搓GPT系列之 - 通过理解LSTM的反向传播过程,理解LSTM解决梯度消失的原理 - 逐条解释LSTM创始论文全部推导公式,配超多图帮助理解(下篇)

本文继续就Sepp Hochreiter 1997年的开山大作 Long Short-term Memory 中APPENDIX A.1和A.2所载的数学推导过程进行详细解读。希望可以帮助大家理解了这个推导过程,进而能顺利理解为什么那几个门的设置可以解决RNN里的梯度消失和梯度爆炸的问题。中篇介绍了各个权重的误差更新算法。本篇将继续说明梯度信息在LSTM的记忆单元中经过一定的时间步之后如何变化,并由此证明LSTM可实现CEC(Constant Error Carousel)。本篇为整个文章最关键一篇。

marlinlm的博客 2779

PyTorch深度学习教材代码复现指南:环境搭建、版本适配与训练循环

深度学习模型训练依赖张量计算与自动求导机制,而PyTorch作为主流框架,其环境配置与版本兼容性直接影响代码复现效率。理解CUDA与PyTorch版本对应关系、conda与pip安装差异,是避免环境报错的关键。通过合理配置GPU加速与数据加载,可显著提升模型训练稳定性。在计算机视觉、自然语言处理等场景中,掌握张量操作、nn.Module组织及训练循环排错,能有效解决教材代码落地难题。本文围绕《Deep-Learning-with-PyTorch》教材,系统梳理从环境搭建到模型训练的完整复现路径,助力开发者高

weixin_28223453的博客 179

校招总结—FPGA从入门到放弃

校招总结—FPGA从入门到放弃 感谢咸鱼FPGA的授权转发,原文地址为https://www.cnblogs.com/xianyufpga/ 其实 offer 早就定下来了,最近忙着入党考试,现在才腾出时间来写个总结。我校招开始于 7 月底,算是比较晚了,后面加了各大校招交流群,发现很多同学都是过完年后就开始打磨项目、复习基础、寻找实习。对比之下我这准备确实仓促,不过结果还算满意。 ...

qq_31515205的博客 8605

深度学习(Deep Learning)读书思考八:循环神经网络三(RNN应用)

概述 通过前两小节的介绍,可以清楚的了解RNN模型的网络结构以及LSTM。本小节主要介绍RNN其他变形以及应用,包括 1.GRU单元 2.序列到序列(Seq2Seq)模型 3.注意力(Attention)模型 4.RNN在NLP中的应用 5.总结 GRU单元 GRU通过引入重置门和遗忘门来解决长期依赖问题,相对于LSTM有更少参数并且在某些问题上,效果好于L

互联网广告从业者,长期关注AI、计算广告以及搜广推相关技术,致力于广告投放、广告策略以及底层技术透明可视,太阳底下没有新鲜事,人人可懂可会 7801

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

零基础看懂RNN循环神经网络:原理、手算与训练实战

序列数据广泛存在于文本、语音、股价和时间序列场景中,而标准前馈神经网络无法捕捉样本间的先后关联。循环神经网络(RNN)通过隐藏状态在时间步间传递信息,使网络具备记忆能力,是处理序列建模的基础模型。RNN采用权重共享和可变长输入设计,但反向传播时容易陷入梯度消失与梯度爆炸,这促使了LSTM、GRU等门控结构的出现。理解RNN的计算过程与训练机制,不仅有助于掌握序列预测、文本生成等任务,也是过渡到Transformer等现代架构的重要基石。通过手算示例拆解RNN前向传播,并给出BPTT原理、梯度问题及工程踩坑经

weixin_33853794的博客 389

【保研面试】线性代数面试复习

线性相关和无关 有向量组A,a1,a2…an , 如果存在不是全为0的k1,k2…kn,满足 a1 * k1 + a2 * k2… an * kn = 0 则向量组A称为线性相关(可以跟向量组A共面联系,即可以通过几个向量,表示出另外几个向量,故称为线性相关) 极大线性无关组 设有向量组A a1,a2…an(本身为线性相关) :若选出r个向量,满足以下条件 (1)向量组 r : 线性无关; (2) 向量组A中任意r+1个向量(若有的话)都线性相关, 则向量组r 是向量组A的一个极大线性无关组(简称为

云端筑梦师 6311

亚马逊跨境电商选品数据分析:Python爬虫实战指南

本文将带领大家构建一套完整的亚马逊选品数据采集与分析系统,使用最新的Python技术栈,从零开始爬取亚马逊商品数据,并进行深度分析。

2201_76125261的博客 299

Deep Learning读书笔记6---序列建模:循环和递归网络

1. 展开计算图循环神经网络使用下面的公式定义隐藏单元的值。 为了表明状态是网络的隐藏单元,我们使用变量hh代表状态重写:上式可以用两种不同的方式绘制。 一种方法是为可能在模型的物理实现中存在的部分赋予一个节点,如生物神经网络。 在这个观点下,网络定义了实时操作的回路,如下图的左侧,其当前状态可以影响其未来的状态。 在本章中,我们使用回路图的黑色方块表明在时刻tt的状态到时刻t+1t+1的状态单个时

Kuekua的专栏 2975

海思3559av100平台lan9500模块调试记录

1. 前言 通过USB2.0接口扩展一路百兆虚拟网口 2. 配置lan9500驱动 make ARCH=arm64 menuconfig 开启LAN95XX驱动,编译进内核 保存内核配置 3. 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage -j 20 cd ../../arm-trusted-firmware/arm-trusted-firmware ./mk.sh cp ...

jzwjzw19900922的博客 908

星小环的AI读书会—深度学习系列01开篇

星小环的AI读书会 加入读书会,我们将带大家先做读书理论分享,同时每一章节介绍会在小环机器学习平台上进行Python Tensorflow实现,增加大家的理解。 本系列星小环AI读书会——深度学习将于2017年8月28日开始,每周三晚上7点至9点,在星小环的AI读书会群里直播。

Transwarp 1112

13、深入理解 Microsoft 365 的安全与合规概念

本文深入探讨了 Microsoft 365 的安全与合规概念,涵盖文档存储、文件共享、审计、保留、eDiscovery、分类和保护以及网络等多个关键方面。通过合理配置这些功能,组织可以更好地管理和保护其数据资源,满足法规要求,并提升工作效率。文章还提供了最佳实践建议及流程图,帮助读者全面理解 Microsoft 365 的安全架构和管理策略。

k8s6orchestrator的博客 211

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1129

《深度学习》读书笔记之第10章 序列建模:循环和递归网络

"Deep Learning" By Ian Goodfellow, Yoshua Bengio, Aaron Courville 赵申剑、黎彧君、符天凡、李凯 译,张志华等 审校 同时参考http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 第10章 序列建模:循环和递归网络        循环神经网络(Recurrent N...

mengbaoer007的博客 514

github创建账号第一步始终出错

github创建账号总结:第一次注册GitHub,填好用户名邮箱密码后进入下一步就卡在哪里,上面还提示Unable to verify your captcha response等,进入网址的解决办法以及下载其他的浏览器也无法解决,用手机浏览器抱着试一试的心态竟然成功了,分享给大家。手机下载谷歌浏览器,进入GitHub正常注册,能向下继续,邮箱验证完以后再用电脑登陆就ok啦

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 4373

Deep Learning 深度学习 学习教程网站集锦

http://blog.sciencenet.cn/blog-517721-852551.html   学习笔记:深度学习是机器学习的突破        2006-2007年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在《科学》以及在Neural computation 和 NIPS上发表了4篇文章,这些文章有两个主...

weixin_33941350的博客 122

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Deep Learning.ai学习笔记_第五门课_序列模型

目录 第一周 循环序列模型 第二周 自然语言处理与词嵌入 第三周 序列模型和注意力机制 第一周 循环序列模型 在进行语音识别时,给定一个输入音频片段X,并要求输出对应的文字记录Y,这个例子中输入和输出数据就是序列模型。 音乐生产问题也是使用序列数据的一个例子。 在自然语言处理中,首先需要决定怎样表示一个序列里单独的单词,解决办法式创建一个词典。然后每个单词的序列表...

weixin_30567471的博客 105

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Neural Networks and Deep Learning阅读笔记(第六章第三节)

阅读笔记Recent progress in image recognitionThe 2012 LRMD paperThe 2012 KSH paperThe 2014 ILSVRC competitionOther activityOther approaches to deep neural netsRecurrent neural networks (RNNs)Long short-term memory units (LSTMs)Deep belief nets, generative model

weixin_39929275的博客 364
上一篇: 深度学习(Deep Learning)读书思考六:循环神经网络一(RNN)
下一篇: 深度学习(Deep Learning)读书思考八:循环神经网络三(RNN应用)
下一步
博客等级 码龄18年 664粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值