循环神经网络
订阅
循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)
[1]
。对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一
[2]
,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络
[3]
。循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势
[4]
。循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convoutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
展开全文

循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)
[1]
。对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一
[2]
,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络
[3]
。循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势
[4]
。循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convoutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
信息
- 外文名
- Recurrent Neural Network, RNN
- 提出时间
- 1986-1990年
- 提出者
- M. I. Jordan,Jeffrey Elman
- 类 型
- 机器学习算法,神经网络算法
- 中文名
- 循环神经网络
- 应 用
- 自然语言处理,计算机视觉
- 所属学科
- 人工智能
循环神经网络历史
1933年,西班牙神经生物学家Rafael Lorente de Nó发现大脑皮层(cerebral cortex)的解剖结构允许刺激在神经回路中循环传递,并由此提出反响回路假设(reverberating circuit hypothesis)
[5]
。该假说在同时期的一系列研究中得到认可,被认为是生物拥有短期记忆的原因
[6-7]
。随后神经生物学的进一步研究发现,反响回路的兴奋和抑制受大脑阿尔法节律(α-rhythm)调控,并在α-运动神经(α-motoneurones )中形成循环反馈系统(recurrent feedback system)
[8-9]
。在二十世纪70-80年代,为模拟循环反馈系统而建立的一些数学模型为RNN带来了启发
[10-12]
。1982年,美国学者John Hopfield基于Little (1974)
[12]
的神经数学模型使用二元节点建立了具有结合存储(content-addressable memory)能力的神经网络,即Hopfield神经网络
[13]
。Hopfield网络是一个包含递归计算和外部记忆(external memory)的神经网络,其内部所有节点都相互连接,并使用能量函数进行非监督学习
[14]
。1986年,Michael I. Jordan在分布式并行处理(parallel distributed processing)理论下提出了Jordan网络
[15]
。Jordan网络的每个隐含层节点都与一个状态单元(state units)相连以实现延时输入,并使用logistic函数作为激励函数
[15]
。Jordan网络使用反向传播算法(Back-Probagation, BP)进行学习,并在测试中提取了给定音节的语音学特征
[15]
。之后在1990年,Jeffrey Elman提出了第一个全连接的RNN,即Elman网络
[16]
。Jordan网络和Elman网络都从单层前馈神经网络出发构建递归连接,因此也被称为简单循环网络(Simple Recurrent Network, SRN)
[4]
。在SRN出现的同一时期,RNN的学习理论也得到发展。在反向传播算法被提出后
[17]
,学界开始尝试在BP框架下对循环神经网络进行训练
[15]
[2]
[18]
。1989年,Ronald Williams和David Zipser提出了RNN的实时循环学习(Real-Time Recurrent Learning, RTRL)
[19]
。随后Paul Werbos在1990年提出了随时间反向传播算法(BP Through Time,BPTT)
[20]
。1991年,Sepp Hochreiter发现了循环神经网络的长期依赖问题(long-term dependencies problem),即在对长序列进行学习时,循环神经网络会出现梯度消失(gradient vanishing)和梯度爆炸(gradient explosion)现象,无法掌握长时间跨度的非线性关系
[21-22]
。为解决长期依赖问题,RNN的改进不断出现,较重要的包括Jurgen Schmidhuber及其合作者在1992和1997年提出的神经历史压缩器(Neural History Compressor, NHC)
[23]
和长短期记忆网络(Long Short-Term Memory networks, LSTM)
[24]
,其中包含门控的LSTM受到了关注。同在1997年,M. Schuster和K. Paliwal提出了具有深度结构的双向循环神经网络(Bidirectional RNN, BRNN),并对其进行了语音识别试验
[25]
。双向和门控构架的出现提升了RNN的学习表现,在一些综述性研究中,被认为是RNN具有代表性的研究成果
[2]
。十一世纪后,随着深度学习理论的出现和数值计算能力的提升,拥有更高复杂度的RNN开始在自然语言处理问题中得到关注。2005年,Alex Graves等将双向LSTM应用于语音识别,并得到了优于隐马尔可夫模型(Hidden Markov Model, HMM)的表现
[26]
。2014年,K. Cho提出了门控循环单元网络(Gated Recurrent Unit networks, GRU),该方法是LSTM之后另一个受到关注的RNN门控构架
[27]
。2010年,Tomas Mikolov及其合作者提出了基于RNN的语言模型
[28]
[29]
。2013-2015年, Y. Benjo、D. Bahdanau等提出了编码器-解码器、自注意力层等一系列RNN算法,并将其应用于机器翻译问题
[30-31]
。为语言模型设计的RNN算法在随后的研究中启发了包括ransformers、XLNet、ELMo、BERT等复杂构筑
[32-34]
。
收藏数
10,316
精华内容
4,126