递归神经网络(recursive neural network)是具有树状阶层结构且网络节点按其连接顺序对输入信息进行
递归的
人工神经网络(Artificial Neural Network, ANN),是
深度学习(deep learning)算法之一。
历史
递归神经网络是面向
自然语言处理(Natural Language Processing, NLP)研究提出的连接主义(connectionist)模型,其早期工作包括
循环神经网络的全连接形式,即Elman网络、David Rumelhart和James McClelland提出的交互激励模型(interactive activation model)和Alan Kawamoto在双语词量接触(Bilingual lexical access)中建立的
语音学阶层特征。递归神经网络在1990年由美国学者Jordan B. Pollack提出以解决语言建模(language modeling)中数据结构的表征问题。递归神经网络的最初版本为平衡的
二叉树结构,但在发展中逐渐转变为按信息组织结构。
结构
递归神经网络的核心部分由阶层分布的节点构成,其中高阶层的节点为父节点,低阶层的节点被称为子节点,最末端的子节点通常为输出节点,节点的性质与
树中的节点相同。在文献中,递归神经网络的输出节点通常位于树状图的最上方,此时其结构是自下而上绘制的,父节点位于子节点的下方。递归神经网络的每个节点都可以有数据输入,对第阶层的节点,其系统状态的计算方式如下:
式中为该节点和其所有父节点的的系统状态(system status),在有多个父节点时,是合并为矩阵的系统状态,是该节点的数据输入,若该节点没有输入则不进行计算。为激励函数或封装的
前馈神经网络,后者对应门控算法和一些深度算法。权重系数,注意到权重系数与节点的阶层无关,即递归神经网络所有节点的权重是共享的。
递归神经网络支持单输出和多输出。在单输出模式下,其最末端子节点的系统状态会通过输出函数(例如分类器)得到结果。多输出模式下递归神经网络的输出取决于拓扑结构,在理论上其任意一个节点的系统状态都可以参与输出。
理论
递归神经网络可以使用
监督学习和
非监督学习理论进行训练。在监督学习时,递归神经网络使用
反向传播算法(Back-probagation, BP)更新权重参数,计算过程可类比
循环神经网络的随时间反向传播(BP Through Time, BPTT)算法。非监督学习的递归神经网络被用于结构信息的
表征学习(feature learning),其中最常见的组织形式是递归自编码器(Recursive Auto-Encoder, RAE)。
算法
长短期记忆
长短期记忆(英语:Long Short-Term Memory,LSTM)是一种时间递归神经网络(RNN),论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测
时间序列中包含长距离依赖的问题。
LSTM的表现通常比时间递归神经网络及隐马尔科夫模型(HMM)更好,比如用在不分段连续
手写识别上。2009年,用LSTM构建的人工神经网络模型赢得过ICDAR手写识别比赛冠军。LSTM还普遍用于自主
语音识别,2013年运用
TIMIT自然演讲数据库达成17.7%错误率的纪录。作为
非线性模型,LSTM可作为复杂的非线性单元用于构造更大型
深度神经网络。
LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为它可以记忆不定时间长度的数值,区块中有一个gate能够决定input的信息是否能被提取及能不能被输出output。
如某图底下是四个S函数单元,最左边函数依情况可能成为区块的input,右边三个会经过gate决定input是否能传入区块,左边第二个为input gate,如果这里产出近似于零,将把这里的值挡住,不会进到下一层。左边第三个是forget gate,当这产生值近似于零,将把区块里记住的值忘掉。第四个也就是最右边的input为output gate,他可以决定在区块记忆中的input是否能输出 。
LSTM有很多个版本,其中一个受到关注的版本是GRU(Gated Recurrent Unit),根据谷歌的测试表明,LSTM中对学习贡献较大的是Forget gate,其次是Input gate,最次是Output gate。
结构递归神经网络(Recursive)
结构递归神经网络是一类用结构递归的方式构建的网络,比如说递归自编码机(Recursive Autoencoder),在自然语言处理的神经网络分析方法中用于解析语句。