循环神经网络可以看作是可深可浅的网络,一方面如果把循环网络按时间展开,长时间间隔的状态之间的路径很长,循环网络可以看作是一个非常深的网络,从另一方面来说,如果同一时刻网络输入到输出之间的路径
可以增加循环神经网络的深度从而增强循环神经网络的能力。增加循环神经网络的深度主要是增加同一时刻网络输入到输出之间的路径
堆叠循环神经网络
堆叠循环神经网络(Stacked Recurrent Neural Network,SRNN),即把多个循环网络堆叠起来。
第l层网络的输入是第l-1层网络的输出。定义
其中
双向循环神经网络
在有些任务中,一个时刻的输出不但和过去时刻的信息有关,也和后续时刻的信息有关。给定一个句子,其中一个词的词性由它的上下文决定,即包含左右两边的信息。因此,在这些任务中,可以增加一个按照时间的逆序来传递信息的网络层,增强网络的能力。
双向循环神经网络由两层循环神经网络组成,它们的输入相同,只是信息传递的方向不同。
假设第1层按时间顺序,第2层按时间顺序,在时刻t时的隐状态定义为
其中
图结构
递归神经网络
递归神经网络(Recursive Neural Network,RecNN)是循环神经网络在有向无循环图上的扩展,递归神经网络的一般结构为树状的层次结构。
以图(a)为例,有三个隐藏层
对于一个节点
其中
其中
如图(b)为递归神经网络退化为线性序列结构时,等价于简单循环网络。
图网络
在实际应用中,很多数据是图结构,如知识图谱,社交网络,分子网络等,前馈网络和反馈网络很难处理图结构数据。
图网络(GRaph Network,GN)是将消息传递的思想扩展到图结构数据上的神经网络。
对于任意的图结构
其中
上面两个公式是一种同步的更新方式,所有的结构同时接受信息并更新自己的状态。而对于有向图来说,使用异步的更新方式会更有效率,比如循环神经网络或递归神经网络。在整个图更新T次之后,可以通过一个读出函数(Readout Function)
参考书籍:《神经网络与深度学习》—邱锡鹏