一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度强化学习的最短路阻断方法和装置

2022-04-25 04:21:29 来源:中国专利 TAG:


1.本技术涉及网络阻断技术领域,特别是涉及一种基于深度强化学习的最短路阻断方法和装置。


背景技术:

2.网络阻断问题作为最重要的组合优化问题之一,旨在攻防双方都达到目标最优的条件下,给出攻击方的阻断策略和防御方的路径选择策略。网络阻断问题中的最短路阻断,在不考虑防御方采取防御措施的情况下,防御方的路径选择策略可以简化为求解网络中两点间的最短路问题,但是网络状态会随着攻击方策略的改变。而攻击方的目标是通过阻断某些节点或边而增加其长度,使得防御方所能够选择的最短路径最大化,考虑在实际情况中由于阻断资源的限制,要对多个目标进行阻断,那么阻断可能不是同时,而是有次序或者分批次的。因而将问题进行简化,考虑每次行动只阻断一个节点,进行多轮次行动的情况,那么每次的行动只需要对当前网络最短路径中的节点或链路进行阻断,但由于阻断前可能存在多条长度相同的最短路径。
3.显然,最短路阻断是一个np-hard问题,一般是通过规划模型的方式进行求解。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种基于深度强化学习的最短路阻断方法和装置。
5.一种基于深度强化学习的最短路阻断方法,所述方法包括:
6.获取网络图;所述网络图中的节点为具备通讯功能的网络设备,起始节点和目标节点直接包含多条连接链路,所述网络设备由于攻击方攻击通讯功能损坏时,选择其他最短路径进行通讯;
7.采用编码器将所述网络图映射至低维向量空间,得到动作表示向量和图状态表示向量;其中,所述动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的;所述图状态表示向量是通过虚拟节点进行编码得到的,所述虚拟节点与所述网络图中节点相连,并且汇集所述网络图中节点的信息;
8.将所述动作表示向量作为强化学习的动作,所述图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将所述动作和状态建模为深度q网络,并对所述深度q网络进行训练,在输入待阻断网络图后,输出所述待阻断网络图的最优阻断方案。
9.在其中一个实施例中,还包括:采用信息汇集方式对所述网络图的图结构进行特征传播,得到图状态表示向量;其中,第n传播轮次时,节点汇集n跳邻居节点的信息。
10.在其中一个实施例中,还包括:通过解码器将所述动作和状态建模为深度q网络为:
[0011][0012]
其中,w4∈r
p
×1,w5∈r
p
×1是深度q网络中可学习参数,za,分别为所述动作
和状态。
[0013]
在其中一个实施例中,还包括:构建用于训练所述深度q网络的损失函数;所述损失函数包括:学习损失和图重构损失。
[0014]
在其中一个实施例中,还包括:基于贝尔曼方程,构建用于训练所述深度q网络的损失函数为:
[0015][0016]
其中,θq={θe,θd},θe={w1,w2,w3}为编码器的学习参数,θd={w4,w5}为解码器的学习参数,α是超参数,γ是折扣因子,表示目标网络的参数,n是图重构损失中的节点个数,s
i,j
表示节点i和节点j是否相连,yi和yj则是其表示向量。
[0017]
一种基于深度强化学习的最短路阻断装置,所述装置包括:
[0018]
图获取模块,用于获取网络图;所述网络图中的节点为具备通讯功能的网络设备,起始节点和目标节点直接包含多条连接链路,所述网络设备由于攻击方攻击通讯功能损坏时,选择其他最短路径进行通讯;
[0019]
编码模块,用于采用编码器将所述网络图映射至低维向量空间,得到动作表示向量和图状态表示向量;其中,所述动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的;所述图状态表示向量是通过虚拟节点进行编码得到的,所述虚拟节点与所述网络图中节点相连,并且汇集所述网络图中节点的信息;
[0020]
解码模块,用于将所述动作表示向量作为强化学习的动作,所述图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将所述动作和状态建模为深度q网络,并对所述深度q网络进行训练,在输入待阻断网络图后,输出所述待阻断网络图的最优阻断方案。
[0021]
在其中一个实施例中,所述编码模块还用于采用信息汇集方式对所述网络图的图结构进行特征传播,得到图状态表示向量;其中,第n传播轮次时,节点汇集n跳邻居节点的信息。
[0022]
在其中一个实施例中,所述解码模块还用于通过解码器将所述动作和状态建模为深度q网络为:
[0023][0024]
其中,w4∈r
p
×1,w5∈r
p
×1是深度q网络中可学习参数,za,分别为所述动作和状态。
[0025]
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0026]
获取网络图;所述网络图中的节点为具备通讯功能的网络设备,起始节点和目标节点直接包含多条连接链路,所述网络设备由于攻击方攻击通讯功能损坏时,选择其他最短路径进行通讯;
[0027]
采用编码器将所述网络图映射至低维向量空间,得到动作表示向量和图状态表示
向量;其中,所述动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的;所述图状态表示向量是通过虚拟节点进行编码得到的,所述虚拟节点与所述网络图中节点相连,并且汇集所述网络图中节点的信息;
[0028]
将所述动作表示向量作为强化学习的动作,所述图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将所述动作和状态建模为深度q网络,并对所述深度q网络进行训练,在输入待阻断网络图后,输出所述待阻断网络图的最优阻断方案。
[0029]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0030]
获取网络图;所述网络图中的节点为具备通讯功能的网络设备,起始节点和目标节点直接包含多条连接链路,所述网络设备由于攻击方攻击通讯功能损坏时,选择其他最短路径进行通讯;
[0031]
采用编码器将所述网络图映射至低维向量空间,得到动作表示向量和图状态表示向量;其中,所述动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的;所述图状态表示向量是通过虚拟节点进行编码得到的,所述虚拟节点与所述网络图中节点相连,并且汇集所述网络图中节点的信息;
[0032]
将所述动作表示向量作为强化学习的动作,所述图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将所述动作和状态建模为深度q网络,并对所述深度q网络进行训练,在输入待阻断网络图后,输出所述待阻断网络图的最优阻断方案。
[0033]
上述基于深度强化学习的最短路阻断方法、装置、计算机设备和存储介质,通过编码器将网络图映射至低维向量空间,得到动作表示向量和图状态表示向量,动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的,图状态表示向量是通过虚拟节点进行编码得到的,虚拟节点与所述网络图中节点相连,并且汇集网络图中节点的信息,从而可以极大的表达出网络图中包含的信息,然后将动作表示向量作为强化学习的动作,图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将动作和状态建模为深度q网络,采用强化学习的方式,可以学习到网络结构和网络内容上的信息。使得深度学习解决最短路阻断问题成为可能。
附图说明
[0034]
图1为一个实施例中基于深度强化学习的最短路阻断方法的流程示意图;
[0035]
图2为一个实施例中基于深度强化学习的最短路阻断装置的结构框图;
[0036]
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
[0037]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0038]
在一个实施例中,如图1所示,提供了一种基于深度强化学习的最短路阻断方法,包括以下步骤:
[0039]
步骤102,获取网络图。
[0040]
网络图中的节点为具备通讯功能的网络设备,起始节点和目标节点直接包含多条连接链路,网络设备由于攻击方攻击通讯功能损坏时,选择其他最短路径进行通讯。
[0041]
步骤104,采用编码器将网络图映射至低维向量空间,得到动作表示向量和图状态表示向量。
[0042]
动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的;图状态表示向量是通过虚拟节点进行编码得到的,虚拟节点与网络图中节点相连,并且汇集所述网络图中节点的信息。
[0043]
步骤106,将动作表示向量作为强化学习的动作,图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将动作和状态建模为深度q网络,并对深度q网络进行训练,在输入待阻断网络图后,输出待阻断网络图的最优阻断方案。
[0044]
上述基于深度强化学习的最短路阻断方法中,通过编码器将网络图映射至低维向量空间,得到动作表示向量和图状态表示向量,动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的,图状态表示向量是通过虚拟节点进行编码得到的,虚拟节点与所述网络图中节点相连,并且汇集网络图中节点的信息,从而可以极大的表达出网络图中包含的信息,然后将动作表示向量作为强化学习的动作,图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将动作和状态建模为深度q网络,采用强化学习的方式,可以学习到网络结构和网络内容上的信息。使得深度学习解决最短路阻断问题成为可能。
[0045]
对于最短路阻断问题,可以描述为:
[0046]
给定图g,防御方在确定的起始节点s和目标节点t之间以最短路径传递信息,图中起始节点s和目标节点t之间的路径长度定义为s-t路径中历经链路的长度之和;攻击方采用多轮阻断的策略攻击防御方网络,每轮阻断只攻击一个节点,节点被攻击后视为失效,防御方不能通过,攻击方最终的目标是利用有限阻断资源r以最优节点阻断顺序阻断网络中的部分节点以最大化防御方最短路径,当资源足够时,则使防御方没有能够通过的s-t路径,即s-t路径完全阻断。
[0047]
形式化建模如下:
[0048]
图g(n,a)中,n表示节点集合,a表示链路集合,n表示中的g中的节点个数,αi表示阻断图g中的第i个节点,k={α1,α2,

,αk}表示攻击方的有序阻断集合,定义l(g)为图g中所有链路的长度之和。l(g\{α1,α2,

,αk})表示按照节点集合k={α1,α2,

,αk}的排列顺序依次阻断g中的节点之后,图中的最短路径长度,anpl(accumulated normalized path length)值表示归一化的路径长度值。由于该问题考虑的是对节点的完全阻断,即阻断后节点不能通过,并且网络中存在两条以上的s-t路径,因此每次阻断后,如果还存在最短路,那么最短路径长度必定小于所有链路的长度之和,据此给出anpl的表述如下:
[0049][0050]
anpl值可以对阻断策略进行评价。
[0051]
具体的,本发明的马尔科夫过程中各个要素的定义如下:
[0052]
环境:给定的图g
[0053]
状态:阻断节点后更新的图
[0054]
动作:阻断节点αi[0055]
奖励:采取行动后spni-drl的减少值。
[0056]
其中,智能体感知环境得到观察过程,对应攻击方获取网络的信息如结构、路径长度、当前阻断情况等;智能体做出动作对应进行一个轮次的阻断;环境给予智能体动作的奖励对应图中最短路径的改变;状态更新对应图中节点被阻断后新的网络状态。
[0057]
阻断过程建模完成后,则需要考虑在某个状态下,选择哪一个动作是相对“正确”的,在该计算框架下先对当前的图g进行编码得到每个节点的特征表示向量:获取节点的位置信息、属性信息(阻断代价)以及与其他节点间的联系。然后将获得的特征表示向量解码映射为q值,用于预测阻断该节点带来的收益,q值越大,则表示选择该节点进行阻断的优先级越高。基于对每个节点解码得到的q值,训练的阶段采用贪心策略来选择动作,即以概率(1-ε)选择q值最高的节点,以概率ε随机选择其他的任意节点。当节点s-t之间没有路径时一个轮次的阻断结束,在阻断过程中保存j步的状态-动作-奖励转移元组存入经验回放池,用于学习来更新模型参数。其中j步的转移元组为(si,ai,r
(i,i 1)
,s
i 1
,

,s
i j-1
,a
i j-1
,r
(i j-1,i j)
,s
i j
),累积奖励值
[0058]
使用大量仿真的图生成足够多的阻断案例样本后,经验回放池中也存储了大量的状态-动作-奖励转移元组。从经验回放池中抽取批量的训练样本进行训练并更新编码器和解码器的学习参数,从而得到基于深度强化学习的最短路阻断模型。
[0059]
以下针对编码器和解码器的设置进行具体说明:
[0060]
编码器试图将图g映射到低维度的向量空间,包括获取节点的位置信息、属性信息(阻断代价)以及与其他节点间的联系编码为每个节点的特征表示向量,即动作表示向量,作为可能的行动(a);构建一个虚拟节点与图中所有的节点相连,但图中的实际节点不指向该虚拟节点,同样将其他节点的信息汇聚到虚拟节点进行编码得到一个特征表示向量,即图状态表示向量,作为图状态表示(st)。这样得到的动作表示向量和图状态表示向量能够充分获取有关动作和状态的包含丰富信息量的特征,从而能够更有效地用来估计在状态st下采取行动ai所带来的行动收益q(st,ai)。
[0061]
具体地,动作表示向量和图状态表示向量都对应于网络中的节点表示向量,因此,编码生成节点表示向量时,需要同时捕捉节点、链路的属性信息以及图的结构信息。除此之外,由于不同的阻断案例具有不同的图结构或起始节点目标节点对s-t,能对防御方最短路产生影响的节点总是相对于当前阻断案例以及节点对s-t的,因此节点表示向量还要能够获取该节点在整个图中的相对位置信息。
[0062]
基于上述考虑,编码器部分基于图神经网络(gnn)架构,采取信息汇聚的方式用于图结构的特征传播。首轮特征传播,每个节点(包括虚拟节点)汇聚所有邻居节点的信息;之后每一轮特征传播,节点都增加一跳的邻居视野并获取相应节点的信息。由于网络的小世界特性,任意一个节点都能在6轮特征传播以内获取图中任意节点的信息。最终,在n 1个节点的图上,经过k次信息汇聚,得到了虚拟节点的表示向量作为图的状态表示向量,其余节点的表示向量作为动作表示向量。
[0063]
对于解码器,由上述编码器可得到输入案例的动作表示a和状态表示st,解码器的
任务则是将每一个动作,都分别联合状态映射到实数值q(st,a),q(st,a)用于预测在状态st下执行动作a所能带来的最大收益。传统的q学习方法使用q表格来更新记录每一对状态-动作值,当遇到大规模问题时,状态-动作对的空间将变得非常大,此时更新状态-动作值的代价将会变得更加困难。而现在的工作则更多使用函数来估计q(st,a),通常这个函数是由学习的方法得到,如搭建神经网络进行学习等。当估计q(st,a)的函数为深度神经网络时,相应的方法则是深度q网络dqn。
[0064]
本文用带激活函数relu的两层感知机来参数化q函数,将其定义为:
[0065][0066]
其中,w4∈r
p
×1,w5∈r
p
×1是模型中可学习的参数,za,分别是编码器输出的动作表示向量和状态表示向量。
[0067]
对于训练部分,由上述描述可知,包含两个部分可学习的参数,分别是编码器的参数θe={w1,w2,w3}和解码器的参数θd={w4,w5}。由于模型能够对每一对动作、状态对预测q值,即q
pred
(a,st)=f(st,a;θe,θd)。一般情况下,案例或数据有真实的标签q
true
(st,a),那么就可以使用回归问题的思路,最小化q
pred
和q
true
差距来更新参数,但是在最短路网络阻断问题中,并没有真实的标签用于回归学习。
[0068]
基于贝尔曼方程,将q
pred
(a,st)视作qk(a,st),将q
true
视作,进而考虑最大程度地保持并利用好图的原始结构,设计出损失函数如下所示:
[0069]
其中θq={θe,θd}。包含了q学习损失和图重构损失两个部分,q学习损失部分最小化q
pred
和q
true
的差距;图重构损失部分用于在编码向量空间中保持图的结构信息。α是权衡q学习损失和图重构损失比例的超参数,γ是折扣因子,用来决定未来奖励的权重,当γ=0时,表示模型只考虑当前的奖励,不考虑未来奖励,当γ=1时,表示模型更看重未来的奖励。在训练时,从经验回放池中随机采样批量的训练样本(sti,ai,r
i,i j
,st
i j
)~u(d)用于训练。表示目标网络的参数,目标网络间隔一定步数,然后将q网络的参数θq复制过来,放到模型中保持不变。在图重构损失中n是节点个数,s
i,j
表示节点i和节点j是否相连,yi和yj则是其表示向量。参数更新采取批量梯度下降的方法进行。
[0070]
训练过程使用ba模型产生训练和验证模型是否收敛用的仿真数据,共进行了一百万个网络阻断案例的阻断过程,每个阻断案例完全阻断后,从经验回放池中采样批量的训练样本通过损失函数来更新模型参数。每隔500个阻断过程,在验证集(100个阻断案例)上进行测试。
[0071]
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这
些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0072]
在一个实施例中,如图2所示,提供了一种基于深度强化学习的最短路阻断装置,包括:图获取模块202、编码模块204和解码模块206,其中:
[0073]
图获取模块202,用于获取网络图;所述网络图中的节点为具备通讯功能的网络设备,起始节点和目标节点直接包含多条连接链路,所述网络设备由于攻击方攻击通讯功能损坏时,选择其他最短路径进行通讯;
[0074]
编码模块204,用于采用编码器将所述网络图映射至低维向量空间,得到动作表示向量和图状态表示向量;其中,所述动作表示向量是对节点的位置信息、属性信息以及与其他节点的连接关系编码得到的;所述图状态表示向量是通过虚拟节点进行编码得到的,所述虚拟节点与所述网络图中节点相连,并且汇集所述网络图中节点的信息;
[0075]
解码模块206,用于将所述动作表示向量作为强化学习的动作,所述图状态表示向量作为强化学习的状态,输入至解码器中,通过解码器将所述动作和状态建模为深度q网络,并对所述深度q网络进行训练,在输入待阻断网络图后,输出所述待阻断网络图的最优阻断方案。
[0076]
在其中一个实施例中,编码模块204还用于采用信息汇集方式对所述网络图的图结构进行特征传播,得到图状态表示向量;其中,第n传播轮次时,节点汇集n跳邻居节点的信息。
[0077]
在其中一个实施例中,解码模块206还用于通过解码器将所述动作和状态建模为深度q网络为:
[0078][0079]
其中,w4∈r
p
×1,w5∈r
p
×1是深度q网络中可学习参数,za,分别为所述动作和状态。
[0080]
在其中一个实施例中,损失函数构建模块,构建用于训练所述深度q网络的损失函数;所述损失函数包括:学习损失和图重构损失。
[0081]
在其中一个实施例中,损失函数构建模块还用于基于贝尔曼方程,构建用于训练所述深度q网络的损失函数为:
[0082][0083]
其中,θq={θe,θd},θe={w1,w2,w3}为编码器的学习参数,θd={w4,w5}为解码器的学习参数,α是超参数,γ是折扣因子,表示目标网络的参数,n是图重构损失中的节点个数,s
i,j
表示节点i和节点j是否相连,yi和yj则是其表示向量。
[0084]
关于基于深度强化学习的最短路阻断装置的具体限定可以参见上文中对于基于
深度强化学习的最短路阻断方法的限定,在此不再赘述。上述基于深度强化学习的最短路阻断装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0085]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于深度强化学习的最短路阻断方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0086]
本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0087]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例方法的步骤。
[0088]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例方法的步骤。
[0089]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0090]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0091]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献