版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章:循环神经网络1986年,Elman等人提出了用于处理序列数据的循环神经网络(RecurrentNeuralNetwork,RNN),如同CNN是专门用于处理二维数据信息(如图像)的神经网络,RNN是一个在时间上传递,且专用于处理序列信息的神经网络,网络的深度就是时间的长度。在传统的前馈神经网络中,每一层的神经元信号只能向下一层传播,样本的处理在时刻上是独立的,但由于RNN具有循环连接,神经元在这个时刻的输出可以直接影响下一个时间点的输入,因此该神经网络能够处理和预测时间序列方面的问题。如果将CNN看成是前馈神经网络的具体化,那么RNN则是反馈神经网络的具体化。RNN不仅可以扩展到更长的序列,还可以处理可变长度的序列,因此RNN的诞生解决了传统神经网络在处理序列信息方面的局限性。本章将首先介绍序列的特征,然后重点介绍RNN原理及它的两个重要子集LSTM和GRU,最后介绍RNN在各个领域中的应用。引言第五章
循环神经网络第五章
循环神经网络5.1序列的特征5.2循环神经网络的模型5.3LSTM神经网络5.4GRU神经网络5.5梯度消失和爆炸5.6RNN的应用5.1序列的特征5.1.1序列的概念5.1.2序列的意义5.1.1序列的概念序列不仅是RNN读取数据的方式,而且是RNN最为独特的特征。那么到底什么才是序列呢?让我们抛弃抽象的数学定义,直接给出生活中随处可见的例子:1、句子、段落、文章等都可以看作是文本序列,其通常会被切分成一个个单词或字符,形成一个序列,如图5.1所示:图5.1
字符串序列2、一段视频是一系列图像帧组成的序列,如图5.2所示:图5.2
图片序列5.1.1序列的概念3、一条按照时间顺序记录的温度数据组成的序列,如图5.3所示:图5.3
数据序列除了以上的例子,常见的序列还有时间和振幅构成的音频信号、生物碱基组成的DNA、图像的行或列等等。序列是指按时间顺序排列的一组数据点,每个数据点通常对应于特定的时刻。广义上来说,任何按照有序排列的数据都可以被认为是一个序列,其中每个元素被称为序列的一个项。另外,序列可以是有限的,也可以是无限的。总的来说,序列数据通常具有时间顺序或空间上的关联,它的顺序性是其主要特征,序列中项的位置信息对于理解和处理数据具有重要意义。因此序列在许多领域中都有广泛的应用,包括自然语言处理、时间序列分析、音频处理等。5.1序列的特征5.1.1序列的概念5.1.2序列的意义5.1.2序列的意义普通神经网络只能单独处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要理解和处理序列信息,即分析前面输入和后面输入的关系。比如,在理解一句话的意思时,单独理解这句话的每个词是不行的,需要处理这些词连接起来的整个字符串序列。又比如,处理视频的时候,不能单独分析视频的每一帧,而是要分析这些帧连接起来的整个图片序列。5.1.2序列的意义以自然语言处理的一个最简单词性标注任务来说:1.任务的要求:将“我
爱
跑步”三个单词标注词性为
我/n爱/v跑步/n。2.任务的输入是:我
爱
跑步(已经分词好的句子)。3.任务的输出是:我/n爱/v跑步/n(词性标注好的句子)。对于这个任务来说,当然可以直接用普通的神经网络来做,给网络训练数据格式:“我”→单独的单词标注,“爱”→单独的单词标注,“跑步”→单独的单词标注。但是很明显,一个句子中,按照语法规则来说,前一个单词的词性对于当前单词的词性预测是有很大影响的。比如预测“跑步”的时候,由于前面的“爱”是一个动词,那么很显然跑步作为名词的概率就会远大于动词的概率,这是因为动词后面接名词很常见,而动词后面接动词很少见。为了解决一些类似的问题,能够更好地处理和利用序列的信息,RNN就诞生了。第五章
循环神经网络5.1序列的特征5.2循环神经网络的模型5.3LSTM神经网络5.4GRU神经网络5.5梯度消失和爆炸5.6RNN的应用5.2循环神经网络的模型5.2.1RNN的结构5.2.2RNN的训练5.2.3RNN的实现5.2.1RNN的结构RNN跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。在RNN结构中,每个时间步都有一个隐藏状态(HiddenState),它可以接收当前时间步的输入和上一个时间步的隐藏状态作为新输入。隐藏状态的输出不仅取决于当前时间步的输入,还取决于之前所有时间步的输入,即一个序列当前的输出与前面的输出也有关,会对前面的信息进行记忆并应用于当前输出的计算中。这种循环连接使得RNN在处理序列时保持一种记忆状态,不仅可以处理变长序列,还能捕捉到序列中的时序信息,RNN的结构如图
5.4所示。图中每个圆圈可以看作是一个单元,而且同一颜色的单元做的事情也是一样的,x表示时间序列输入,h表示隐藏层的值,o为输出层的值,上标表示层数,下标表示时间图5.4
RNN的结构图5.2.1RNN的结构进一步,整个RNN结构可以折叠成图5.5中左半图的形式,图中U、W、V分别为前一隐藏层的输入连接权值、当前时刻的输入连接权值和当前时刻的输出连接权值。RNN在t时刻展开时,如图5.5右半图所示,从图中可以看出RNN的关键点是ht的值不仅取决于xt,还取决于ht-1。图5.5RNN结构简化图总体上讲,RNN的整体结构就是其中一个单元网络结构的重复使用,因此称为循环神经网络。相比普通的神经网络,RNN的不同之处在于其隐藏层之间的节点是有连接的,并且隐藏层的输入不仅包括输入层的输入还包括上一时刻隐藏层的输出,这使得RNN可以通过循环反馈连接保留前面所有时刻的信息,赋予了RNN记忆功能,这些特点促使RNN非常适用于对时序信号的建模和预测。5.2循环神经网络的模型5.2.1RNN的结构5.2.2RNN的训练5.2.3RNN的实现5.2.2RNN的训练RNN的训练是一种基于时间的反向传播算法(BackPropagationThroughTime,BPTT)。该算法是针对循环层设计的训练算法,它的基本原理和反向传播算法一样,包含三个步骤:1.前向计算每个神经元的输出值;2.反向计算每个神经元的误差项值,它是误差函数E对神经元J的加权输入的偏导数;3.计算每个权值的梯度,进一步用随机梯度下降算法更新连接权值。在t时刻输入xt与隐藏层ht的关系可以用以下数学公式表达:或者式中f是隐藏层激活函数,通常是非线性的,例如Tanh函数或ReLU函数,bt为偏置值。从上式可以看到,ht不仅和当时时刻的输入xt有关,也和上一时刻的隐藏层ht-1有关。在一般神经网络中,每一个网络层的参数不是共享的,而在RNN中,所有层均共享同样的参数U,W,V,只是输入不同,因此大大地减少了网络中需要学习的参数。5.2循环神经网络的模型5.2.1RNN的结构5.2.2RNN的训练5.2.3RNN的实现5.2.3RNN的实现从RNN的结构特征可以看出,它适合解决与时间序列相关的问题。可以将一个序列上不同时刻的数据依次传入RNN的输入层,而输出是对序列中下一个时刻的预测,也可以是对当前时刻信息的处理结果。RNN要求每一个时刻都有一个输入,但是不规定每一个时刻都需要有输出。RNN往前看可以获得任意多个输入值,其输出层o和隐藏层h的递归推导方法如下:如果反复把上式代入,得到:式中g是输出层激活函数,通常为Softmax函数。从上述递归推导可以看出,RNN的输出层o和输入信息xt的前t个时刻都有关,即当前时刻的输出包含了历史信息,这说明RNN对历史信息进行了保存。5.2.3RNN的实现在RNN的实现中,有几点需要注意:(1)可以将隐藏的状态ht看作网络的记忆,它捕获有关所有先前时间步骤中发生的事件的信息,输出ot根据时间t的记忆计算,但在实践中,ht通常无法从太多时间步骤中捕获信息。另外,时间t的计算依赖t-1时刻的计算结果,这样限制了模型的并行能力,同时顺序计算的过程中RNN会因为长期依赖导致信息丢失问题。(2)与每层使用不同参数的传统深度神经网络不同,RNN共享相同的参数,这反映了在每个步骤执行相同任务的事实,只是使用不同的输入,这大大减少了需要学习的参数总数。第五章
循环神经网络5.1序列的特征5.2循环神经网络的模型5.3LSTM神经网络5.4GRU神经网络5.5梯度消失和爆炸5.6RNN的应用5.3LSTM神经网络RNN的主要缺点是长期依赖问题。最有效的解决方法是进行选择性遗忘,同时也进行有选择的更新。1997年,Hochreiter和Schmidhuber提出了长短期记忆单元(LongShort
TermMemory,LSTM)神经网络,它是RNN的一种特殊类型,使用“累加”的形式计算状态,这种累加形式导致网络导数也是累加形式,从而解决了标准RNN时间维度的梯度消失问题。另外,标准RNN结构的存储上下文信息的范围有限,从而限制了RNN的应用。5.3LSTM神经网络LSTM型循环神经网络用LSTM单元替换标准结构中的神经元节点,每个LSTM单元使用输入门、输出门和遗忘门控制序列信息的传输,从而实现较大范围上下文信息的保存与传输,相比普通的RNN,LSTM能够在更长的序列中有更好的表现。普通RNN只有记忆单元(MemoryCell)用来存储所有的信息,而LSTM多了输入门、输出门和遗忘门,如图5.6所示。如何理解这里的门呢?在现实生活中,门就是用来控制进出的,门关上了,你就进不去房子了,门打开你才能进去,同理,这里的门是用来控制每一时刻信息的记忆与遗忘。也就是说,LSTM会选择性地存储信息,因为它能力强,具有门控装置,所以可以尽情地选择。图5.6
LSTM门的作用5.3LSTM神经网络5.3.1LSTM的结构5.3.2LSTM的特点5.3.1LSTM的结构所有RNN都是一个重复结构的模型。在标准的RNN中,重复结构是一个简单的循环体,一个使用普通Tanh函数的RNN可以用图5.7表示。在这里,可以看到t-1时刻的输出值ht-1被复制到了t时刻,与t时刻的输入xt整合后经过一个带权重和偏置的Tanh函数后形成输出ht,并继续将数据复制到t+1时刻......5.3.1LSTM的结构然而LSTM的循环体是一个拥有多个相互关联的全连接网络的复制结构,如图5.8所示,图中x为输入数据,h为LSTM单元的隐藏层输出,具有短期记忆功能,C为LSTM内存单元的值,能够保持长期记忆。可以将神经元的隐藏态简单理解成递归神经网络对于输入数据的"记忆",用Ct表示神经元在t时刻过后的"记忆",这个向量涵盖了在t+1时刻前神经网络对于所有输入信息的概括总结。由于隐藏态和记忆共同作用,所以称此结构为LongShort-TermMemory。5.3.1LSTM的结构LSTM利用前面提到的遗忘门、输入门和输出门三个门来管理和控制神经元的状态信息。LSTM的更新与前向传播一样,可以分为以下四个步骤:(1)遗忘门LSTM的第一步是用遗忘门(ForgetGate)来控制历史信息对当前记忆单元状态值的影响,为记忆单元提供重置的方式,即确定从上一个时刻的状态中遗忘或丢弃一些信息。具体来说,遗忘门的任务就是接收一个长期记忆Ct-1(上一个单元模块传过来的输出)并决定要遗忘Ct-1的哪个部分。比如,在语言模型中,我们想要通过一个词来预测下一个词,单元模块Ct-1中可能包含一些下一个模块单元不需要的属性,就可以将这些属性在单元模块C中遗忘。5.3.1LSTM的结构LSTM的遗忘门是一个具有
Sigmoid全连接的前馈神经网络,如图5.9所示。图5.9LSTM的遗忘门
5.3.1LSTM的结构(2)输入门:LSTM的第二步用输入门(InputGate)来控制当前输入数据对记忆单元状态值的影响,即确定哪些输入信息要保存到神经元的单元状态中。LSTM的输入门是由两个全连接前馈神经网络组成的,如图5.10所示。图5.10
LSTM的输入门
5.3.1LSTM的结构
图5.11LSTM的状态控制5.3.1LSTM的结构(4)输出门最后一步就是用输出门(OutputGate)来控制记忆单元状态值的输出,如图5.12所示。首先通过Sigmoid层生成一个过滤向量ot,来确定单元状态的哪部分需要输出,然后通过一个Tanh函数计算当前时刻的Ct状态向量,即将向量中的每个元素的范围变换到[-1,1]之间,最后,两者相乘得到输出ht。其函数关系为:图5.12LSTM的输出门5.3LSTM神经网络5.3.1LSTM的结构5.3.2LSTM的特点5.3.2LSTM的特点
根据LSTM的原理可知,主要有以下特点:(1)三个门结构:LSTM包含三个门结构,分别为输入门、遗忘门和输出门。这些门决定了信息如何进入、被存储或被遗忘,以及如何输出。(2)记忆:LSTM的核心是称为记忆的结构,它可以保留、修改或访问内部状态。通过门结构,模型可以学会在记忆中何时存储、忘记或检索信息。(3)梯度消失问题:LSTM特别擅长学习、存储和使用长期信息,从而避免了传统RNN在长序列上的梯度消失问题。5.3.2LSTM的特点
总的来说,LSTM适合时间序列建模,主要有以下原因:(1)序列数据的特性:时间序列数据具有顺序性,先前的数据点可能会影响后面的数据点,LSTM设计之初就是为了处理带有时间间隔、延迟和长期依赖关系的序列数据。(2)长期依赖:在时间序列分析中,某个事件可能会受到很早之前事件的影响,传统的RNN由于梯度消失的问题,很难捕捉这些长期依赖关系,但是LSTM结构可以有效地处理这种依赖关系。(3)记忆细胞:对于时间序列预测,能够记住过去的信息是至关重要的,LSTM的记忆细胞可以为模型提供这种存储和检索长期信息的能力。(4)灵活性:LSTM模型可以与其他神经网络结构(如CNN)结合,用于更复杂的时间序列任务,例如多变量时间序列或序列生成。第五章
循环神经网络5.1序列的特征5.2循环神经网络的模型5.3LSTM神经网络5.4GRU神经网络5.5梯度消失和爆炸5.6RNN的应用5.4GRU神经网络门控循环单元(GatedRecurrentUnit,GRU)是LSTM的一种变体,与传统的RNN不同,GRU通过一系列门控机制来控制信息的流动,以便更有效地捕捉长期依赖关系,是一种用于处理序列数据的神经网络模型,虽然GRU的实验效果与LSTM相似,但是前者更易于计算,从某种程度上,GRU也是对LSTM结构复杂化的优化。其核心思想是使用门控机制来控制信息的流动和记忆,将前一时刻的隐状态信息传递到下一时刻。相比于传统的RNN,它能够更好地处理长期依赖问题,而相比于LSTM,它的结构更简单,参数更少,计算更高效。5.4GRU神经网络5.4.1GRU的结构5.4.2GRU的特点5.4.1GRU的结构与LSTM不同的是,首先GRU只有两个门控结构,分别是重置门(ResetGate)和更新门(UpdateGate),而没有遗忘门。重置门控制要遗忘多少过去的信息,更新门控制前面记忆信息继续保留到当前时刻的数据量,或者说决定有多少前一时间步的信息和当前时间步的信息要被继续传递到未来。其次,GRU取消直接线性自更新的记忆单元,而是在隐藏单元中利用门控进行线性自更新,公式化表达如下:
5.4.1GRU的结构(1)更新门图5.13展示了更新门在整个单元的位置和运算过程。具体地,在时间步t,首先使用公式:计算更新门,其中xt为第t个时间步的输入向量,即输入信息x的第t个分量,它会经过一个线性变换(与权值矩阵Wz相乘)。ht-1保存的是前一个时间步t-1的信息,它同样也会经过一个线性变换。更新门将这两部分信息拼接并输入到Sigmoid激活函数中,通过激活函数将结果压缩0到1之间,其中0表示完全忽略之前的隐状态信息,只依赖于当前的输入信息,1表示完全保留之前的隐状态信息,因此更新门可以让网络选择性地记住或忘记之前的状态信息。图5.13
GRU的更新门也就是说,更新门的作用是帮助模型决定到底要将多少过去的信息传递到未来,或决定到底前一时间步和当前时间步的信息有多少是需要继续传递的。这一点非常重要,因为模型能决定从过去复制所有的信息以减少梯度消失的风险。(2)重置门本质上来说,重置门主要决定了到底有多少过去的信息需要遗忘,可以使用前面的公式:该表达式与更新门的表达式是一样的,ht-1和xt先经过一个线性变换,再拼接输入到Sigmoid激活函数以输出激活值,只不过与更新门线性变换的参数和用处不一样而已,图5.14展示了重置门的位置和运算过程。5.4.1GRU的结构图5.14GRU的重置门5.4.1GRU的结构(3)当前记忆内容接下去具体讨论一下这些控制门如何影响最终的输出,图5.15展示了该计算过程。在重置门的使用中,新的记忆内容将通过重置门来储存过去相关的信息,可以使用前面的公式:图5.15当前记忆内容首先计算重置门rt与ht-1的Hadamard乘积,因为前面计算的重置门是一个由0到1组成的向量,它会衡量门控开启的大小,比如某个元素对应的门控值为0,那么它就代表这个元素的信息完全被遗忘掉,即Hadamard乘积结果将确定所要保留与遗忘的以前信息。然后经过一个线性变换,即左乘权值矩阵W,同时输入xt也经过同样的一个线性变换,最后将这两部分的计算结果拼接再输入到Tanh激活函数中,其输出作为当前的记忆内容。5.4.1GRU的结构(4)当前时间步的最终记忆最后一步,网络需要计算ht,其目的是保留当前单元的信息并传递到下一个单元中。在这个过程中,需要使用更新门,它决定了当前记忆内容h和前一时间步ht-1中所收集的信息是什么。整个过程可以使用前面的公式:其中zt为更新门的激活结果,它以门控的形式控制了信息的流入。1-zt与ht-1的Hadamard乘积表示前一时间步保留到最终记忆的信息,该信息加上当前记忆保留至最终记忆的信息(zt与ht-1的Hadamard乘积)就等于最终门控循环单元输出的内容,上述表达可以用图5.16所示。图5.16当前时间步的最终记忆5.4.1GRU的结构通过门控机制,GRU能够更灵活地管理信息流动,并在每个时间步中适应序列数据的不同特征。此外,GRU不会随时间而清除以前的信息,它会保留相关的信息并传递到下一个单元,也就是说,它利用了全部信息并避免梯度消失问题,使得其在长期依赖建模和序列任务中具有优秀的性能表现。5.4GRU神经网络5.4.1GRU的结构5.4.2GRU的特点5.4.2GRU的特点根据GRU的原理可知,GRU主要有以下优点:(1)由于门控机制允许选择性信息保留和遗忘,因此比传统RNN更擅长捕获长期依赖性信息。(2)相比LSTM,GRU只有两个门控机制(重置门和更新门),结构更为简单。(3)比其他类型的RNN更少的参数,需要更少的训练时间,并且不易过度拟合。(4)可用于各种NLP任务,包括语言建模、情感分析和机器翻译。5.4.2GRU的特点GRU的缺点:(1)在需要对复杂的顺序依赖关系进行建模的任务中,它的表现可能不如LSTM。(2)门控机制的解释和网络内的信息流可能比传统的RNN更难。(3)可能需要对超参数进行一些调整以实现最佳性能。(4)在处理非常长的序列时,可能仍然会遇到与其他类型的RNN相同的问题,例如梯度消失问题。第五章
循环神经网络5.1序列的特征5.2循环神经网络的模型5.3LSTM神经网络5.4GRU神经网络5.5梯度消失和爆炸5.6RNN的应用5.5梯度消失和爆炸无论是CNN还是RNN,其基本构成都是神经网络,因此神经网络的优化不可避免会使用反向传播算法,也就是说,各网络层的梯度计算会涉及激活函数的导函数取值。随着神经网络的层数变多、结构越来越复杂,模型在训练过程中就会遇到梯度消失和梯度爆炸导致模型不能有效收敛。5.5梯度消失和爆炸梯度消失(VanishingGradient)指的是在反向传播过程中,随着网络深度的增加,梯度逐渐变得非常小,甚至接近于零,导致网络参数无法有效更新,从而训练无法进行或收敛非常缓慢。将梯度传播过程想象在爬一座很高的山(网络的层数很多),你希望通过不断得到反馈来指导向上爬得更高(训练模型)。但是,你的教练在给你反馈的时候,每次反馈的力度越来越小,就像每次告诉你“向上爬”时,给你的鼓励声越来越微弱,甚至最后变成了耳语。结果,你听不清楚反馈,甚至最终听不到任何声音,导致你根本不知道自己应该做什么,爬得越来越慢,甚至停下来不动。在深度神经网络中,梯度消失就像这种情况,网络在反向传播时,逐层的梯度(就是反馈信息)变得越来越小,最终导致网络的学习几乎停止,模型无法更新。5.5梯度消失和爆炸梯度爆炸(ExplodingGradient)是指在反向传播过程中,梯度变得非常大,导致权重更新过于剧烈,网络参数无法稳定训练,甚至可能导致数值溢出。同样类比于前面的爬山,教练给你的反馈很强烈,每次都是“爬得更快”,这听起来不错,但问题是,教练的声音越来越大,每次反馈都比前一次强烈得多。最后,你根本无法承受这么大的力量,导致你失去控制,甚至可能摔倒。在神经网络中,梯度爆炸就像这种情况,反馈的强度(梯度)变得非常大,导致网络的权重(就像你爬山时的步伐)调整得过于剧烈,训练过程变得不稳定。5.5梯度消失和爆炸
从上式就能看出,存在d-i次导数矩阵连乘,如果每一项的偏导数都大于1或者小于1,并且网络层数足够深,就会产生梯度爆炸或梯度消失的问题,就比如:5.5梯度消失和爆炸进一步分析RNN的梯度消失和梯度爆炸问题,它与CNN略有不同。CNN中不同的层有不同的参数,各是各的梯度,而RNN中同样的权重在各个时间步共享,但由于通过时间进行反向传播梯度,最终的梯度等于各个时间步的梯度的和。回顾图5.5,并结合多变量函数的链路法则,损失L关于输入权值U的梯度可表示为可以看到,在这个结果中,导数包含了T部分,其中最后一部分包含了和CNN类似的偏导相乘,这也是导致RNN梯度消失或爆炸的关键。注意,T表示总的时间步数,oT表示最后一步的输出。那为何LSTM能缓解梯度消失或梯度爆炸问题呢?这是因为LSTM构建了一条信息高速公路,允许梯度直接流动。根据图5.8,并结合链路法则,可以得到时间步t到t-k的梯度(推导过程参考相关文献)为5.5梯度消失和爆炸当网络学习到
(保留记忆)时,存在通过以上分析可知,LSTM通过细胞状态的线性记忆通道和门控的可控衰减因子,在数学本质上显著缓解了梯度消失问题。这种“以门控守护梯度”的设计思想,启发了后续GRU等架构的创新,成为网络解决时序问题的里程碑突破。5.5梯度消失和爆炸因此,网络层数的增加会加剧梯度消失或爆炸的风险,那么如何来避免或缓解这两种情况的发生呢?针对梯度爆炸问题,相对比较简单,采用的方法包括梯度裁剪和权值正则化。其中梯度裁剪的主要思想是设置一个梯度剪切阈值,然后在更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内,这样就可以防止梯度爆炸。而正则化则是通过对网络权重做正则限制过拟合来防止梯度爆炸,具体地其中λ是正则项系数,如果发生梯度爆炸,权值的范数||W||会变得非常大,通过正则化项,可以选L1范数正则或L2范数正则,可以部分限制梯度爆炸的发生,后续第12章也会专门解释正则化。5.5梯度消失和爆炸对于梯度消失问题,具体的解决方法包括:
1.
选择ReLU函数作为激活函数。这是因为ReLU函数的导数在正数部分是恒等于1,因此在深层网络中不会导致梯度消失和爆炸,然而导数的负数部分恒为0,也会导致一些神经元无法激活。2.
使用批归一化(BatchNormalization)。其是一种通过在每层的输入上对数据进行标准化来减少梯度变化的方法,它通过对当前小批次的均值和方差进行归一化,使得每一层的输入分布保持稳定,这样可以有效解决每一层的输入分布随着网络参数的更新而发生变化的现象。批归一化不仅有助于提高网络的训练速度和稳定性,还可以在一定程度上缓解梯度爆炸问题。因为通过归一化处理,每一层的输入数据的分布变得更加稳定,从而使得梯度的变化也更加平稳。3.
使用残差连接。如在前面提到的ResNet中,残差连接通过直接将输入信息传递到后续层,避免梯度过度衰减,使得梯度更容易传递到前层。4.
权重初始化。采用合适的权重初始化方法,可以有效控制梯度的大小,避免过大或过小。第五章
循环神经网络5.1序列的特征5.2循环神经网络的模型5.3LSTM神经网络5.4GRU神经网络5.5梯度消失和爆炸5.6RNN的应用5.6RNN的应用5.6.1文本生成5.6.2机器翻译5.6.3情感分析5.6.4股票预测5.6.5语音处理5.6.6图像描述5.6.1文本生成所谓的文本生成,其原理就是根据前一个字符(或前一串字符)来预测下一个字符出现的概率。文本生成是一种语言建模问题,是许多NLP任务的核心,包括语音到文本、对话系统和文本摘要。经过训练的语言模型可以根据文本中先前使用的单词序列来学习单词出现的可能性。在预测的时候需要给RNN一段初始的序列进行预训练,预训练的过程并不需要实际的输出结果,只是为了生成具有记忆的隐藏状态,然后将隐藏状态保留,传入之后的网络,不断地更新句子,直到达到要求的输出长度。如图5.17所示,生成文本的过程就是每个字不断输入网络,然后将输出作为下一次的输入,不断循环递归,因为其会无限循环下去,因此需要设置一个长度让其停止。图5.17文本生成5.6RNN的应用5.6.1文本生成5.6.2机器翻译5.6.3情感分析5.6.4股票预测5.6.5语音处理5.6.6图像描述5.6.2机器翻译经机器翻译是模拟人脑的翻译过程,近年来发展非常迅速,已经远远超过统计机器翻译,成为机器翻译的主流技术。接下去来简单描述下神经机器翻译的过程,主要包括编码和解码两个重要步骤。如图5.18所示,给定源语言句子“Growthratesaresteadyinrecentyears.”,RNN在每个时刻,根据上一个时刻的隐藏层ht-1和当前的输入xt,生成当前时刻的隐藏状态ht,并基于当前的隐藏状态预测当前时刻的可能输出,这个过程类似前面提到的文本生成。图5.18机器翻译编码过程5.6.2机器翻译具体地,机器翻译的编码过程基本如下:首先将句子里的第一个词“Growth”输入RNN,产生第一个隐藏状态h1,此时隐藏状态h1便包含了第一个词“Growth”的信息。下一步输入第二个词“rates”,RNN将第二个词的信息同第一个隐藏状态h1进行融合,产生第二个隐藏状态h2,如此则第二个隐藏状态h2便包含了前两个词“Growthrates”的信息。用同样的方法依次将源语言句子里所有的词输入网络,每输入一个词都会同前一时刻的隐藏状态进行融合,产生一个包含当前词信息和前边所有词信息的新隐藏状态。当把整个句子所有的词输入进去之后,最后的隐藏状态理论上包含了所有词的信息,便可以作为整个句子的语义向量表示,该语义向量称为源语言句子的上下文向量。5.6.2机器翻译从上面的描述可知,编码器将源语言句子编码为一个源语言句子的上下文向量,解码器的任务就是根据编码器生成的该上下文向量,生成目标语言句子的符号化表示,如图5.19所示。图5.19机器翻译解码过程具体地,给定源语言的上下文向量,解码器首先产生第一个隐藏状态s1,并基于该隐藏状态预测第一个目标语言词“近”,然后第一个目标语言词“近”会被作为下一个时刻的输入,连同第一个隐藏状态s1以及上下文向量Ct,来产生第二个隐藏状态s2,该隐藏状态s2包含了目标语言句子第一个词“近”的信息和源语言句子的信息,并用来预测目标语言句子第二个词“几年”。第二个目标语言词“几年”会被再次作为输入来产生第三个隐藏状态,如此循环下去,直到预测到一个句子的结束符</S>为止。5.6RNN的应用5.6.1文本生成5.6.2机器翻译5.6.3情感分析5.6.4股票预测5.6.5语音处理5.6.6图像描述5.6.3情感分析情感分析在第1章中也简单提到,其是一种将自然语言文本情感进行分类或分析的技术,意在提炼出一句话中的感情色彩,比如高兴,普通,惊讶,伤心,愤怒等。但一般为了简化问题,会将这些感情划分为3类:积极、中立和消极,如图5.20所示。因此可以将情感分析任务建模成一个文本三分类问题。图5.20情感分析5.6.3情感分析以下是一个情感分析的例子:假设有一条电影评论:“这部电影真是太棒了!剧情扣人心弦,演员表演精彩,完全值得一看。”情感分析的目标是判断这条评论是积极的、消极的还是中性的,这里就可以通过情感分析技术将这个过程自动化。对于这个例子,情感分析模型可能会将其归类为积极情绪,因为评论中使用了诸如“太棒了”、“扣人心弦”、“精彩”等积极的词汇。具体地,首先需要把文本数据进行分词和向量化处理,其目的是能够将文本数据转化为数字形式,便于RNN进行处理。然后,需要构建RNN,在网络中设置一个或多个循环神经元作为输入,数值型的情感标签作为输出。在训练过程中,使用标注好的数据对RNN进行训练,通过调整网络的参数,使其能够更好地对情感进行分类。一旦网络训练完成,直接输入待判别的文本数据,RNN将输出所对应的情感类别。情感分析的应用范围非常广泛,除了电影评论之外,它还可以应用于社交媒体分析、产品评论分析、舆情监控等领域。例如,企业可以利用情感分析来分析用户在社交媒体上对其产品的评论,从而了解用户的情感倾向和对产品的反馈,以做出相应的调整和改进。5.6RNN的应用5.6.1文本生成5.6.2机器翻译5.6.3情感分析5.6.4股票预测5.6.5语音处理5.6.6图像描述5.6.4股票预测当将RNN应用于股票预测时,通常采用时间序列数据作为输入,包括历史股票价格、交易量和其他相关指标。假设想要预测某支股票未来一个月的价格走势,可以收集过去几年该股票的每日交易数据,包括开盘价、收盘价、最高价和最低价等信息,然后将这些数据组织成时间序列,作为RNN的输入来训练网络。对于RNN的选择,可以使用简单的结构,如LSTM或GRU,也可以使用更复杂的结构,如多层堆叠的LSTM。一旦网络训练完成,就可以使用它对未来一个月的股票价格进行预测。具体来说,先将过去一个月的股票交易数据作为当前网络输入,然后使用网络生成下一个时间步的预测值。通过不断迭代这个过程,可以获得一个未来一个月的股票价格预测序列。需要注意的是,股票市场的波动受到许多因素的影响,包括经济指标、公司业绩、行业发展、全球事件等。因此,股票预测并不是一件简单的事情,很难做到百分之百准确。然而,通过使用RNN等深度学习技术,可以利用大量的历史数据和相关因素来辅助预测,提高预测的准确性和可靠性。5.6RNN的应用5.6.1文本生成5.6.2机器翻译5.6.3情感分析5.6.4股票预测5.6.5语音处理5.6.6图像描述5.6.5语音处理当将RNN应用于语音信号转换为文本时,通常也会使用LSTM或GRU等结构。假设有一段包含某人说话的音频文件,目标是将这段音频中的语音内容转换为文字,以实现语音识别的功能。首先需要对音频文件进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年会计从业资格考试初级会计实务高频考点题库
- 2026生物多样性保护国际合作项目融资模式创新设计及绿色债券投资分析
- 2026中国物联网终端设备市场渗透率与增长潜力研究报告
- 2026汽车零部件制造业投资价值分析和融资方案设定
- 2026上海化工行业市场现状供需分析及投资评估规划分析研究报告
- 2026人工智能产业链现状全面调研与产业融合趋势和商业机会研究分析报告
- 令复旦困惑的试题及答案揭晓
- 2026中国无人机应用行业市场现状竞争分析及发展价值评估报告
- 2026中国新能源汽车保险产品创新与市场发展前景报告
- 2026中国新能源金融消费者行为特征与产品设计策略报告
- 2026年心理健康全科专任小学教师招聘考试笔试试题(含答案)
- 2026年新疆第三师图木舒克市高校毕业生“三支一扶”计划招募(347人)笔试参考试题及答案详解
- 2026年三支一扶考试综合基础知识考试卷及答案(六)
- 2026-2030中国减肥市场发展动向分析与未来营销创新策略研究报告
- 高标准农田建设项目监理服务方案投标文件(技术方案)
- 新生儿灌肠操作规范
- 医院供氧中心工作制度
- GB/T 46585-2025建筑用绝热制品试件线性尺寸的测量
- 工作中秘密管理暂行办法
- 童话故事创意写作训练教案
- GB/T 25606-2025土方机械产品识别代码系统
评论
0/150
提交评论