基于深度强化学习的智能感知双向节点拥塞控制方法与流程

未命名 08-12 阅读:105 评论:0


1.本发明属于物联网中的网络节点控制技术领域,具体涉及基于深度强化学习的智能感知双向节点拥塞控制方法。


背景技术:

2.无线传感器网络(wsns)中的传感器节点通常由电池供电且无法更换,其具有计算、存储、带宽和能源受限等特点。每个传感器节点的主要任务是收集和处理环境中的各种数据信息,再通过簇头节点转发给下一跳或者直接传输给汇聚节点,其中汇聚节点也称为sink节点。
3.无线传感器网络中的拥塞大致可以分为:基于节点级别的拥塞和基于链路级别的拥塞。其中基于节点级别的拥塞主要体现在节点的缓冲队列溢出的情况,具体如附图1所示。该拥塞会导致网络中数据包的丢失,数据包递送时间的增加和网络吞吐量下降等一系列问题。
4.为了进一步控制拥塞,通常包含三阶段:拥塞检测,拥塞通知和拥塞控制。拥塞检测阶段中,普遍用于进行拥塞检测的参数有:缓冲队列占用情况、信道负载和数据包服务时间。在节点级别的拥塞问题中,主要以传感器节点的缓冲队列作为参考,具体表现在:当缓冲队列值达到某一特定阈值时则意味网络发生了拥塞。
5.当网络检测到拥塞后,拥塞信息可以通过显示或者隐式的方式传播给上行节点。显示拥塞通知是通过发送额外的控制数据包来传递拥塞信息,这势必会造成额外的开销,这可能会进一步的导致网络拥塞程度的增加。相反,隐式通知利用拥塞信息的捎带达到拥塞通知的目的,这一举措不会增加额外的开销。
6.拥塞信息通知完毕后网络进入拥塞控制阶段。从拥塞控制的架构来看,拥塞控制可以分为集中式拥塞控制和分布式拥塞控制。集中式拥塞控制中,所有进行拥塞避免的相关措施都是由sink节点执行,sink节点会周期性的从传感器节点处收集数据,计算拥塞程度进而将拥塞控制措施下发给传感器节点。相反,分布式拥塞控制则是传感器节点自身根据观察到的拥塞情况执行相应的拥塞控制措施来减轻网络拥塞。
7.参考附图1,网络节点(也可简称为:节点)分为下行节点和上行节点,多个下行节点给同一个上行节点传递数据。下行节点之间彼此称之为同级节点。现有的针对节点级别的拥塞机制主要存在以下问题:
8.速率控制:目前在节点拥塞控制上主流是采用速率控制来降低其缓冲队列中数据包的数目进而降低拥塞,但通常节点发送速率的变化都是基于已有知识体系进行设置,这难以准确的匹配网络此时的拥塞情况以此做出合理的速率控制,因为已明确的规则体系通常只适用于特定网络环境下的拥塞控制。
9.拥塞感知:现有的拥塞控制机制通常只考虑单个节点的拥塞情况,如:下行节点缓冲队列长度达到某一阈值时,下行节点通常提高自身发送速率来降低自身拥塞程度,但该举动间接性造成了上行节点的数据包接受的负载增大。如果上行节点此时同样面临节点拥
塞问题,则下行节点盲目的增加发送速率会导致上行节点拥塞程度增加,进一步导致数据包递送失败,网络吞吐量下降等一系列恶性问题。
10.环境变化:无线传感器网络通常被用于监测某一区域的突发情况,因此传感器节点的状态瞬息万变。拥塞控制机制的设置如何在复杂多变的网络环境下快速捕捉到网络环境的变化并给出相应的拥塞控制策略也是一大难题。


技术实现要素:

11.本发明旨在解决现有技术中存在的技术问题,提供基于深度强化学习的智能感知双向节点拥塞控制方法,实现降低网络拥塞,提高网路变化环境感知力等效果。
12.为了实现本发明的上述目的,本发明提供了一种基于深度强化学习的智能感知双向节点拥塞控制方法,包括以下步骤:
13.拥塞检测;用于检测节点自身的缓冲队列长度,以及检测节点的上行节点的缓冲队列长度,通过双向感知自身与其上行节点的缓冲队列长度用于判断目前网络的拥塞情况,并使用固定阈值作为节点拥塞发生的标志;
14.拥塞通知;将能够与环境交互的智能体(agent)部署在终端传感器节点上,智能体需要上行节点告知其局部拥塞情况,采用隐式的拥塞通知来传递拥塞情况;上行节点在接收来自某个下行节点的数据包之后返回一个ack确认帧,ack确认帧中会捎带上行节点当前时刻的缓冲队列长度;
15.拥塞控制;包括一种基于drl(deep reinforcement learning,深度强化学习)的感知双向节点的拥塞控制方法,采用double dqn(ddqn)作为训练模型来动态改变节点的数据包发送速率,所述ddqn包括评估网络和目标网络,所述评估网络用于根据当前的策略选择动作,目标网络用于评估当前状态的价值;
16.所述智能体(agent)与环境的交互包括状态空间、动作空间和奖励;
17.所述状态空间s
t
包含四部分,即:
[0018][0019]
其中,表示在时刻t时下行节点的缓冲队列长度,表示在时刻t时上行节点缓冲队列长度,r
t
表示在时刻t时数据包发送速率,n
t
表示在时刻t时下行节点数目;
[0020]
所述动作空间为发送速率变化的倍数,其设置为:
[0021]
a={2,1.5,1.25,1.2,0.9,0.8,0.7,0.6,0.5}
[0022]
所述奖励r
t
采用以下公式计算,
[0023]rt
=pdr
t
×
α+abr
t
×
β-plr
t
×
δ
[0024]
其中α表示第一系数、β表示第二系数、δ表示第三系数,且α+β+δ=1;pdr
t
表示时刻t的数据包递送率;abr
t
表示时刻t的可用缓冲队列率;plr
t
表示时刻t的系统数据包丢失率。
[0025]
进一步地,所述拥塞检测还包括检测同级节点数目。
[0026]
进一步地,评估网络用网络权重参数为θ的神经网络逼近状态-动作对的q值:q(s
t
,a
t
;θ),其中s
t
表示t时刻下的环境状态、a
t
表示t时刻下选择的动作、θ为评估网络的权重参数。
[0027]
本发明引入了double dqn来训练智能体(agent)独立进行自身发送速率的更改以
降低网络拥塞。其从数据递送位置关系入手,同时感知下行节点和上行节点双方的拥塞关系以此做全局的拥塞考虑,此举可以有效避免因为局部观察的盲区而导致速率调整存在偏差进而加重网络拥塞。
[0028]
在训练agent过程中,本发明使用了pdr、plr和abr三者复合奖励来激励agent做出正确决策。根据不同的网络环境要求可以对三者进行不同的权重参数配置。本发明针对wsns领域,因此agent在wsns中可以在容忍一定量的丢包情况下最大化节点数据包递送率和网络资源可用率。
附图说明
[0029]
图1是本发明网络节点示意图;
[0030]
图2是本发明拥塞控制机制模型架构图;
[0031]
图3是本发明算法流程图;
具体实施方式
[0032]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0033]
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0034]
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0035]
本实施例中提供了一种基于深度强化学习的智能感知双向节点拥塞控制方法,具体实施方式如下:
[0036]
拥塞检测。拥塞检测可以发现无线传感器网络(wsns)中拥塞的存在并明确具体拥塞发生的位置。在wsns中,每个传感器节点都有一个缓冲队列,用于载入目前即将发送但未发送的数据,缓冲队列的长度可以有效的进行拥塞程度的检测。本实施例中采用节点缓冲队列长度进行拥塞检测,使用固定阈值作为节点拥塞发生的标志。如前所述,节点进行拥塞感知时只根据自身拥塞程度来做出相应的拥塞控制举动有太多的不合理性,因此,本发明在进行拥塞检测时,不仅依赖于检测节点自身的缓冲队列长度,还依赖于检测节点的上行节点的缓冲队列长度,节点通过双向感知自身与其上行节点的缓冲队列长度可以很好的感知目前网络的拥塞情况,并且对于后续节点进行发送速率的更改来进行拥塞程度的降低有重要的参考价值。此外,结合图1可知,当前未与无线传感器网络相关联的节点之后有可能加入到网络中一起进行环境监测并收集相关数据,同级节点数目的多少会直接的决定了上行节点在一段时间内所接收的数据包数目的多少,因此本发明进一步地还将同级节点数目
也作为拥塞程度检测的指标之一。
[0037]
拥塞通知。本发明引入深度强化学习技术,将能够与环境的交互帮助智能体(agent)部署在终端传感器节点上,智能体需要上行节点告知其局部拥塞情况,采用隐式的拥塞通知来传递拥塞情况。结合图1,上行节点会在接收来自某个下行节点的数据包之后返回一个ack确认帧,以此保证可靠传输;ack中会捎带上行节点当前时刻的缓冲队列长度,以及捎带此时节点的同级节点的数目大小。
[0038]
拥塞控制。本发明采用了一种基于drl(deep reinforcement learning)的感知双向节点的拥塞控制方法,具体算法结构如图2所示。该方法可以被数学建模成一个马尔可夫决策过程mdp(markov decision process)问题,其通过与环境的交互帮助智能体agent做出决策。具体实施中,drl是一种试错学习,agent不断进行决策尝试并获得相应的回报,继而逐渐学会解决问题的能力。图2展示了本发明提出的算法架构,其采用double dqn(ddqn)作为训练模型来动态改变节点的数据包发送速率。ddqn包括两个网络:评估网络和目标网络,它们有相同的网络结构,其不同之处在于评估网络用于根据当前的策略选择动作,而目标网络用于评估当前状态的价值,这可以有效的降低算法中的高估问题。评估网络用网络权重参数为θ的神经网络逼近状态-动作对的q值:q(s
t
,a
t
;θ),其中s
t
表示t时刻下的环境状态、a
t
表示t时刻下选择的动作、θ为评估网络的权重参数。本发明中评估网络可选择由1个全连接隐藏层64个神经元组成。权重参数可以在训练过程中通过降低损失函数进行优化,其中损失函数公式为:
[0039]
l(θ)=e[(y
t-q(s
t
,a
t
;θ))2]
[0040]
在这一公式中,e[]表示期望值,是指对样本空间内所有可能取值的预测值进行加权平均的结果;y
t
表示时刻t下的目标值;y
t
的计算公式如下:
[0041]yt
=r
t
+y
×
q(s
t+1
,argmaxaq(s
t+1
,a;θ);θ

)
[0042]
其中r
t
表示t时刻下选择动作所得到的即时奖励;γ表示折扣因子,用于衡量当前动作对未来奖励的重要性,且y∈[0,1];q(s
t+1
,argmaxaq(s
t+1
,a;θ);θ

)为目标状态动作值函数,表示在s
t+1
(t时刻的下一个环境状态)下采取最优动作argmaxaq(s
t+1
,a;θ)所获得的期望奖励;q(s
t+1
,a;θ)表示在状态s
t+1
下采取动作a时的神经网络逼近状态-动作值函数,θ

表示目标网络权重参数。
[0043]
本发明中评估网络通过训练不断的更新,目标网络会周期性的从评估网络中获得相应的参数。
[0044]
进一步地,本发明中拥塞控制机制还包括经验回放机制,这可以降低经验数据的相关性以更好的提升训练效率。具体实施时经验回放中存放的是mdp状态转移四元组(s
t
,a
t
,r
t
,s
t+1
),也可以称为经验。在评估网络进行参数更新时,首先智能体(agent)与环境进行交互获得相应的经验,将经验存进经验回放中,经验回放容量的大小会预先设置,待经验存满之后,agent会随机抽取经验回放中固定数目的经验四元组进行训练并更新参数。接下来对算法中智能体(agent)与环境的交互作详细的描述,主要包含三个方面:状态空间、动作空间和奖励。
[0045]
状态空间的选择至关重要,因为这是帮助智能体(agent)捕捉网络环境状态的关键,本发明的状态空间包含四部分,即:
[0046]
[0047]
其中,表示在时刻t时下行节点的缓冲队列长度,表示在时刻t时上行节点缓冲队列长度,r
t
表示在时刻t时数据包发送速率,n
t
表示在时刻t时下行节点数目。这里的下行节点数目表示的是某一个上行节点所拥有的下行节点数目。当下行节点在时间t将数据包成功发给上行节点时,上行节点会产生ack确认包进行回复,ack包中会捎带上行节点的缓冲队列信息(表示时刻t的下一上行节点缓冲队列长度),这里本发明采用的是隐式的拥塞通知方法。另外,节点会从网络环境中感知表示时刻t的下一下行节点缓冲队列长度,r
t+1
(表示时刻t的下一数据包发送速率),n
t+1
(表示时刻t的下一下行节点数目)。此外,我们将下行节点数目考虑在状态空间的动机是希望智能体(agent)可以在网络环境动态变化(网络含有突发流量的情况下)快速捕捉变化并以此做出相应的策略。
[0048]
动作空间:本发明将动作空间定义为发送速率变化的倍数,其设置为:
[0049]
a={2,1.5,1.25,1.2,0.9,0.8,0.7,0.6,0.5}
[0050]
为了防止盲目的增加发送速率而导致数据包发送数目的无限增大,本发明还设置了发送速率的上限和下限值。
[0051]
奖励:本发明中奖励是为了鞭策智能体(agent)在训练过程中朝着预先定义好的目标发展,智能体(agent)通过不断和网络进行交互以此期望得到最高的奖励。本发明旨在饱和网络环境状态下获得最优的网络性能,因此奖励设置为数据包递送率(packet deliver rate,pdr)、系统数据包丢失率(packet loss rate,plr)和可用缓冲队列率(available buffer rate,abr)三者的平衡。其中奖励函数公式如下:
[0052][0053]
其中α表示第一系数、β表示第二系数、δ表示第三系数,pdr
t
表示时刻t的数据包递送率,即上行节点在时刻t时成功接收数据包的数目与其所有下行节点发送数据包总数的比值。本发明中可选择用p表示数据包成功递交的数目,t表示所有下行节点发送的数据包数目,因此pdr的计算公式如下:
[0054][0055]
因为节点的缓冲队列长度是有限的,且越靠近sink节点的节点承担的数据包交付数目越多,所以本发明同时考虑了上行和下行节点双方的数据包丢失率,也可以称之为系统数据包丢失率,且双方的最大缓冲队列长度不一致。系统的数据包丢失率在时间t时的计算如下:
[0056]
plr
t
=μ
×sl

×fl
[0057]sl
表示时刻t的下行节点数据包溢出的数目除以其所获得的数据包数目;f
l
表示时刻t的上行节点数据包溢出的数目除以其所获得的数据包数目;μ表示第四系数,ρ表示第五系数。
[0058]
另外,本发明还考虑了可用缓冲队列作为衡量网络性能好坏的指标,该指标主要针对上行节点缓冲队列,因为一旦上行节点缓冲队列满的情况下,其下行节点交付再多的数据包也无法有效的被接收,时刻t下abr的计算公式如下:
[0059][0060]
其中,f
maxbuffer
表示最大的缓冲队列长度。参考附图3,其进一步给出了智能体(agent)在训练过程中的详细算法流程。
[0061]
智能体(agent)进行训练的具体步骤如下:
[0062]
步骤1:初始化,设置一个容量为n的经验重放池φ,评估网络权重参数θ,目标网络权重参数θ',令θ

=θ,评估网络和目标网络的网络结构完全相同。drl-sbcc将最大训练轮数设为m,当前训练轮数设为ne,每轮训练过程的总时间为t。
[0063]
步骤2:智能体开始与网络环境交互,首先判断episode是否达到最大训练轮数episodemax,如果达到,转至步骤11,反之,执行步骤3。
[0064]
步骤3:每轮智能体开始训练之前需要将网络环境重置,并且记录当前训练时间步长t。
[0065]
步骤4:一旦time》time
max
,则意味本轮训练结束,跳至步骤12,否则,执行步骤5。
[0066]
步骤5:随机产生一个概率值,如果小于∈,则让评估网络选择目标动作价值函数中产生最优期望回报的动作,否则随机选择一个动作。
[0067]
步骤6:执行动作at,网络环境返回奖励rt和下一时刻的状态st+1,训练时长time+1。
[0068]
步骤7:将经验四元组存储在经验池中,并随机抽样m个小批次的经验。
[0069]
步骤8:利用抽样的m个小批次经验计算损失函数值。
[0070]
步骤9:通过梯度下降寻找损失函数最小值,以此更新评估网络参数θ。
[0071]
步骤10:判断是否达到目标网络更新参数周期,如果达到,执行步骤11,否则跳至步骤4。
[0072]
步骤11:更新目标网络参数,θ

=θ,跳转步骤4。
[0073]
步骤12:训练轮数加1。
[0074]
步骤13:智能体(agent)训练结束。
[0075]
本发明在考虑wsns节点级别拥塞问题时从传感器节点本身的发送速率着手,发送速率的不同影响发送数据包的数量,即改变了注入网络的数据包数量,进一步也改变了其上行节点缓冲队列的长度。因为上行节点同时也需要进行数据包的递送,因此在上行节点,下行节点双方都会出现拥塞的可能。本发明正是因为考虑到该种情况,让智能体(agent)在进行发送速率的设置时充分考虑到上下行节点双方的缓冲队列长度来避免因局部考虑一方缓冲队列长度而带来的局部盲点问题。具体地,本发明引入了double dqn来训练agent独立进行自身发送速率的更改以降低网络拥塞。其从数据递送位置关系入手,同时感知下行节点和上行节点双方的拥塞关系以此做全局的拥塞考虑,此举可以有效避免因为局部观察的盲区而导致速率调整存在偏差进而加重网络拥塞。
[0076]
在训练agent过程中,本发明使用了pdr、plr和abr三者复合奖励来激励agent做出正确决策。根据不同的网络环境要求可以对三者进行不同的权重参数配置。本发明针对wsns领域,因此agent在wsns中可以在容忍一定量的丢包情况下最大化节点数据包递送率和网络资源可用率。
[0077]
另外,因强化学习可以在不需要收集相关数据信息的前提下,其让智能体(agent)自身根据先前与环境的一次次试错来获得经验并学习到最优的拥塞控制机制,这在一定程度上规避了传统基于规则的拥塞控制机制对网络环境复杂度的弱适应性。以及本发明充分考虑到wsns环境的动态多样性,将下行节点数目作为网络状态的衡量指标之一辅助agent训练,这一举措可以帮助agent更好捕获网络环境的变化,并在网络环境发生变化时(如突发流量的出现)及时调整发包速率以降低网络拥塞。
[0078]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0079]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

技术特征:
1.基于深度强化学习的智能感知双向节点拥塞控制方法,其特征在于:包括以下步骤,拥塞检测;用于检测节点自身的缓冲队列长度,以及检测节点的上行节点的缓冲队列长度,通过双向感知自身与其上行节点的缓冲队列长度用于判断目前网络的拥塞情况,并使用固定阈值作为节点拥塞发生的标志;拥塞通知;将能够与环境交互的智能体部署在终端传感器节点上,智能体需要上行节点告知其局部拥塞情况,采用隐式的拥塞通知来传递拥塞情况;上行节点在接收来自某个下行节点的数据包之后返回一个ack确认帧,ack确认帧中会捎带上行节点当前时刻的缓冲队列长度;拥塞控制;包括一种基于drl的感知双向节点的拥塞控制方法,采用double dqn作为训练模型来动态改变节点的数据包发送速率,所述ddqn包括评估网络和目标网络,所述评估网络用于根据当前的策略选择动作,目标网络用于评估当前状态的价值;所述智能体(agent)与环境的交互包括状态空间、动作空间和奖励;所述状态空间s
t
包含四部分,即:其中,表示在时刻t时下行节点的缓冲队列长度,表示在时刻t时上行节点缓冲队列长度,r
t
表示在时刻t时数据包发送速率,n
t
表示在时刻t时下行节点数目;所述动作空间为发送速率变化的倍数,其设置为:a={2,1.5,1.25,1.2,0.9,0.8,0.7,0.6,0.5}所述奖励r
t
采用以下公式计算,r
t
=pdr
t
×
α+abr
t
×
β-plr
t
×
δ其中α表示第一系数、β表示第二系数、δ表示第三系数,且α+β+δ=1;pdr
t
表示时刻t的数据包递送率;abr
t
表示时刻t的可用缓冲队列率;plr
t
表示时刻t的系统数据包丢失率。2.根据权利要求1所述的基于深度强化学习的智能感知双向节点拥塞控制方法,其特征在于:所述拥塞检测还包括检测同级节点数目。3.根据权利要求1所述的基于深度强化学习的智能感知双向节点拥塞控制方法,其特征在于:评估网络用网络权重参数为θ的神经网络逼近状态-动作对的q值:q(s
t
,a
t
;θ),其中s
t
表示t时刻下的环境状态、a
t
表示t时刻下选择的动作、θ为评估网络的权重参数。

技术总结
本发明为了解决现有技术中节点拥塞的问题,提供了一种基于深度强化学习的智能感知双向节点拥塞控制方法,包括以下步骤:拥塞检测;用于检测节点自身的缓冲队列长度,以及检测节点的上行节点的缓冲队列长度;拥塞通知,将能够与环境交互的智能体部署在终端传感器节点上,智能体需要上行节点告知其局部拥塞情况,采用隐式的拥塞通知来传递拥塞情况;拥塞控制;包括一种基于DRL(的感知双向节点的拥塞控制方法,采用DDQN作为训练模型来动态改变节点的数据包发送速率。本发明通过感知下行节点和上行节点双方的拥塞关系以此做全局的拥塞考虑,此举可以有效避免因为局部观察的盲区而导致速率调整存在偏差进而加重网络拥塞。致速率调整存在偏差进而加重网络拥塞。致速率调整存在偏差进而加重网络拥塞。


技术研发人员:王国伟 朱红坤 贺光华 李奇隆
受保护的技术使用者:重庆川南环保科技有限公司
技术研发日:2023.05.06
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐