APP下载

递归神经网络研究综述*

2021-05-11王雨嫣廖柏林印煜民

关键词:变体时刻神经网络

王雨嫣,廖柏林,彭 晨,李 军,印煜民

(1.吉首大学数学与统计学院,湖南 吉首 416000;2. 吉首大学信息科学与工程学院,湖南 吉首 416000)

近些年,深度学习技术发展迅速,被广泛应用于数据信息提取中.神经网络分类有很多种,如深度神经网络(Deep Neural Networks, DNN)、卷积神经网络(Convolutional Neural Networks, CNN)、递归神经网络(Recurrent Neural Network, RNN)等[1].通常CNN和DNN等深度学习无法处理时间序列数据,因为它们都是单个输入并与相应输出对应,即上一时刻的输入信息无法对当前输入产生影响.而在包含连续数据的研究领域,如文本、音频和视频等都要求模型序列输入学习,因此在这种需要处理序列数据的情况下,递归神经网络便应运而生了[2].RNN体系结构的典型特征是循环连接,它使得RNN能够根据历史输入和当前输入的数据更新当前状态,即所有输入会对未来输出产生影响.如完全RNN[3,5]和选择性RNN[6],在一些问题上都取得了令人难以置信的成功.不幸的是,当相关输入数据之间的差距较大时,完全RNN和选择性RNN无法连接相关信息.为了处理“长期依赖性”,Hochreiter等[7]提出了长短期记忆(Long Short-Term Memory, LSTM)来解决这一问题.之后,LSTM被应用于各种场景,包括语音识别、声学建模和轨迹预测等.笔者首先简述了RNN以及LSTM及其几种变体的基本工作原理和特点,然后介绍了RNN和LSTM在自然语言处理、计算机视觉及其他研究领域中的应用,最后对RNN未来的发展方向进行了分析总结.

1 递归神经网络

1.1 单向RNN

RNN用于处理序列数据,允许历史输入信息存储在网络的内部状态中,因此能够将所有的历史输入数据映射到最终输出.RNN的结构如图1所示.

图1 RNN结构示意Fig. 1 Illustration of RNN

由图1可见,RNN由输入层、输出层和隐藏层组成[2].x表示输入值,h表示隐藏层的值,o表示输出值,U,W,V分别代表输入层到隐藏层权值、隐藏层权值、隐藏层到输出层权值[2].由RNN的展开图可以看出,在t时刻,网络输入值、隐藏值、输出值分别为xt,ht,ot.值得注意的是,当前的ht由2个量决定,即当前输入xt和前一时刻隐藏值ht-1[2].由此,可得RNN的计算方法:

其中g和f均为激励函数.(1)式为输出层计算公式,(2)式为隐藏层计算公式.反复将(2)式代入(1)式,可得

ot=g(Vht)=f(Uxt+Wht-1)=Vf(Uxt+Wf(Uxt-1+Wht-2))=Vf(Uxt+Wf(Uxt-1+

Wf(Uxt-2+Wht-3)))=Vf(Uxt+Wf(Uxt-1+Wf(Uxt-2+Wf(Uxt-3+…)))).

(3)

从(3)式可知,RNN网络输出值ot受当前输入xt和历史输入xt-1,xt-2,xt-3,….的影响,因此RNN可以往前看任意个输入值.

1.2 双向RNN

在某些情况下,输出值除了受前面历次输入值的影响之外,可能还受未来时刻输入值的影响.例如:“我的水杯坏了,我打算____一个新水杯.”若只考虑前面输入,则可能存在“扔”“买”等情况,但若考虑到横线后面“新水杯”这一信息,则能准确判断出横线处填“买”.针对这种情况,由(3)式可以看出,单向RNN只能向前看任意个输入值,无法对此进行建模,于是Schuster等[8]提出了双向递归神经网络(Bidirectional Recurrent Neural Networks,BRNN)来解决这一问题.BRNN的结构如图2所示.

图2 BRNN结构示意Fig. 2 Illustration of BRNN

由图2可见,BRNN有2个隐藏层,比RNN多了1层网络,一层参与正向计算,另一层参与反向计算,最终输出值o由A与A′之和来决定[8].考虑输入x2,BRNN的计算方法可表示为

A2=f(WA1+Ux2),

(4)

从(4)式可知,理论上,RNN有能力处理序列数据这样的长期依赖关系,但在实践过程中,RNN存在梯度消失和爆炸问题,无法完成这项任务.为了解决梯度消失和爆炸问题,改进型的RNN,即LSTM出现了.

2 LSTM及其变体

2.1 LSTM

RNN在训练过程中会出现梯度消失和爆炸问题,无法处理很长的输入序列,即RNN存在短期记忆问题,为了解决这一问题, Hochreiter等[7]引入了LSTM模型.

RNN隐藏层只有1个h状态,对短期输入更有效.LSTM在RNN的基础上增添了1个单元状态(cell state)c,用以保存长期状态[7],如图3所示.将图3按时间维度展开得到图4.由图4可见,在t时刻,一个LSTM单元有3个输入、2个输出,其中xt表示t时刻输入,ht-1表示t-1时刻LSTM输出,ct-1表示t-1时刻单元状态,ht表示t时刻单元输出,ct表示时刻单元输出.

图3 LSTM示意Fig. 3 Illustration of LSTM

图4 LSTM按时间维度展开Fig. 4 LSTM Expanded by Time Dimension

图5详细展示了LSTM的内部连接.由图5,LSTM单元的数学表达式为

图5 LSTM单元结构和连接Fig. 5 LSTM Cell Architecture and Connections

2.2 GRU

LSTM单元的学习能力与标准递归单元相当,但额外的参数无疑增加了计算负担,因此Cho等[8]引入了门控递归单元(Gated Recurrent Unit, GRU).GRU单元的结构和连接细节如图6所示.由图6,GRU单元的数学表达式为

图6 GRU单元结构和连接Fig. 6 GRU Cell Architecture and Connections

2.3 MGU

为了进一步减少单元参数的个数,Zhou等[13]提出了最小门控单元(Minimal Gated Unit,MGU),它只有1个门,其结构如图7所示.由图7,MGU单元的数学表达式为

图7 MGU单元结构和连接Fig. 7 MGU Cell Architecture and Connections

另外,还存在其他类型的LSTM变体,它们与通过减少门功能来修改LSTM单元参数的变体不同.如Rahman等[15]在LSTM单元中加入1个受生物启发的变体,提出了生物学变体LSTM,通过仅改变单元状态的更新来提高单元容量.又如Pulver等[16]引入了具有工作记忆的LSTM,用功能层代替遗忘门,功能层输入由之前的存储单元值决定.尽管引入了变体和类似的神经单元,但是它们只能用于1个或某些特定的数据集.目前,没有任何一种单元变体能整体胜过LSTM单元,可以说LSTM仍是深度学习的重点.

3 应用

3.1 自然语言处理

自然语言数据是一种典型的序列数据,RNN因具存储特性,可以处理前后输入有关系的序列数据,因此RNN是解决各种自然语言处理(Natural Language Processing, NPL)问题的重要算法,包括语音识别、机器翻译和文本分类等[17].

3.1.1 语音识别 语音识别技术也称自动语音识别,其难点在于输入的语音序列的位置是未知的.RNN与联结主义时间分类(Connectionist Temporal Classification,CTC)的结合是语音识别技术里最具影响力的深度学习技术之一[18].与CNN和自动编码器相比,RNN具有接收不定长序列数据作为输入的优点,且具有记忆功能.Graves等[19]研究了深度递归神经网络,将深度网络中已被证明非常有效的多层次表示与CTC结合起来,经过端到端的训练和适当的正则化处理后,发现深长短时记忆参数在时间音素识别上有效.之后,Graves等[20]设计了一种基于深度双向LSTM递归神经网络结构和CTC目标函数相结合的语音识别系统,它不需要中间的语音表示,直接用文本来转录音频数据.Amodei等[21]用神经网络取代整个手工设计组件的管道,提出了一种端到端的深度学习方法,这种端到端学习允许处理各种各样的语言.

3.1.2 机器翻译 区别于统计翻译法的神经机器翻译方法,RNN也是目前机器翻译的主流算法之一.Bahdanau等[22]将卷积n元模型与循环神经网络相结合进行机器翻译,翻译模型完全基于单词、短语和句子的连续表示,而不依赖对齐或短语翻译单元.Cho等[8]设计了新的神经网络模型RNN编解码器,它由2个递归神经网络组成,一个RNN 将符号序列编码成固定长度的矢量表示,另一个RNN将该矢量表示解码成另一个符号序列,该模型的编码器和解码器被联合训练,使得给定源目标序列的条件概率最大化.Zhang等[23]取消了训练中仅使用ground truth单词的做法,改用概率采样,以一定的概率从模型预测结果Oracle Word和ground truth中选择其一作为当前步的输入,从而一定程度上消除了机器翻译中存在的曝光偏差问题和过度矫正问题带来的影响.

3.1.3 文本分类 文本分类是许多NPL程序的基础任务,除了经典的CNN、贝叶斯分类器等算法,RNN也成功地应用于文本分类.传统的文本分类器往往依赖于许多人为设计的特征,如字典、知识库和特殊的树内核.Lai等[24]引入了一种没有人为特征的递归卷积神经网络(Recurrent Convolutional Neural Network, RCNN)文本分类方法,它可以在时间复杂度为O(n2)的前提下,提升文本分类的准确率.Yang等[25]设计了一个层次注意网络来进行文档分类,该模型有2个显著的特点:(1)采用“词-句子-文章”的结构反映文档层次结构;(2)在单词和句子层次上有2个注意机制,使模型能够在构建文档表示时区别地注意重要和不重要的内容.

3.2 计算机视觉

RNN与CNN相结合的系统在计算机视觉中也有一定的应用.例如,在文本识别(Text Recognition)中,CNN用于从包含字符的图像中提取特征,并将这些特征输入LSTM中进行序列标注[26];对基于视频的计算机视觉问题,如行为认知中,RNN可以利用CNN逐帧提取的图像特征进行学习[27];Karpathy等[28]构建了一个生成图像及其区域的自然语言描述的模型,利用图像数据集及句子描述来了解语言与视觉数据之间的模态对应关系,该对齐模型基于一个新组合方式,即“图像区域上利用CNN模型+句子上利用双向RNN模型+通过多模态嵌入来对齐2种模式输入的结构化目的”.

3.3 其他

在计算生物学领域,深度RNN用于分析包含生物信息的各种序列数据,如在DNA序列中划分外显子和内含子的断裂基因[29],通过RNA序列识别小分子RNA[30],利用蛋白质序列预测蛋白质亚细胞定位[31]等.

在地球科学领域,RNN被用于时间序列的建模.例如,Kordmahalleh等[32]建立了一种具有灵活拓扑的稀疏RNN,用于大西洋飓风的轨迹预测;Fang等[32]首次将LSTM应用于水文学,建立了一种以气候强迫、模型模拟湿度和静态地学属性为输入的土壤水分主动/被动(Soil Moisture Active Passive, SMAP)三级土壤水分数据预测系统,该系统通过模型模拟消除了大部分偏差,同时改善了湿度气候学的预测精度.

在其他领域,有学者对RNN进行优化,使得神经网络模型加速收敛、抗噪声等.如向秋红等[34]将传统梯度神经网络(Gradient Neural Network, GNN)模型与张神经网络(Zhang Neural Network, ZNN)模型相结合,构建了新型的新型神经网络(New Neural Network,NNN)模型,并将其用于在不同环境中求解时变矩阵 M-P 逆;张永胜等[35]在传统RNN模型的基础上引入双符号幂激励函数,构建了有限时间收敛的RNN模型,并将其用于求解二次最小化问题.

4 结语

RNN因具存储特性,可以处理前后输入有关系的序列数据,在自然语言处理等领域有广泛的应用.尽管目前关于RNN的研究已经非常深入,但在很多方面仍有较大的进步空间.如机器翻译方面,目前机器翻译仅仅满足日常化翻译,而专业文献、人文历史等专业化领域的翻译效果不佳,尚无法取代人工翻译;又如改进现有LSTM方面,可以考虑降低计算成本和提高预算精确度等,从而在实际应用中实现更大的价值.针对解决不同的问题,可以通过构建新型高效的激励函数、减少RNN参数等方法来优化网络模型,促进RNN的发展.

猜你喜欢

变体时刻神经网络
基于神经网络的船舶电力系统故障诊断方法
Delta-omicron混合变体被证实
基于DDPG算法的变体飞行器自主变形决策
MIV-PSO-BP神经网络用户热负荷预测
冬“傲”时刻
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
捕猎时刻
基于神经网络的中小学生情感分析
耀变体的分类及辐射模型
耀变体的分类及辐射模型