精华内容
下载资源
问答
  • 递归神经网络
    2020-05-09 19:24:25

    递归神经网络是啥

    因为神经网络的输入层单元个数是固定的,因此必须用循环或者递归的方式来处理长度可变的输入。循环神经网络实现了前者,通过将长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理。一个典型的例子是,当我们处理一句话的时候,我们可以把一句话看作是词组成的序列,然后,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出。如此,我们就能处理任意长度的句子了。入下图所示:

    然而,有时候把句子看做是词的序列是不够的,比如下面这句话『两个外语学院的学生』:

    上图显示了这句话的两个不同的语法解析树。可以看出来这句话有歧义,不同的语法解析树则对应了不同的意思。一个是『两个外语学院的/学生』,也就是学生可能有许多,但他们来自于两所外语学校;另一个是『两个/外语学院的学生』,也就是只有两个学生,他们是外语学院的。为了能够让模型区分出两个不同的意思,我们的模型必须能够按照树结构去处理信息,而不是序列,这就是递归神经网络的作用。当面对按照树/图结构处理信息更有效的任务时,递归神经网络通常都会获得不错的结果

     

    递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量距离更近。也就是说,如果两句话(尽管内容不同)它的意思是相似的,那么把它们分别编码后的两个向量的距离也相近;反之,如果两句话的意思截然不同,那么编码后向量的距离则很远。如下图所示:

    从上图我们可以看到,递归神经网络将所有的词、句都映射到一个2维向量空间中。句子『the country of my birth』和句子『the place where I was born』的意思是非常接近的,所以表示它们的两个向量在向量空间中的距离很近。另外两个词『Germany』和『France』因为表示的都是地点,它们的向量与上面两句话的向量的距离,就比另外两个表示时间的词『Monday』和『Tuesday』的向量的距离近得多。这样,通过向量的距离,就得到了一种语义的表示。

     

    尽管递归神经网络具有更为强大的表示能力,但是在实际应用中并不太流行。其中一个主要原因是,递归神经网络的输入是树/图结构,而这种结构需要花费很多人工去标注。想象一下,如果我们用循环神经网络处理句子,那么我们可以直接把句子作为输入。然而,如果我们用递归神经网络处理句子,我们就必须把每个句子标注为语法解析树的形式,这无疑要花费非常大的精力。很多时候,相对于递归神经网络能够带来的性能提升,这个投入是不太划算的。

     

    递归神经网络的前向计算

     

    递归神经网络的输入是两个子节点(也可以是多个),输出就是将这两个子节点编码后产生的父节点,父节点的维度和每个子节点是相同的。如下图所示:

     

    c_{1}c_{2}分别是表示两个子节点的向量,P是表示父节点的向量。子节点和父节点组成一个全连接神经网络,也就是子节点的每个神经元都和父节点的每个神经元两两相连。我们用矩阵W表示这些连接上的权重,它的维度将是d*2d,其中,d表示每个节点的维度。父节点的计算公式可以写成:

    然后,我们把产生的父节点的向量和其他子节点的向量再次作为网络的输入,再次产生它们的父节点。如此递归下去,直至整棵树处理完毕。最终,我们将得到根节点的向量,我们可以认为它是对整棵树的表示,这样我们就实现了把树映射为一个向量。在下图中,我们使用递归神经网络处理一棵树,最终得到的向量P_{3},就是对整棵树的表示:

     

    举个例子,我们使用递归神将网络将『两个外语学校的学生』映射为一个向量,如下图所示:

    需要特别注意的是,递归神经网络的权重W和偏置项b在所有的节点都是共享的。

     

    递归神经网络的训练

    下面,我们介绍适用于递归神经网络的训练算法,也就是BPTS算法。

    误差项的传递

    首先,我们先推导将误差从父节点传递到子节点的公式,如下图:

    定义\delta _{p}为误差函数E相对于父节点p的加权输入net_{p}的导数,即:

    net_{p}是父节点的加权输入,则

    在上述式子里,net_{p}c_{1}c_{2}都是向量,而W是矩阵。为了看清楚它们的关系,我们将其展开:

    在上面的公式中,p_{i}表示父节点p的第i个分量;c_{1i}表示子节点c_{1}的第i个分量;c_{2i}表示子节点c_{2}的第i个分量;w_{p_{i}c_{jk}}表示子节点c_{j}的第k个分量到父节点p的第i个分量的的权重。根据上面展开后的矩阵乘法形式,我们不难看出,对于子节点c_{jk}来说,它会影响父节点所有的分量。因此,我们求误差函数E对c_{jk}的导数时,必须用到全导数公式,也就是:

    有了上式,我们就可以把它表示为矩阵形式,从而得到一个向量化表达:

    首先我们把W矩阵拆分为两个矩阵W_{1}W_{2},如下图所示:

    显然,子矩阵W_{1}W_{2}分别对应子节点c_{1}c_{2}的到父节点P权重。则U_{j}矩阵为:

    现在,我们设net_{c_{j}}是子节点c_{j}的加权输入,f是子节点c的激活函数,则:

    这样,我们得到:

    如果我们将不同子节点c_{j}对应的误差项\delta _{c_{j}}连接成一个向量\delta_{c}= \begin{bmatrix} \delta _{c_{1}}\\ \delta _{c_{2}} \end{bmatrix}。那么,上式可以写成:

    式2就是将误差项从父节点传递到其子节点的公式。注意,上式中的net_{c}也是将两个子节点的加权输入net_{c_{1}}net_{c_{2}}连在一起的向量。

    有了传递一层的公式,我们就不难写出逐层传递的公式。

    上图是在树型结构中反向传递误差项的全景图,反复应用式2,在已知\delta _{p}^{(3)}的情况下,我们不难算出\delta _{p}^{(1)}为:

    在上面的公式中,\delta ^{(2)}= \begin{bmatrix} \delta_{c}^{(2)}\\ \delta_{p}^{(2)} \end{bmatrix}\left [ \delta ^{(2)}\right ]_{p}表示取向量\delta ^{(2)}属于节点p的部分。

     

    权重梯度的计算

    根据加权输入的计算公式:

    其中,net_{p}^{(l)}表示第l层的父节点的加权输入,c^{(l)}表示第l层的子节点。W是权重矩阵,b是偏置项。将其展开可得:

    那么,我们可以求得误差函数在第l层对权重的梯度为:

    上式是针对一个权重项w_{ji}的公式,现在需要把它扩展为对所有的权重项的公式。我们可以把上式写成矩阵的形式(在下面的公式中,m=2n):

    式3就是第l层权重项的梯度计算公式。我们知道,由于权重W是在所有层共享的,所以和循环神经网络一样,递归神经网络的最终的权重梯度是各个层权重梯度之和。即:

    接下来,我们求偏置项b的梯度计算公式。先计算误差函数对第l层偏置项b^{(l)}的梯度:

    把上式扩展为矩阵的形式:

    式5是第l层偏置项的梯度,那么最终的偏置项梯度是各个层偏置项梯度之和,即:

     

    权重更新

    如果使用梯度下降优化算法,那么权重更新公式为:

    其中,\eta是学习速率常数。把式4带入到上式,即可完成权重的更新。同理,偏置项的更新公式为:

    式6带入到上式,即可完成偏置项的更新。

    更多相关内容
  • 基于递归神经网络的故障诊断 matlab仿真
  • 递归神经网络是对序列数据建模的有力工具,但由于每个时间步的计算依赖于前一个时间步的输出,限制了并行性,使得RNN难以处理很长的序列。我们介绍了准递归神经网络(QRNNs),一种交替卷积层的神经序列建模方法,它...
  • 递归神经网络波动函数 RNN波函数是基于递归神经网络的高效量子多体波函数分析。 这些波函数可用于使用变分蒙特卡罗(VMC)查找量子多体哈密顿量的基态。 ,我们证明了该架构可以提供对基态能量,相关函数以及纠缠熵...
  • 强化学习和递归神经网络的实验 免责声明:我的代码非常基于Scott Fujimotos的 待办事项:正确引用 动机 此仓库是我自己的一项练习,以正确理解将RNN与深度增强学习一起使用会带来什么 提供了有关RL算法在训练时如何...
  • 但是许多语言学家认为语言最好被理解为具有树形结构的层次化词组,一种被称为递归神经网络(recursiveneuralnetwork)的深度学习模型考虑到了这种结构,这方面已经有大量的研究。虽然这些模型非常难以实现且效率很低...
  • 扩散卷积递归神经网络:数据驱动的流量预测 这是以下论文中扩散卷积递归神经网络的TensorFlow实现: 李亚光,余蔷薇,赛勒斯·沙哈比,刘艳,《 ,ICLR 2018。 要求 scipy> = 0.19.0 numpy的> = 1.12.1 熊猫> = ...
  • 使用卷积递归神经网络和TensorFlow 2.0(tf2-crnn)进行文本识别 卷积递归神经网络(CRNN)的实现,用于基于图像的序列识别任务,例如场景文本识别和OCR。 此实现基于Tensorflow 2.0并使用tf.keras和tf.data模块...
  • 本文将阐释深度学习和FPGA各自的结构特点以及为什么用FPGA加速深度学习是有效的,并且将介绍一种递归神经网络(RNN)在FPGA平台上的实现方案。  揭开深度学习的面纱  深度学习是机器学习的一个领域,都属于人工...
  • timeseries-lstm-keras:基于Jason Brownlee教程,在Keras中使用LSTM递归神经网络在Python中进行时间序列预测
  • NeuralNetStudio:开源递归神经网络程序(RNN)。 [MATLAB]
  • 本文受生物DNA分子遗传机制和混沌优化算法的启发,提出了一种混沌DNA遗传算法,用于优化T-S模糊 递归神经网络(FRNN).该方法使用碱基序列表示T-S模糊递归神经网络的前件部分参数,包括模糊规则数,隶属度 函数中心点和...
  • 本文实例讲述了Python实现的递归神经网络。分享给大家供大家参考,具体如下: # Recurrent Neural Networks import copy, numpy as np np.random.seed(0) # compute sigmoid nonlinearity def sigmoid(x): output ...
  • 卷积神经网络和递归神经网络(构建神经网络,进行数据处理,包括卷积神经网络和递归神经网络
  • 为充分利用RGB-D图像提供的潜在特征信息,提出了多尺度卷积递归神经网络算法(multi-scale convolutional-recursive neural networks,Ms-CRNN)。该算法对RGB-D图像的RGB图、灰度图、深度图及3D曲面法线图进行不同...
  • PredRNN 包含PyTorch的纸张实现- PredRNN:使用时空LSTM进行预测性学习的递归神经网络 数据集 移动MNIST数据集可在下载 建筑
  • 有限时间稳定性及其在递归神经网络求解时变Sylvester方程中的应用
  • 递归神经网络RNN与LSTM

    2020-05-03 11:01:50
    递归神经网络RNN与LSTM简介与算法推导。
  • 有限时间稳定性及其在递归神经网络求解时变西尔维斯特方程中的应用
  • 递归神经网络预报系统未来输出值的功能,采用双系统交替控制模式。系统中包含1个模糊控制器和1个递归神经网络,一个工作,另一个学习,使控制系统具有自适应性。仿真结果表明,与常规模糊控制相比,预测模糊控制使...
  • 基于递归神经网络的智能电网虚假数据检测.pdf
  • 针对局部全局前馈递归动态神经网络的稳定性问题提出了一种新的采用极点配置稳定方法的局部递归全局前馈(Locally recurrent global forward,LRGF)神经网络.由于动态神经元的极点有存在于实轴上和一对共轭复数极点两种...
  • 然后,为了处理不确定性,开发了一种递归神经网络控制系统,而无需明确了解系统动力学。 基于为具有消失干扰的非线性级联系统开发的技术引理,提出了闭环稳定性分析。 与现有结果相比,所得到的控制系统具有更简单...
  • 为了克服上述研究挑战,研究工作提出了一种基于消费者位置中心预测(LCP)模型的多行为特征,该模型使用优化的递归神经网络(ORNN)。 LCP模型可以有效地学习短上下文和长上下文。 实验结果表明,相对于现有模型,...
  • 基于双阶段注意力的时间序列预测神经网络,基于Chandler Zuo的。 我已经将代码扩展为适用于多元时间序列,并添加了一些预处理功能,但是鉴于我基本上是从他的帖子中复制代码,因此版权可能归他所有。 最近使用...
  • 随着网络规模的扩大,组网方式多样化,网络...该文利用神经网络处理非线性、复杂性等优势,基于改进的递归神经网络预测网络安全态势,实验结果证明该方法运行效率较高,运行结果与实际值相比,误差较低,精确性较高.
  • StockPredictionRNN, 基于LSTM递归神经网络的高频交易价格预测 StockPredictionRNN基于LSTM递归神经网络的高频交易价格预测我们尝试利用长期记忆的递归神经网络来预测高频股票价格的价格。 这个程序实现了从 for ...
  • 针对目前非线性动态偏最小二乘(PLS)建模方法在拟合较强非线性化工过程时存在的问题,提出一种基于 稳定学习的递归神经网络动态PLS建模方法.该算法将递归神经网络与Hammerstein模型相结合,对外部PLS提取的 特征向量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,451
精华内容 11,780
关键字:

递归神经网络

友情链接: caxz.rar