循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。
对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络 。 (推荐学习:web前端视频教程)
循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势。
循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。
引入了卷积神经网络(Convoutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
在SRN出现的同一时期,循环神经网络的学习理论也得到发展。在反向传播算法的研究受到关注后 [18] ,学界开始尝试在BP框架下对循环神经网络进行训练 。
1989年,Ronald Williams和David Zipser提出了循环神经网络的实时循环学习(Real-Time Recurrent Learning, RTRL)。随后Paul Werbos在1990年提出了循环神经网络的随时间反向传播(BP Through Time,BPTT),RTRL和BPTT被沿用至今,是循环神经网络进行学习的主要方法。
1991年,Sepp Hochreiter发现了循环神经网络的长期依赖问题(long-term dependencies problem),即在对序列进行学习时,循环神经网络会出现梯度消失(gradient vanishing)和梯度爆炸(gradient explosion)现象,无法掌握长时间跨度的非线性关系 。
为解决长期依赖问题,大量优化理论得到引入并衍生出许多改进算法,包括神经历史压缩器(Neural History Compressor, NHC) 、长短期记忆网络(Long Short-Term Memory networks, LSTM) 、门控循环单元网络(Gated Recurrent Unit networks, GRU) 、回声状态网络(echo state network)、独立循环神经网络(Independent RNN)等。
以上是什么是一种处理时序数据的神经网络的详细内容。更多信息请关注PHP中文网其他相关文章!