首页 > 编程知识 正文

逻辑回归和神经网络区别,rbf神经网络算法介绍

时间:2023-05-04 16:31:38 阅读:165181 作者:4827

递归神经网络(recursive neural network )是具有树形结构,网络节点按照其连接顺序递归输入信息的人工神经网络,是深度学习算法之一。

循环神经网络于1990年提出,被认为是循环神经网络(recurrent neural network )的普及。 当递归神经网络的每个父节点只连接到一个子节点时,其结构等效为连接到有活力可乐的循环神经网络。 递归神经网络可以引入门控机制gated mechanism学习长距离依赖。 递归神经网络具有灵活的拓扑结构,并且可以实现权重共享,适合于包含结构关系的机器学习任务,在自然语言处理(Natural Language Processing,NLP )领域有重要的应用。

3358 www.Sina.com/65https://blog.csdn.net/zb 123455445/article/details/78178794 )

由于神经网络的输入层单元数量是固定的,所以必须循环或递归地处理可变长度的输入。 循环神经网络实现前者,通过将长度不定的输入分割成等长的小块,依次输入网络,实现神经网络对变长输入的处理。 典型的例子是,当我们处理词语时,我们可以看作是词语的排列。 然后,每次都向循环神经网络输入语言。 这样,当循环到输入整个词时,循环神经网络会生成相应的输出。 现在,我们可以处理任意长度的语句了。 但是,有时只把句子看成语言的排列是不够的。 例如,下面这句话《两个外国语学院的学生》:

上图显示了此语句的两个不同的语法分析树。 可以看出这个词有歧义,不同的语法分析树对应着不同的意思。 一个是‘两所外国语学院的/学生’,也就是说可能有很多学生,但他们来自两所外国语学校; 另一个人只有《外国语学院的两个学生》,也就是外国语学院的两个学生。 为了使模型能够区分两种不同的含义,我们的模型必须能够按照树结构而不是数组来处理信息。 这就是递归神经网络的作用。 当面对基于树/图结构处理信息的更有效任务时,递归神经网络通常会取得较好的结果。

递归神经网络可以将树/图结构信息编码为向量。 这意味着将信息映射到语义向量空间。 该语义向量空间满足某种性质,例如语义相似的向量距离更近。 也就是说,如果两个词(尽管内容不同)的含义相似,则分别编码它们的两个向量的距离也很近;相反,如果两个词的含义完全不同,则编码向量的距离会变远。 如下图所示。

由上图可知,递归神经网络将所有的词、句映射到一个二维向量空间。 句子‘the country of my birth’和句子‘the place where I was born’的意思非常接近,所以表示它们的两个向量在向量空间中的距离很近。 另外两个词“Germany”和“France”都表示位置,所以它们的向量与上面两个词的向量的距离比另外两个表示时间的词“Monday”和“Tuesday”的向量的距离要近得多这样,根据向量的距离,可以得到意义上的表现。

上图还显示了自然语言的可组合性质。 词构成句子,句子构成段落,段落可以构成章节,高层含义取决于低层含义及其组合方式。 递归神经网络是一种表达学习,可以将词、句、段、篇按照他们的意思映射到同一个向量空间,也就是说可以将可组合(树/图结构)的信息表示为一个个有意义的向量。 例如,在以上的例子中,递归神经网络将句子' the country of my birth '作为二维向量[ 1,5 ]来表示。 有了这些“编码器”,我们可以根据这些有意义的向量,执行更高级的任务(例如情感分析等)。 如下图所示,递归神经网络在进行情感分析时,能够比较好地处理否定句。 这胜过了其他几个模型。

在下图中,蓝色表示正的评价,红色表示负的评价。 各节点是向量,该向量表示以其为根的子树的感情评价。 例如,“intelligent humor”是肯定的评价,“careaboutclevernesswitoranyotherkindofintelligenthumor”是中性的评价。 可见,模型能够正确处理doesn't的语义,将正面评价转化为负面评价。

实例

1向前计算

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

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

在上式中,tanh是激活函数(当然也可以用其它的激活函数),b 是偏置项,它也是一个维度为d 的向量。

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

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

最后得到的向量 就是对整个句子『两个外语学校的学生』的表示。由于整个结构是递归的,不仅仅是根节点,事实上每个节点都是以其为根的子树的表示。比如,在左边的这棵树中,向量 是短语『外语学院的学生』的表示,而向量 是短语『外语学院的』的表示。

式1就是递归神经网络的前向计算算法。它和全连接神经网络的计算没有什么区别,只是在输入的过程中需要根据输入的树结构依次输入每个子节点。需要特别注意的是,递归神经网络的权重和偏置项在所有的节点都是共享的。

2 训练

递归神经网络的训练算法和循环神经网络类似,两者不同之处在于,前者需要将残差δ 从根节点反向传播到各个子节点,而后者是将残差δ 从当前时刻 反向传播到初始时刻 。

误差项的传递

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

 

 

 

 

 

 

上图是在树型结构中反向传递误差项的全景图,反复应用式2,在已知 的情况下,我们不难算出 为:

权重梯度的计算

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

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

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

                         (式5)

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

应用

自然语言和自然场景解析

 

两种不同的场景,可以用相同的递归神经网络模型来实现。我们以第一个场景,自然语言解析为例。

https://www.sohu.com/a/128784058_487514

我们希望将一句话逐字输入到神经网络中,然后,神经网络返回一个解析好的树。为了做到这一点,我们需要给神经网络再加上一层,负责打分。分数越高,说明两个子节点结合更加紧密,分数越低,说明两个子节点结合更松散。如下图所示:

一旦这个打分函数训练好了(也就是矩阵U的各项值变为合适的值),我们就可以利用贪心算法来实现句子的解析(贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止)。第一步,我们先将词按照顺序两两输入神经网络,得到第一组打分:

我们发现,现在分数最高的是第一组,The cat,说明它们的结合是最紧密的。这样,我们可以先将它们组合为一个节点。然后,再次两两计算相邻子节点的打分:

     

现在,分数最高的是最后一组,the mat。于是,我们将它们组合为一个节点,再两两计算相邻节点的打分。这时,我们发现最高的分数是on the mat,把它们组合为一个节点,继续两两计算相邻节点的打分......最终,我们就能够得到整个解析树:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。