c++矩阵连乘的动态规划算法并输出_神经网络设计(第十四章-动态网络)

本章介绍了动态网络以及动态网络的学习规则。

在了解动态网络工作方式的特点的基础上,动态网络的学习规则的重点仍然是在求梯度上,大致方法与静态网络是一致的。只不过由于结构的原因,动态网络求解更加复杂。

第十四章 动态网络

动态网络

动态网络不但依赖于当前的网络输入,而且依赖于当前或之前时刻的输入、输出以及状态等。动态网络是包含延迟(或连续时间网络中的积分器)并且处理序列输入的网络,输入的顺序对网络的运算十分重要。

动态网络有可能只含有前馈连接。

动态网络含有记忆,它们在任一给定时刻的响应不但依赖于当前的输入,而且依赖于输入序列的历史。由于动态网络含有记忆,可以训练它们用于学习序列的模式或随时间变化的模式。动态网络可以逼近一个动力学系统。

动态网络可以采用之前讨论过的标准优化方法进行训练,然而所需要的梯度和雅克比矩阵不能用标准的反向传播算法计算。动态网络中梯度和雅克比矩阵的计算方法总体上可分为两种:时间反向传播BPTT以及实时回复学习RTRL。

在BPTT算法中,首先计算每个时刻的网络响应,然后从最后一个时刻开始计算梯度,并按时间顺序的反方向进行计算。该方法在梯度计算上非常高效,然而由于该方法需要从最后一个时刻开始按时间顺序的反方向计算梯度,因此难以实现在线训练。

在RTRL算法中,因为梯度从第一个时刻开始计算,并且从前往后随着时间前进方向计算,所以梯度可以与网络响应同时计算。在梯度的计算上,RTRL比BPTT计算量更大,然而RTRL提供了一个方便实现在线计算的框架。一般而言,对于雅克比矩阵的计算,RTRL算法比BPTT算法更高效。

分层数字动态网络

758b861bc95eb549dce863290519e4e6.png

这里介绍用于表示一般性动态网络的神经网络框架,我们称此框架为分层数字动态网络(LDDN)。该框架扩展了用于介绍静态多层网络的数字记号。我们可以方便地表示具有多个回复连接及抽头延迟线的网络。

LDDN中第m层净输入

的通用计算公式可以写为:

c21f5f3d0ab1030fcc7351e422926b67.png

进而第m层的输出计算为:

与静态多层网络相比,LDDN网络中可以由多个层连接到第m层,其中的一些连接可能通过抽头延迟线形成回复连接。LDDN网络还可以有多个输入变量,这些输入变量可以连接到网络中的任意层,相比之下,对静态多层网络我们假设只有一个输入向量,且只连接到第一层。

在静态多层网络中,曾与层之间按照数值顺序依次相连。在LDDN框架中,任意层可以与任意层相连,甚至是与自己相连。为了计算每一层的净输入,需要按照一定顺序计算各层的输出。为了得到正确的网络输出,各层所需要遵循的计算顺序称为模拟顺序。模拟顺序不唯一,可能存在多个可行的模拟顺序。梯度计算需要通过反向传播导数进行,我们需要按模拟顺序的反向顺序进行,称之为反向传播顺序。

LDDN中的每一层由五个部分构成:

  • 一组连接到该层的权值矩阵(可以是来自其他层或来自外部输入的连接)
  • 任意数量的抽头连接线(记为 ),它们作为一组权值矩阵的输入(可以是任意一组接收抽头延迟线作为输入的权值矩阵。)
  • 一个偏置向量
  • 一个求和点
  • 一个传输函数

LDDN的输出不仅是权值、偏置值以及当前网络输入的函数,而且也是之前时刻一些层输出的函数。因此。计算网络输出对权值和偏置值的梯度并不是简单的事情。权值和偏置值对网络的输出有两方面的作用:一是直接作用,可以通过标准反向传播算法进行计算;二是间接作用,由于部分网络输入也是之前的输出,这些输出也是权值和偏置值的函数,以下两节的主要内容就是讨论任意LDDN上一般性的梯度计算方法。

在引入动态训练之前,先举一个动态网络的示例。下图是一个用LDDN框架表达的ADALINE滤波器。该网络输入中有一条抽头延迟线,其中

5232ef75947d46784082c6f353ddcf90.png

假设输一个方波,并且将所有的权值都设为1/3。

d61ae12b9d8e9a528b1f542382770ca4.png

该网络的响应计算如下(由于只有一层输入和一层网络,省去了权值和输入的上标):

75aacafa069c0c2d84e196f4a9ed86e0.png

网络的响应如下图所示,空心圆圈表示方波输入信号

,实心点表示网络的响应
。这个动态网络中,每个时刻的响应取决于之前的三个输入值。如果输入是常量,输出也会在三个时刻后变成常量。这种类型法线性网络也称为有限脉冲响应。

ba8d98df22af069254d0a9df349096b1.png

上面这个动态网络具有记忆,它在任意时刻的响应不仅依赖当前输入,还依赖输入序列的历史。如果网络中不包含任何反馈连接,那么响应只受到一段有限长度的历史影响。下面是一个具有无限记忆的网络。

8abef75ac02878e4485b051deacf38ba.png

上图中是一个回复动态网络,网络运算的公式如下(由于只有一个神经元和一层网络,省去了最后一行中的上标):

如果假设权值为

,这个网络对方波输入的响应如下图所示。对于输入序列的变化网络会产生指数式的响应。回复网络在任意给定时刻的最终响应都是无限长度历史输入的函数。

c704119783ad9a300a115b9d8424c82d.png

动态学习的基本原则

对于上面的回复网络,加入我们想通过最速下降法训练这个网络,首先要计算性能函数的梯度。这里我们采用平方误差和作为性能指标:

417c6034631dd141ec73b18f1b9af208.png

梯度的两个分量为:

45fb67021dd84cc63bde81eb7750a6ee.png

上式中的关键项是网络输出对权值的导数:

。 由网络运算的公式:
,求导有:

4912462182bff5bd356f5d14aced8103.png

对于回复网络,权值对网络输出有两方面作用。一是直接作用,这与静态网络中的作用相同;二是间接作用这时由于网络输入的一部分来自于前一时刻的网络输出。上面两式中的第一项表示每个权值对网络输出的直接作用,第二项则表示间接作用。

下图a展示了动态导数,我们可以看到总的导数

和它的静态部分。如果我们只考虑静态部分会低估权值变化的作用。在下图b中,我们可以看到网络原来的响应以及将
由0.5变为0.6后的一个新响应。通过两图的比较,我们可以看出导数如何揭示了权值
的变化对网络响应的作用。

c03f8211debfaf6211ac4bdbd48d8f2f.png

在下图中,可以看到权值

上相似的结果。理解这一例子的关键在于两点:导数有静态和动态的两个成分;动态成分依赖于其他时刻。

接下来考虑一个稍复杂的动态网络,如下图,它包含一个静态多层网络和一个从网络输出到网络输入的单步延迟反馈网络。图中,向量x表示网络的所有参数,向量a(t)表示多层网络在t时刻的输出。这个网络可以帮助我们展示动态训练中的关键步骤。

af7187c91628745eb3c076f7feb0f0e9.png

对于动态网络,我们需要修改标准反向传播算法。

d0ae13b55686537f099162c3230d0920.png

其中上标e表示显式导数,这种倒数不考虑跨越时刻的间接作用。显式导数可以通过标准反向传播算法获得。

084a29e99a96daa3ab0a1eec260e94fd.png

上面两组公式中,

4207dc1c4fb6b8a30d1d91748bf337a2.png

组成了实时回复学习算法(RTRL)。其中关键一项是 ,这一项需要按照时间顺序正向传播。

1d668456527482aa5e2ee648899032cc.png

组成了时序反向传播算法(BPTT),其中关键一项是

,这一项需要按时间顺序反向传播。

总的来说,计算梯度时RTRL比BPTT需要更多的计算量,但BPTT首选需要计算所有时刻的输出,然后将导数通过时间反向传播到起始时刻,不便实现为实时算法。

动态反向传播

这里对于LDDN框架表示的动态网络的一般性RTRL算法与BPTT算法进行介绍。实际上是对以上四个公式的推广。这里直接给出计算方法(伪代码)。

37ea7b9876c87bdc8a06afea3c079452.png

11ae95a955ae22a5798f5e7168f921e5.png

7169a6a20fff1a3f5baeefc5a0d76139.png
【强烈推荐,非常好的论文】如今人们生活在一个网络无处不在的时代,例如,交通运输网、移动通信网、互联网、在线社交网等,这些网络结构复杂,人们无法直接从中提取有用信息。社区发现作为一种重要的网络分析技术,能够挖掘出网络中具有某些共性的节点集合,有助于人们更加清楚的认识网络,吸引了很多专家的注意。随着现实网络和人们需求的变化,社区发现研究的侧重点也在不断变化。最初研究静态小规模网络的社区发现算法,随后由于网络规模的增大,算法的可伸缩性受到限制,人们开始研究如何提高算法效率。鉴于网络动态变化的本质特征以及人们对社区结构准确性和实时性的要求,动态网络社区发现开始受到关注。 本文首先介绍了社区发现相关技术,分析了经典的静态和动态社区发现算法及其优缺点,例如,GN算法、KL算法、CMP算法、GraphScope算法、FaceNet算法等。然后深入分析了基于贪婪思想的SHRINK-G算法,该算法不需要用户提供参数并且对每个节点只访问一次,算法效率较高,但存在的问题是对社区边界点的处理并不合理,容易使其成为无社区归属的节点,为此我们改进SHRINK-G算法,提出了 MSHRINK-G算法。随后基于MSHRINK-G算法研究了动态网络中的社区发现问题,并提出了基于增量处理的DMSHRINK-G算法。通过在LFR合成数据集和不同规模的真实数据集上的实验结果表明,MSHRINK-G算法准确性得到较大提高,DMSHRINK-G算法能够准确处理网络变化且算法效率较高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值