




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能技术基础循环神经网络第四章
循环神经网络(RecurrentNeuralNetwork,RNN)是一类处理序列数据的人工神经网络。相较于卷积神经网络关注的是数据中的局部特征,循环神经网络关注的是序列数据中按照序列顺序的前后依赖关系。它将先前数据的计算结果与之后的数据一同计算产生新的结果,如此循环往复。正是因为循环网络对于不同时间步的数据不是同时计算的,因而可以处理可变长度的序列数据,大大扩大了应用范围。4循环神经网络简介1.了解RNN的基本知识和形式化的数学模型表示;2.掌握循环神经网络的训练方法;3.掌握标准RNN的前向计算和时间反向传播计算过程;4.掌握几种流行的RNN变体结构;5.了解RNN的应用结构。学习目标4循环神经网络目录Contents4.1循环神经网络的基本结构循环神经网络的训练方法循环神经网络拓展模型循环神经网络的应用结构小结4.24.34.44.501循环神经网络的基本结构4.1循环神经网络的基本结构1990年,JeffreyElman将多层前向神经网络隐层的输出引回到输入层作为联系单元与原输入层单元并列与隐层神经元相连接,构成描述动态系统状态的神经网络模型,当时被称为Elman网,也被称为循环神经网络(RNN),主要用于动态系统建模解决复杂系统预测预报问题。1997年JürgenSchmidhuber将RNN中的简单常规神经元替换成具有更多连接权值的复杂记忆单元,提出了长短期记忆(LongShort-TermMemory,LSTM)模型,使RNN的能力大为提高。2003年YoshuaBengio把RNN用于解决传统语言处理模型的“维度诅咒(CurseofDimensionality)”问题,使其在自然语言处理中开始应用。2012年卷积神经网络在物体分类识别上的成功,使RNN返回研究人员的视野,已在机器翻译、语音识别和个性化推荐等众多领域效果显著,成为解决与时序相关联问题的主要深度神经网络模型。4.1循环神经网络的基本结构RNN物理结构图RNN按时序展开结构图4.1循环神经网络的基本结构从RNN按时序展开的结构可以看到,RNN在每一时刻都有外部输入,反馈形成的环(回)路展开后,上一时刻隐层的输出与本时刻的外部输入同时送入本时刻的隐层,展开的网络深度与输入的时序数据的长度一致,数据越长,网络越深,因此RNN本质上也是深度前向神经网络。RNN按时序展开结构不同于常规前向神经网络,其各隐层的神经元数量是相同的,且网络各层中的输入到隐层的连接权、隐层到隐层的反馈连接权和隐层到输出层的连接权是全网络共享不变的。需要注意的是RNN没有强制要求输入序列与输出序列的长度必须相等。RNN的数学模型如下:4.1循环神经网络的基本结构RNN中隐层神经元激活函数通常采用tanh函数,输出神经元的激活函数则依据所解决的问题确定,如果是二分类问题则使用Sigmoid函数,如果是多分类问题则使用Softmax函数。RNN计算单元02循环神经网络的训练方法4.2循环神经网络的训练方法
RNN可以使用误差反向传播算法的思想进行训练。训练RNN的算法为通过时间反向传播BPTT(BackPropagationThroughTime,BPTT)算法,它和传统的反向传播算法BP有类似之处,它们的核心任务都是利用反向传播调整参数,从而使得损失函数最小化。通过时间反向传播算法,也包含前向计算和反向计算两个步骤。4.2循环神经网络的训练方法标准结构RNN的前向传播过程,如下图所示,为了有效区分不同类型的连接权,分别用U、W、V代表输入权、反馈权和输出权。图中各个符号的含义:x是输入,h是隐层节点,o为输出,L为损失函数,y为训练集的标签。这些元素右上角带的t代表t时刻的状态,其中需要注意的是,因为单元h在t时刻的表现不仅由此刻的输入决定,还受t时刻之前时刻的影响。U、W、V是权值,同一类型的连接权值相同。4.2.1循环神经网络的前向输出流程RNN的前向输出流程4.2循环神经网络的训练方法BPTT算法是常用的训练RNN的方法,其实本质还是BP算法,只不过RNN处理的是时间序列数据,所以要基于时间反向传播,故叫随时间反向传播。BPTT的中心思想和BP算法相同,沿着需要优化参数的负梯度方向不断寻找更优的点直至收敛。因此,BPTT算法还是BP算法,本质上还是梯度下降,那么求各个参数的梯度便成了此算法的核心。需要寻优的参数有三个,分别是U、W、V。与BP算法不同的是,三个参数的寻优过程需要追溯之前的历史数据。4.2.2循环神经网络的训练方法——随时间反向传播4.2循环神经网络的训练方法在梯度累乘过程中,如果取Sigmoid函数作为激活函数的话,那么必然是一堆小数在做乘法,结果就是越乘越小。随着时间序列的不断深入,小数的累乘就会导致梯度越来越小直到接近于0,这就是“梯度消失”现象。梯度消失就意味消失那一层的参数再也不更新,那么那一层隐层就变成了单纯的映射层,毫无意义了,所以在深层神经网络中,有时候多增加层的神经元数量可能会比多加层数即深度更好。RNN的特点就是能“追根溯源”利用历史数据,历史数据越长“梯度消失”越严重,因此解决“梯度消失”越是非常必要的。ReLU函数可以解决循环神经网络中的梯度消失问题。4.2.3循环神经网络中梯度消失和爆炸问题及解决方法1.梯度消失的原因与解决办法4.2循环神经网络的训练方法4.2.3循环神经网络中梯度消失和爆炸问题及解决方法1.梯度消失的原因与解决办法Sigmoid函数及其导数图tanh函数及其导数图ReLU函数及其导数图4.2循环神经网络的训练方法使用ReLU解决了RNN的“梯度消失”问题,但也带来了另一个问题—“梯度爆炸”问题。一旦激活函数的导数恒为1,由于网络权W的取值无约束,连乘很容易使损失函数对连接权的偏导数越来越大(时序越长,RNN展开结构的隐层越多,乘积越大),导致“梯度爆炸”现象的发生。深度前向神经网络的激活函数采用ReLU同样存在“梯度爆炸”问题。“梯度爆炸”问题的解决比较简单,只需要给损失函数对三组连接权的梯度的绝对值设定合适的阈值,限制其最大值就可以解决这个问题。对于“梯度消失”和“梯度爆炸”,通过采取将网络初始权值设为接近0的非常小的数值,对网络的输入值做正则化或归一化处理和对网络隐层输出做逐层正则化(LN)处理等措施,也可在网络训练过程中有效减少这两种现象的发生,提高网络的训练效率。4.2.3循环神经网络中梯度消失和爆炸问题及解决方法2.梯度爆炸的原因与解决办法03循环神经网络拓展模型4.3循环神经网络拓展模型简单循环网络是RNN的一种特殊情况,如图所示,SRNN是一个三层网络,与传统RNN网络结构相比,SRNN只是隐层神经元自身有自反馈,这个反馈并不连接到其它隐层神经元,相当于只在隐层增加了上下文信息。SRNN在20世纪90年代被称为对角回归神经网络。图中I1-In为网络的输入,Y1-Yn为网络的隐层,M1-Mn为上下文单元。从图中可以看出Y1-Yn与M1-Mn为一一对应关系,即上下文单元节点与隐层中节点的连接是固定的,而且相应的权值也是固定的。4.3.1简单循环网络SRNN基本结构4.3循环神经网络拓展模型在循环神经网络的输入和输出目标之间添加与输入时序长度相同的暂存单元,存储所有隐层的输出信息,并增加一个具有反馈连接的隐层,该隐层按输入时序相反的方向顺序接收信息,即首先接受时序输入的最后一个信息,再接受倒数第二个信息,最后接受第一个信息,进而将两个信息流动方向相反的隐层输出同时送入网络的输出层神经元中。按上述思想构造的循环神经网络被称为双向循环神经网络(Bi-directionalRecurrentNeuralNetwork,BRNN)。4.3.2双向循环网络BRNN双向网络基本结构4.3循环神经网络拓展模型1997年JürgenSchmidhuber提出的长短期记忆(LongShort-TermMemory,LSTM)模型,将RNN中的简单MP神经元替换成具有更多连接权值的复杂记忆单元,使其记忆能力和处理复杂系统问题的能力大大提高。LSTM是RNN的一种变体,它通过精妙的门控制将RNN中隐层的状态信息(可以看做长期记忆)和当前时刻的输入信息(可以看作短期记忆)结合起来,有效地提高了RNN解决复杂问题的能力。4.3.3长短期记忆网络长短期记忆网络基本结构4.3循环神经网络拓展模型LSTM的关键就是细胞状态,水平线在图上方贯穿运行。细胞状态类似于传送带,直接在整个链上运行,只有一些少量的线性交互,信息在上面流传保持不变会很容易。LSTM拥有三个门,来保护和控制细胞状态,分别为遗忘门、输入门、输出门。4.3.3长短期记忆网络遗忘门输入门输出门4.3循环神经网络拓展模型门控循环单元(GatedRecurrentUnit,GRU)网络是这些LSTM变体中影响最大的变体。它只有两个门,分别为更新门和重置门,它将遗忘门和输入门合成了一个单一的更新门。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。4.3.4门控循环单元网络GRU网络基本结构04循环神经网络的应用结构循环神经网络本身的特性使其特别适合处理时序数据,根据实际应用场景的需要,RNN有四种常用的按时序展开结构:同步的序列到序列结构、序列分类结构、向量到序列结构、异步的序列到序列的模式。它们是针对不同类型的输入输出分别设计的。4.4循环神经网络的应用结构N到N结构又称为变换器(Transducer),最经典的RNN结构要求输入序列和输出序列的长度相同。如图所示,损失函数L为每一时刻隐层节点的输出o(t-l)与相应时刻的期望输出y(t)序列的差异;当前时刻t的隐层节点h(t)输入为上一时刻的隐层h(t-l)输出和当前时刻的序列输入x(t),W为连接权重。虽然这种结构要求输入输出序列长度相同,但是输入和输出序列的长度是可变的,这也正是RNN在处理序列数据时相对于CNN的优势。4.4循环神经网络的应用结构4.4.1同步的序列到序列结构(N到N)N到N的结构N到N结构的典型应用如:计算视频中每一帧的分类标签、词性标注、训练语言模型使用之前的词预测下一个词等。N到1结构又称为接受器(Acceptor),输入x是一个时间序列,输出o是一个单独的值而不是时间序列,最后一个时间步的隐层节点输出用于表示整个输入序列x的特征,也可以用最后全部时间步的隐层节点输出的某个函数值fo来表示序列x的特征。N到1结构通常用来处理序列分类问题,如一段语音、一段文字的类别,句子的情感分析,视频序列的类别判断等。4.4循环神经网络的应用结构4.4.2序列分类结构(N到1)N到1的结构1到N结构的网络输入为固定长度的向量,而非上文中的按照时间展开的向量序列。常用的1到N结构中,有一种结构只在序列开始进行输入,而每一个时间步都有输出。另一种为在隐层的每一个时间步都将x作为输入。图中当前时间步的期望输出也作为下一时间步的隐层节点输入,是该结构的另一种变体。1到N结构常用于图像理解。4.4循环神经网络的应用结构4.4.3向量到序列结构(1到N)1到N结构首步输入1到N结构每步输入N到M的结构又叫编码-译码(Encoder-Decoder)模型,也可称之为Seq2Seq模型。N到N结构的RNN要求输入和输出序列长度相同,编码-译码模型则不受此约束限制。用一个编码网络将输入的序列编码为一个上下文向量c。然后,用一个译码网络对c进行译码,将其变成输出序列。N到M结构实质上使用了2个RNN,编码器是一个N到1展开结构的RNN,译码器是一个1到M的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高职单招职业技能测试政治常识常考知识点(75个)
- (高清版)DB12∕T 655-2016 规模化奶牛场环境监测技术规程
- 分析计划经济与市场经济体制的利与弊
- 理解CPMM考试大纲的试题及答案
- 2025年铝包钢导线合作协议书
- 美术老师合同(2025年版)
- 专业中医康复理论试题及答案
- 二零二五年度上海房屋租赁与提前终止合同
- 上虞区水务集团2025年度合同工工资待遇及员工福利提升合同
- 二零二五年度广东省房屋租赁合同纠纷预防与处理协议
- 牧原应聘笔试试题及答案
- 华为创业成功案例分析
- 中央厨房建设项目可行性研究报告
- 任务三学做麦糊烧(教案)三年级下册劳动浙教版
- 劳务派遣劳务外包服务方案(技术方案)
- 国家网络安全检查操作指南
- 餐饮服务单位食品安全主体责任清单【模板】
- (完整版)基于CCSDS的协议体系结构
- 《2022年上海市初中语文课程终结性评价指南》中规定的150个文言实词
- 半导体器件物理课后习题答案中文版(施敏)
- 水上危险化学品泄漏事故处置技术研究
评论
0/150
提交评论