本发明涉及网络通信协议,具体涉及一种基于多智能体深度强化学习的tcp拥塞控制方法及装置。
背景技术:
拥塞控制是传输控制协议(transmissioncontrolprotocol,tcp)在发送方调节传输速率以有效利用网络带宽并缓解网络拥塞的的基本机制,tcp协议的优化重点在于拥塞控制的设计。设计一个优秀的拥塞控制算法的难点在于:首先,在复杂的网络环境中存在噪音干扰,需要有效地检测网络拥塞,例如,丢包的原因有自拥塞丢包、随机丢包、缓存限制等等,如果一味地将丢包视作网络拥塞将无法有效利用带宽资源;其次,面对动态多变的网络环境,需要及时调整拥塞控制策略,适应网络变化,例如,一个wi-fi信号,它的网络质量与环境高度相关,与信号源的距离,中间是否存在障碍物,甚至是人的活动,都将使网络发生变化;最后,多个tcp流竞争可用带宽,还需要考虑公平性,进一步加剧了拥塞控制设计的难度。现有启发式tcp拥塞控制方法在复杂多样动态变化的网络环境中不具备良好的适应性及公平性,控制效果较差。
技术实现要素:
发明目的:针对现有技术的缺陷,本发明提出了一种基于多智能体深度强化学习的tcp拥塞控制方法,能够从根本上解决现有启发式tcp拥塞控制算法在复杂多样动态变化的网络环境中的适应性及公平性问题。
本发明的另一目的是提供过一种基于多智能体深度强化学习的tcp拥塞控制装置。
技术方案:为了实现以上的发明目的,本发明采用如下的技术方案:
第一方面,提供一种基于多智能体深度强化学习的tcp拥塞控制方法,包括以下步骤:
(1)通过在线变点检测技术,监视排队延迟的变化,将tcp拥塞控制过程划分为连续的统计区间;
(2)在每个统计区间内,将每一个发送方测量的网络参数作为网络环境的本地状态,将本地状态输入到表示拥塞控制策略的actor神经网络,并根据actor神经网络输出的本地动作,设置发送方的拥塞窗口;
(3)多智能体并行联合训练,根据所有发送方测量的网络参数和设定的奖赏函数,计算每个发送方的本地动作对应的本地奖赏,以及所有发送方的全局奖赏,并根据本地奖赏和全局奖赏对深度神经网络进行联合训练;
(4)将每个统计区间内的每个发送方的本地状态汇总为全局状态、本地动作汇总为联合动作,将全局状态、联合动作以及对应的奖赏函数得出的以及对应的奖赏值输入到critic神经网络,输出对全局动作的评估结果;
(5)根据critic神经网络输出的评估结果,更新actor神经网络参数,即更新拥塞控制策略,同时也更新critic神经网络参数。
进一步地,步骤1中排队延迟根据下式计算:di=rtti-rttmin,通过计算变点的后验概率:p(di-ω是变点|di:i)>η确定变点,划分统计区间。即在观察到一系列样本d1:i的情况下,其中di-ω样本是变点的后验概率大于阈值η。
步骤2中本地状态包含的网络参数有:发送速率均值、吞吐量均值、最大吞吐量、变点前后的排队延迟均值及其方差;步骤2中第i个发送方的actor神经网络输出的本地动作是一个增益系数ai,拥塞窗口由增益系数和bdp确定,即cwnd=ai×bdp,其中ai∈(0,2]。
步骤3中奖赏函数由本地奖赏和全局奖赏两部分组成,第i个发送方的奖赏函数为:
全局奖赏为:
rg=wfvfairness-wlvloss
其中,vithroughtput表示一个统计区间内发送方i的平均吞吐量,videlay表示一个统计区间内发送方i的平均排队延迟,vijitter表示一个统计区间内发送方i排队延迟的方差,vfairness表示一个统计区间内所有发送方的吞吐量jain公平指数,vloss表示一个统计区间内拥塞丢包的次数。wt,wd,wj,wf,wl分别为相应的权重参数。
步骤4中所述的全局状态和联合动作分别是同一个统计区间内,所有发送方本地状态的拼接及本地动作的拼接。critic神经网络的输出是一个实数值。
步骤5中所述的actor神经网络根据critic神经网络的输出更新参数,critic神经网络根据奖赏值和输出更新参数,参数的更新方法为随机梯度下降,参数更新的经验数据来源于与一个模拟环境的交互。
第二方面,提供一种基于多智能体深度强化学习的tcp拥塞控制装置,所述装置包括:
存储器,其中存储有一个或多个程序,所述一个或多个程序被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下步骤的方法:
(1)通过在线变点检测技术,监视排队延迟的变化,将tcp拥塞控制过程划分为连续的统计区间;
(2)在每个统计区间内,将每一个发送方测量的网络参数作为网络环境的本地状态,将本地状态输入到表示拥塞控制策略的actor神经网络,并根据actor神经网络输出的本地动作,设置发送方的拥塞窗口;
(3)多智能体并行联合训练,根据所有发送方测量的网络参数和设定的奖赏函数,计算每个发送方的本地动作对应的本地奖赏,以及所有发送方的全局奖赏,并根据本地奖赏和全局奖赏对深度神经网络进行联合训练;
(4)将每个统计区间内的每个发送方的本地状态汇总为全局状态、本地动作汇总为联合动作,将全局状态、联合动作以及对应的奖赏函数得出的奖赏值输入到critic神经网络,输出对全局动作的评估结果;
(5)根据critic神经网络输出的评估结果,更新actor神经网络参数,即更新拥塞控制策略,同时也更新critic神经网络参数。
有益效果:本发明首次提出使用多智能体深度强化学习算法来优化tcp拥塞控制,利用人工深度神经网络表示tcp拥塞控制策略,并且通过学习出各种网络环境下的最优拥塞控制策略,从根本上解决现有启发式tcp拥塞控制算法在复杂多样动态变化的网络环境中的适应性及公平性问题。此外,使用在线变点检测技术划分统计区间,使用actor-critic强化学习框架,采用集中训练、分散执行的方式,直接对多流竞争瓶颈链路的拥塞控制问题进行建模和学习,从而提高策略优化效率,加速神经网络的训练。
附图说明
图1是本发明考虑的多个发送方竞争瓶颈链路带宽的场景示意图;
图2是本发明统计区间划分的示意图;
图3是基于多智能体深度强化学习的tcp拥塞控制方法框架图;
图4是根据本发明实施例的集中训练及分散执行示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。应当了解,以下提供的实施例仅是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的技术构思,本发明还可以用许多不同的形式来实施,并且不局限于此处描述的实施例。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。
本发明提供一种基于多智能体深度强化学习的tcp拥塞控制方法,考虑有n个发送方竞争瓶颈链路带宽的场景,首先,在模拟环境中,使用所有发送方的全局信息集中训练,生成拥塞控制策略;然后,在真实环境中,允许发送方使用本地信息进行分散执行。方法主要包含以下步骤,其中步骤3-5为集中训练阶段,步骤2为分散执行阶段:
(1)通过在线变点检测技术,监视排队延迟的变化,将tcp拥塞控制过程划分为连续的统计区间;
(2)在每个统计区间内,每一个发送方都会测量网络参数作为网络环境的本地状态,将本地状态输入到表示拥塞控制策略的actor神经网络,并根据actor神经网络输出的本地动作,设置发送方的拥塞窗口,即分散执行;
(3)多智能体并行联合训练,根据所有发送方测量的网络参数和设定的奖赏函数,计算每个发送方的本地动作对应的本地奖赏,以及所有发送方的全局奖赏,并根据本地奖赏和全局奖赏对深度神经网络进行联合训练;
(4)将每个统计区间内的每个发送方的本地状态汇总为全局状态、本地动作汇总为联合动作,将全局状态、联合动作、以及对应的通过奖赏函数得到的奖赏值输入到critic神经网络,输出对全局动作的评估结果;
(5)根据critic神经网络输出的评估结果,更新actor神经网络参数,即更新拥塞控制策略,同时也更新critic神经网络参数。
图1是本发明实施例中考虑的多个发送方竞争瓶颈链路带宽的场景示意图,如图所示的哑铃拓扑,发送方与接收方之间的tcp流共享主机1和主机2之间的瓶颈链路,忽略发送方、接收方同主机之间的传输延迟。在这个场景下,拥塞控制算法要在保证带宽利用率的情况下,考虑如何公平地在多个流之间分配瓶颈链路带宽。
图2是本发明实施例中统计区间划分的示意图,如图所示,本发明将tcp拥塞控制过程划分成若干个统计区间,进而将多流竞争瓶颈链路的拥塞控制问题建模为马尔可夫博弈过程,从而使用多智能体强化学习框架解决问题。利用actor神经网络和critic神经网络,作为深度强化学习所使用的神经网络。具体地,在每个统计区间内,每个发送方独立观测排队延迟的变化,一旦瓶颈链路出现拥塞,所有发送方都能检测到排队延迟的变化,进而实现每个发送方统计区间的同步。一个统计区间最多持续
在本发明实施例中,
若li=ω,可以得出li-ω=0,即第i-ω处存在变点。
后验概率由统计并递归计算得到。
图3是基于多智能体深度强化学习的tcp拥塞控制方法框架图,如图所示,本发明使用多智能体强化学习框架,采用基于策略梯度的深度强化学习算法,对tcp拥塞控制进行建模和学习,从而优化tcp拥塞控制的自适应性和公平性。本发明将tcp拥塞控制过程划分成连续的统计区间,在每个统计区间内,每个发送方独立观察本地状态s,然后发送方根据拥塞控制策略将本地状态映射到一个动作a,汇总所有发送方的动作组成联合动作执行,全局的网络环境将发生改变,每个发送方能够观察到新的本地状态相应的奖赏信号r。
具体地,统计区间的本地状态包括当前统计区间的:发送速率均值、吞吐量均值、最大吞吐量、变点前后的排队延迟均值及其方差。发送方i的动作ai是一个增益系数,拥塞窗口由增益系数和bdp确定,即cwnd=ai×bdp,ai∈(0,2]。bdp是带宽时延积(bandwidth-delayproduct)的缩写,即链路上的最大比特数,也称以比特为单位的链路长度。联合动作可以表示为(a1,...,an),具体是指根据增益系数来调整拥塞窗口,这里通过增益系数对bdp的使用率进行动态调节,来接近真实的kleinrock点。增益系数由动作决定,在系统的初始阶段存在初始值,在运行过程中由神经网络的输出来作为动作决定系数。奖赏信号由奖赏函数
全局奖赏为:
rg=wfvfairness-wlvloss
其中,vithroughtput表示一个统计区间内发送方i的平均吞吐量,videlay表示一个统计区间内发送方i的平均排队延迟,vijitter表示一个统计区间内发送方i排队延迟的方差,vfairness表示一个统计区间内所有发送方的吞吐量jain公平指数,vloss表示一个统计区间内拥塞丢包的次数。wt,wd,wj,wf,wl为权重参数。其中各项权重的默认取值为:wt=0.5,wd=0.3,wj=0.2,wf=0.5,wl=0.5。该奖赏函数简明实用,计算开销低,响应更加迅速,适用于各种网络环境。
图4是根据本发明实施例的集中训练及分散执行示意图。这个架构允许发送方使用额外的联合信息来训练,而在决策执行时仅使用本地信息。每一个发送方智能体包含了代表actor的神经网络以及代表critic的神经网络,本发明通过critic的集中训练和actor的分散式执行,来实现多发送方联合训练的目标。集中式训练是指在训练中使用联合信息,包括全局状态、联合动作输入到每个发送方的critic神经网络,critic神经网络输出一个函数值,用于对actor神经网络的策略进行评估。
具体而言,在具有n个智能体的系统中,智能体i的策略网络μi的参数为
其中
联合行为值网络的更新方式与ddpg算法类似:
其中μ′=′{μ1′,...,μn′}是目标联合策略网络,用于计算在线联合策略网络μ的梯度。
actor神经网络依据critic神经网络输出的函数值,更新actor神经网络参数。critic神经网络根据奖赏和函数值来更新自己的critic神经网络参数。参数的更新方法为随机梯度下降,参数更新的经验数据来源于与一个模拟环境的交互。
分散执行是指发送方i根据自身观察到的状态si,通过actor神经网络映射到动作ai。该训练过程在一个模拟环境中进行,通过一定数量的训练,学出不同网络环境下最优的拥塞控制策略,从而能够适应动态变化的网络场景及保障公平性。
根据本发明的另一实施例,提供一种基于多智能体深度强化学习的tcp拥塞控制装置,所述装置包括:
存储器,其中存储有一个或多个程序,所述一个或多个程序被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下步骤的方法:
(1)通过在线变点检测技术,监视排队延迟的变化,将tcp拥塞控制过程划分为连续的统计区间;
(2)在每个统计区间内,将每一个发送方测量的网络参数作为网络环境的本地状态,将本地状态输入到表示拥塞控制策略的actor神经网络,并根据actor神经网络输出的本地动作,设置发送方的拥塞窗口;
(3)根据所有发送方测量的网络参数和设定的奖赏函数,计算每个发送方的本地动作对应的本地奖赏,以及所有发送方的全局奖赏;
(4)将每个统计区间内的每个发送方的本地状态汇总为全局状态、本地动作汇总为联合动作、以及对应的奖赏值输入到critic神经网络,输出对全局动作的评估结果;
(5)根据critic神经网络输出的评估结果,更新actor神经网络参数,即更新拥塞控制策略,同时也更新critic神经网络参数。
其中步骤(1)的统计区间的划分、步骤(2)的拥塞控制策略以及拥塞窗口的设置方式、步骤(3)中奖赏函数的具体形式、步骤(4)中critic神经网络的操作以及步骤(5)中参数更新的具体方式,和前述方法实施例中的一样,具体可以参照方法实施例中的描述。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。