双向循环神经网络_深度学习之14——深层循环神经网络

循环神经网络可以看作是可深可浅的网络,一方面如果把循环网络按时间展开,长时间间隔的状态之间的路径很长,循环网络可以看作是一个非常深的网络,从另一方面来说,如果同一时刻网络输入到输出之间的路径

,这个网络是非常浅的。

可以增加循环神经网络的深度从而增强循环神经网络的能力。增加循环神经网络的深度主要是增加同一时刻网络输入到输出之间的路径

,比如增加隐状态到输出
,以及输入到隐状态
之间的路径的深度。

堆叠循环神经网络

堆叠循环神经网络(Stacked Recurrent Neural Network,SRNN),即把多个循环网络堆叠起来。

0a7e9d613cec81c53be8fd61ff522430.png

第l层网络的输入是第l-1层网络的输出。定义

为在时刻t时第l层的隐状态:

其中

为权重矩阵和偏置向量,

双向循环神经网络

在有些任务中,一个时刻的输出不但和过去时刻的信息有关,也和后续时刻的信息有关。给定一个句子,其中一个词的词性由它的上下文决定,即包含左右两边的信息。因此,在这些任务中,可以增加一个按照时间的逆序来传递信息的网络层,增强网络的能力。

双向循环神经网络由两层循环神经网络组成,它们的输入相同,只是信息传递的方向不同。

假设第1层按时间顺序,第2层按时间顺序,在时刻t时的隐状态定义为

,则:

其中

为向量拼接操作。

18702072e72c129d0ff2fd136cde174c.png

图结构

递归神经网络

递归神经网络(Recursive Neural Network,RecNN)是循环神经网络在有向无循环图上的扩展,递归神经网络的一般结构为树状的层次结构。

be9dabffa0aad2c17eed5566af3a92d9.png

以图(a)为例,有三个隐藏层

,其中
由两个输入
计算得到,
由另外两个输入层
计算得到,
由两个隐藏层
计算得到。

对于一个节点

,可以接受来自父节点集合
中所有节点的消息,并更新自己的状态:

,

其中

表示集合
中所有节点状态的拼接,
是一个和节点位置无关的非线性函数,可以为一个单层的前馈神经网络,图(a)可以写成:

其中

表示非线性激活函数,
是可学习的参数,同样输出层
可以为一个分类器,比如
,其中
表示非线性激活函数,
为分类器的参数

如图(b)为递归神经网络退化为线性序列结构时,等价于简单循环网络。

图网络

在实际应用中,很多数据是图结构,如知识图谱,社交网络,分子网络等,前馈网络和反馈网络很难处理图结构数据。

图网络(GRaph Network,GN)是将消息传递的思想扩展到图结构数据上的神经网络。

对于任意的图结构

,其中
表示节点集合,
表示边集合。每条边表示两个节点之间的依赖关系。节点之间的连接可以是有向的,也可以是无向的。图中每个节点
都用一组神经元来表示其状态
,初始状态可以为节点
的输入特征
。更新自己的状态:

其中

表示节点
的邻居,
表示在第
时刻节点
收到的信息,
为边
上的特征。

上面两个公式是一种同步的更新方式,所有的结构同时接受信息并更新自己的状态。而对于有向图来说,使用异步的更新方式会更有效率,比如循环神经网络或递归神经网络。在整个图更新T次之后,可以通过一个读出函数(Readout Function)

来得到整个网络的表示。

参考书籍:《神经网络与深度学习》—邱锡鹏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值