APP下载

循环神经网络概述

2020-12-08马姝颖王平陈妮文荣

科学导报·学术 2020年88期

马姝颖 王平 陈妮 文荣

【摘  要】循环神经网络(RNN)[1]是一类以序列数据为输入,在序列的演进方向进行递归,且所有节点按链式连接的递归神经网络,具有记忆性、参数共享等特点。基于简单循环网络,加上门控算法、深度算法、外部记忆等算法,循环神经网络有了很多变体。目前循环神经网络及其变体已经广泛应用在自然语言处理、各类时间序列预测等领域。

【关键词】循环神经网络、长短时记忆网络、门控循环单元

循环神经网络概述

近年来,随着计算机科学技术与硬件设备的蓬勃发展,神经网络逐渐成为人工智能领域中的研究热点。最基础的神经网络是全连接网络(FCNN),它假设所有的输入间是相互独立的,因此FCNN只能单独处理一个个的输入,无法处理在时间或空间上有前后关联的输入问题[2]。然而许多学习任务都需要处理序列的信息,比如你想预测一个句子的下一个词,之前的词对后面的预测是有帮助的,这种情况下FCNN就不能很好的进行预测。为了应对序列输入的需求,循环神经网络(RNN)应运而生。

1.循环神经网络(Recurrent Neural Network,RNN)

RNN被称为循环(Recurrent)的原因就是它会对一个序列的每一个元素执行同样的操作,并且前一个输入和后一个输入是有关系的。我们可以认为RNN有一些“记忆”能力,它能捕获之前计算过的一些信息。RNN的结构图如图1所示。

图1中,右方是左方图的展开形式,是t时刻的输入,是t时刻的隐状态,是t时刻的输出。通过以上结构图,可以发现RNN有以下特点:1)对于每一个时刻t,都有来自前面时刻t-1的信息,并加上权重用于控制;2)可以看成是网络的“记忆”,它捕获了从开始到前一个时刻的所有(感兴趣)的信息,输出的是只基于当前时刻的记忆。3)传统的神经网络每层使用不同的参数,而RNN的参数(图1中的U、V、W)是在所有时刻共享的。4)RNN有隐状态(记忆),它能捕获一个序列的信息。

2.双向循环神经网络(Bidirectional RNNs,BRNN)

在RNN网络中,任一时刻处理时,只参考或获取了前面时刻的特征,序列后方的信息特征没有学习到,这无疑会造成问题,所以又出现了双向循环神经网络(BRNN)。BRNN的结构很简单,它就是两个RNN堆叠在一起,t时刻的输出不但依赖于之前的元素,而且还依赖之后的元素。比如,我们做完形填空,在句子中“挖”掉一个词,我们想预测这个词,我们不但会看前面的词,也会分析后面的词。

BRNN解决了如何学习序列后面时刻特征的问题,但是无法解决RNN训练过程中出现的梯度爆炸和梯度消失问题。1)梯度消失:随着时间跨度增加,梯度会以指数级收敛于0,导致我们的神经网络中前面层的网络权重无法得到更新,学习停止。2)梯度爆炸:每一步的梯度更新可能会积累误差,最终梯度变得非常大,以至于RNN的权值进行大幅更新,程序将会收到NaN错误。一般而言,梯度爆炸问题可以通过设置一个阈值来截取超过该阈值的梯度解决,而梯度消失的问题很难检测,通常通过使用RNN各种变体来应对,例如长短期记忆网络和门控循环单元。

3.长短时记忆网络(Long Short Term Memory,LSTM)

由于存在梯度消失問题,RNN只能有短期记忆。LSTM是一种特殊的RNN网络,它使用门控(Gate)的机制来解决“长期依赖”的问题。门控是一种可选地让信息通过的方式,它由一个Sigmoid神经网络层和一个点乘法运算组成。Sigmoid神经网络层输出0和1之间的数字,这个数字描述每个组件有多少信息可以通过,0表示不通过任何信息,1表示全部通过。LSTM单元中有三种类型的门控,分别为:输入门、遗忘门和输出门,LSTM对信息的存储和更新正是由这些门控来实现,如下图所示。

4.门控循环单元(Gated Recurrent Unit,GRU))

LSTM存在很多变体,其中较流行的一种就是GRU。GRU使用门控机制学习长期依赖关系的基本思想和LSTM一致,但还是有一些关键区别,如LSTM有三个门,而GRU只有两个门。GRU把LSTM的遗忘门和输入门合并成一个更新门,更新门定义了前面记忆保存到当前时刻的量;GRU没有输出门,有一个重置门,重置门决定了如何将新的输入信息与前面的记忆相结合。由于GRU与LSTM的实验效果相似,且更易于计算,目前已被广泛使用到各个应用中。

总结与展望

本文简述了RNN的结构及其各种变形,旨在为刚进入该领域的初学者提供参考资料。在RNN的未来发展中,需要通过改变RNN的参数、结构等方法来适应不同的应用需求,从而使RNN广泛应用到NLP的众多领域。

参考文献:

[1]Lipton Z C. A Critical Review of Recurrent Neural Networks for Sequence Learning[OL].(2015)[2019]. https://arxiv. org / abs/1506.00019v1.

[2]夏瑜潞. 循环神经网络的发展综述[D]. 电脑知识与技术,2019,15(21)

项目支持:

成都工业学院校级项目:基于机器学习的声纹识别关键技术研究(编号:2021ZR026)。