循环神经网络

以序列数据为输入的递归神经网络
循环神经网络(Recurrent Neural Network,RNN),是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。[1]RNN具有权重共享的特性,[5]一个完全连接的循环神经网络可以近似解决所有可计算问题,[6]此外,RNN也具有记忆更新的特性,即由上一时刻的隐含状态和本时刻的输入来共同更新新的记忆。[7]
循环神经网络的早期研究始于20世纪80年代。1982年,约翰·霍普菲尔德引入了Hopfield网络,标志着RNN研究的开始。[4]随后,RNN进入了以长短期记忆网络(LSTM)和双向循环神经网络(BRNN)为主的发展阶段。在这一时期,RNN训练的不稳定性和高技术要求成为了当时普遍的看法。到了2010年,RNN展现出在语言建模、机器翻译、数据压缩和语音识别等领域的显著能力,开启了其第三个发展阶段。特别是2014年,艾利克斯·格雷夫斯及其同事在神经图灵机(NTM)[a]上的研究,以及2015年约林和米列夫斯基在堆叠RNN[b]上的工作,进一步推动了RNN技术的进步。[8]
循环神经网络由输入层、输出层和隐藏层组成,每层有时间反馈循环,[9]其扩展结构包括双向循环神经网络、深度循环神经网络、长短时记忆网络和门控循环单元等,[10][11]可通过随时间反向传播算法梯度下降算法等方式进行训练。[12][13]此外,循环神经网络广泛应用于自然语言处理、临床分割技术、风险预测等领域。[1][2][3]但是RNN也面临着梯度消失和梯度爆炸等挑战。[4]

历史沿革

背景