ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

图神经网络 之 GNN与RNN

2021-11-18 16:35:00  阅读:329  来源: 互联网

标签:输出 RNN 隐层 神经网络 序列 GNN 结构


RNN:

循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入

在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。

RNN的结构及变体
基础的神经网络包含输入层、隐层、输出层,通过激活函数控制输出,层与层之间通过权值连接。

激活函数是事先确定好的,那么神经网络模型通过训练“学“到的东西就蕴含在“权值“中。


基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接。如图。

 

 

 

这是一个标准的RNN结构图,图中每个箭头代表做一次变换,也就是说箭头连接带有权值。

左侧是折叠起来的样子,右侧是展开的样子,左侧中h旁边的箭头代表此结构中的“循环“体现在隐层。


在展开结构中我们可以观察到,在标准的RNN结构中,隐层的神经元之间也是带有权值的。

也就是说,随着序列的不断推进,前面的隐层将会影响后面的隐层。

图中O代表输出,y代表样本给出的确定值,L代表损失函数,我们可以看到,“损失“也是随着序列的推荐而不断积累的。

除上述特点之外,标准RNN的还有以下特点:
1、权值共享,图中的W全是相同的,U和V也一样。
2、每一个输入值都只与它本身的那条路线建立权连接,不会和别的神经元连接。

以上是RNN的标准结构,然而在实际中这一种结构并不能解决所有问题.

例如我们输入为一串文字,输出为分类类别,那么输出就不需要一个序列,只需要单个输出。如图。

 

 

同样的,我们有时候还需要单输入但是输出为序列的情况。那么就可以使用如下结构:

 

 

还有一种结构是输入虽是序列,但不随着序列变化,就可以使用如下结构:

 

 原始的N vs N RNN要求序列等长,然而我们遇到的大部分问题序列都是不等长的,如机器翻译中,源语言和目标语言的句子往往并没有相同的长度。

解决不等长问题:

RNN最重要的一个变种:N vs M。这种结构又叫Encoder-Decoder模型,也可以称之为Seq2Seq模型。

 

 这个结构的原理是先编码后解码。左侧的RNN用来编码得到c,拿到c后再用右侧的RNN进行解码。得到c有多种方式,最简单的方法就是把Encoder的最后一个隐状态赋值给c,还可以对最后的隐状态做一个变换得到c,也可以对所有的隐状态做变换。

 

 RNN还有很多种结构,用于应对不同的需求和解决不同的问题。

几种不同的结构。但相同的是循环神经网络除了拥有神经网络都有的一些共性元素之外,它总要在一个地方体现出“循环“,而根据“循环“体现方式的不同和输入输出的变化就形成了多种RNN结构。

标准RNN的前向输出流程

标准结构的RNN的前向传播过程

 

 

各个符号的含义:x是输入,h是隐层单元,o为输出,L为损失函数,y为训练集的标签。

这些元素右上角带的t代表t时刻的状态,其中需要注意的是,因策单元h在t时刻的表现不仅由此刻的输入决定,还受t时刻之前时刻的影响。

V、W、U是权值,同一类型的权连接权值相同。

具体关于RNN的详细解:(36条消息) RNN_了不起的赵队-CSDN博客_rnn

 

标签:输出,RNN,隐层,神经网络,序列,GNN,结构
来源: https://www.cnblogs.com/Catherinezhilin/p/15573025.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有