一种基于深度强化学习的拥塞控制方法及系统与流程

文档序号:19427764发布日期:2019-12-17 15:51阅读:418来源:国知局
一种基于深度强化学习的拥塞控制方法及系统与流程

本发明涉及计算机技术领域,具体涉及一种基于深度强化学习的拥塞控制方法及系统。



背景技术:

下一代互联网技术的快速发展和互联网应用程序的快速增加,为人们带来生活便利和提高体验质量的同时也对网络性能提出了新的要求,尤其是在网络的拥塞控制方面,需要根据网络的超时重传的分组数、平均分组时延以及被丢弃的分组的百分数等网络指标,不断调整数据的发送速率,降低网络拥塞的发生,使网络资源得到有效利用,提高网络的性能,为用户提供高质量的服务体验。计算机网络拥塞控制作为提高网络吞吐量、降低数据传输时延和降低数据丢包率等网络性能的重要手段,已成为计算机网络技术领域的研究热点和进一步发展的重要方向。

现有技术中,拥塞控制方法主要可以分为三大类:(1)基于丢包的拥塞控制方法。(2)基于延迟的拥塞方法。(3)基于探测的拥塞控制方法。

本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:

基于丢包的拥塞控制方法将丢包视为拥塞信号,遇到丢包时将发送窗口减半来规避拥塞。但是在没有丢包的情况下,会不断填充缓冲区,使缓冲区长期保持过满状态,造成了过大的排队延迟,而且,在链路丢包的网络环境中,带宽利用率也很差。基于时延的拥塞控制方法,使用了延迟作为拥塞信号,包括发送延迟、排队延迟和传输延迟等。而且可以利用延迟可以粗略的估计网络数据包的数量,基于延迟的拥塞控制协议可以保证它们在限制延迟上有不错的性能表现,但是在与基于丢包的数据流共享瓶颈带宽时,会因为缺乏竞争力而导致带宽分配的不公平。基于探测的拥塞控制方法,没有设置特定的拥塞信号,而是借助评价函数,使用探测的方法去形成一个拥塞控制策略。但是控制策略均依赖于训练数据形成,当真实网络情况有所差异时,性能表现会大幅下降,而且有些使用的探测方法在面对网络环境的变化不能快速的做出反应。

由此可知,现有技术中的方法存在控制效果较差的技术问题。



技术实现要素:

有鉴于此,本发明提供了一种基于深度强化学习的拥塞控制方法及系统,用以解决或者至少部分解决现有技术中的方法存在的控制效果较差的技术问题。

为了解决上述技术问题,本发明提供了一种基于深度强化学习的拥塞控制方法,包括:

步骤s1:初始化网络环境,生成网络状态数据,其中,网络状态数据包括网络时延、传送率、发送率以及拥塞窗口大小;

步骤s2:初始化拥塞控制模型的参数,其中,拥塞控制模型的参数包括奖励函数、经验池尺寸、神经网络结构和学习率;

步骤s3:从生成的网络状态数据中选取目标网络状态数据,根据目标网络状态数据、奖励函数和损失函数更新神经网络的参数,生成不同的拥塞控制模型;

步骤s4:根据奖励函数的值和损失函数的值,筛选出最优模型作为目标拥塞控制模型,将目标拥塞控制模型部署至网络中,进行拥塞控制。

在一种实施方式中,步骤s1具体包括:

步骤s1.1:建立通信双方之间的连接;

步骤s1.2:根据通信双方通过建立的连接发送的数据,计算网络时延、传送率、发送率和拥塞窗口大小。

在一种实施方式中,步骤s2中拥塞控制模型的参数还包括:

q网络的参数、目标q网络的参数、回合数、吞吐量阈值、奖励阈值和一个回合的最大步数值。

在一种实施方式中,步骤s3具体包括:

步骤s3.1:根据目标网络状态数据以概率大小为∈进行探索,随机采取动作,或者以1-∈的概率选取当前状态下q值最大的动作argmaxaq(φ(st),a;θ),其中,∈为概率变量,q值表示采取不同动作时通过神经网络计算的值,a表示不同的动作,φ(st)表示t时刻的状态;

步骤s3.2:根据获取的reward函数的值,通过极小化损失函数的方式更新神经网络参数,生成不同的拥塞控制模型。

在一种实施方式中,所述方法还包括:

判断当前回合的步是否结束,如果当前回合的累计奖励值小于奖励阈值且吞吐量小于吞吐量阈值或者当前回合的步数大于或等于一个回合的最大步数值时,则生成拥塞控制模型,否则开启回合的下一个步,其中每一个回合对应训练的一个轮次。

在一种实施方式中,步骤s3中的神经网络包括输入层,隐藏层以及输出层,其中,隐藏层包括两层卷积层和两层全连接层,卷积层用于提取输入的数据组的特征,全连接层用于整合卷积层中具有类别区分性的局部信息。

在一种实施方式中,奖励函数形式为:

reward=α*tput-β*rtt-γ*packet_loss_rate(1)

其中,reward表示奖励值,rtt表示网络时延,packet_loss_rate表示数据包的丢失率,为丢包数量与发送包的数量的比值,α、β、γ值为预设参数。

在一种实施方式中,吞吐量的计算公式如下:

tput=0.008*(delivered-last_delivered)/max(1,duration)(2)

其中,tput表示吞吐量,duration表示当前数据流开启的总时长,delivered表示本次的数据传输量,last_delivered表示上一次的数据传输量。

基于同样的发明构思本发明第二方面提供了一种基于深度强化学习的拥塞控制系统,包括:

参数初始化模块,用于初始化网络环境,生成网络状态数据,其中,网络状态数据包括网络时延、传送率、发送率以及拥塞窗口大小;

环境初始化模块,用于初始化拥塞控制模型的参数,其中,拥塞控制模型的参数包括奖励函数、经验池尺寸、神经网络结构和学习率;

模型生成模块,用于从生成的网络状态数据中选取目标网络状态数据,根据目标网络状态数据、奖励函数和损失函数更新神经网络的参数,生成不同的拥塞控制模型;

拥塞控制模块,用于根据奖励函数的值和损失函数的值,筛选出最优模型作为目标拥塞控制模型,将目标拥塞控制模型部署至网络中,进行拥塞控制。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本发明提供的一种基于深度强化学习的拥塞控制方法,首先,初始化网络环境,获取网络状态数据,其中,网络状态数据包括网络时延、传送率、发送率以及拥塞窗口大小;然后初始化拥塞控制模型的参数,其中,拥塞控制模型的参数包括奖励函数、经验池尺寸、神经网络结构和学习率;接着,从生成的网络状态数据中选取目标网络状态数据,根据目标网络状态数据、奖励函数和损失函数更新神经网络的参数,生成不同的拥塞控制模型;最后,根据奖励函数的值和损失函数的值,筛选出最优模型作为目标拥塞控制模型,将目标拥塞控制模型部署至网络中,进行拥塞控制。

由于本发明可以利用选取的网络状态数据(网络时延、传送率、发送率以及拥塞窗口大小)等来对拥塞控制模型进行训练,根据训练结果选出模型损失函数值最小和奖励函数值最大的拥塞控制模型,然后将模型部署到网络中,进行拥塞控制。该方法依据当前的网络吞吐量、往返时延以及数据丢包率动态的调整拥塞窗口的大小,从而控制数据的发送率,降低网络拥塞的发生,达到优化网络性能的目的。解决了现有技术中的方法存在的控制效果较差的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于深度强化学习的拥塞控制方法的流程示意图;

图2为本发明具体实施例中拥塞控制方法的整体步骤图;

图3是本发明实施例的初始化运行环境流程图;

图4是本发明实施例的拥塞窗口自适应调整示意图;

图5是本发明实施例的模型参数更新示意图;

图6是本发明实施例的一种基于深度强化学习的拥塞控制系统的结构框图。

具体实施方式

本发明的目的在于针对现有技术中的方法存在的控制效果较差的技术问题,提出一种基于深度强化学习的拥塞控制方法及系统,从而达到改善拥塞控制效果的目的。

为达到上述目的,本发明的主要构思如下:

本发明主要基于强化学习,利用网络中的当前窗口、吞吐量、时延以及数据发送率等性能指标,提出了一个基于深度强化学习的拥塞控制方法及系统。现有的网络拥塞控制技术一般基于时延(round-triptime,rtt),丢包率(loserate)等控制发送速率,虽然在一定程度上可以解决网络拥塞,但是不能根据真实的网络环境去调节拥塞窗口,整体性能不如本发明。本发明的方法可以充分利用率网络的性能指标,通过深度强化学习来生成拥塞控制模型,产生合适的值(拥塞窗口的大小和方向),来调节网络拥塞窗口的大小和方向,以提高网络吞吐量,降低丢包率和延时,进而解决网络拥塞。通过本发明能够获得更好的网络性能,获得的结果更加科学和精确。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种基于深度强化学习的拥塞控制方法,请参见图1,该方法包括:

步骤s1:初始化网络环境,生成网络状态数据,其中,网络状态数据包括网络时延、传送率、发送率以及拥塞窗口大小。

具体来说,步骤s1是初始化计算机网络的参数,然后生成网络状态数据。

在具体实施时,步骤s1具体包括:

步骤s1.1:建立通信双方之间的连接;

步骤s1.2:根据通信双方通过建立的连接发送的数据,计算网络时延、传送率、发送率和拥塞窗口大小。

具体来说,在程序开始之前,需要对网络环境进行初始化,建立通信双方之间的连接,利用通信双方的数据发送来计算网络的网络时延(rtt),传送率(deliveryrate),发送率(sendingrate)和拥塞窗口大小(congestionwindow,cwnd)等状态数据,将这些数据存入到经验池中。当经验池存入一定量的数据之后,可以从经验池中随机采取一定数量的状态数据,为每一步的运行做准备(即后续的训练)。

步骤s2:初始化拥塞控制模型的参数,其中,拥塞控制模型的参数包括奖励函数、经验池尺寸、神经网络结构、学习率。

步骤s2中拥塞控制模型的参数还包括:

q网络的参数、目标q网络的参数、回合数、吞吐量阈值、奖励阈值和一个回合的最大步数值。

具体来说,在对模型进行训练之前,首先需要初始化经验池、q网络的参数和目标q网络的参数。然后初始化一个回合,设定一个吞吐量预置bad-tput和设定一个奖励阈值bad-reward以及一个回合的最大步数值max-step。

步骤s3:从生成的网络状态数据中选取目标网络状态数据,根据目标网络状态数据、奖励函数和损失函数更新神经网络的参数,生成不同的拥塞控制模型。

具体来说,可以从步骤s1中生成的网络状态数据中随机选取数据作为目标网络状态数据。然后利用目标网络状态数据对神经网络进行训练,其中,奖励函数和损失函数用来调整更新神经网络的参数,从而得到不同的拥塞控制模型。

在一种实施方式中,步骤s3具体包括:

步骤s3.1:根据目标网络状态数据以概率大小为∈进行探索,随机采取动作,或者以1-∈的概率选取当前状态下q值最大的动作argmaxaq(φ(st),a;θ),其中,∈为概率变量,q值表示采取不同动作时通过神经网络计算的值,a表示不同的动作,φ(st)表示t时刻的状态;

步骤s3.2:根据获取的reward函数的值,通过极小化损失函数的方式更新神经网络参数,生成不同的拥塞控制模型。

具体来说,强化学习中,拥塞控制是通过动作来改变窗口的大小,采取什么样的动作的依据是状态数据。以概率大小为∈进行探索、以1-∈的概率进行选取,这两种方式是dqn(深度强化学习)进行动作选择的两种机制。强化学习为agent定义了环境,来实现某些动作以最大化奖励。

在参数更新时,需要根据智能体(agent)收到的奖励函数的反馈,调整q网络和targetq参数,对其分别进行更新。在优化过程中,每经过一定数量的时间步数后,将目标网络targetq参数更新为当前训练网络evalnet的参数。q网络和targetq(目标q网络)为本发明dnq模型中的两种网络,它们结构相同,但是更新方式和作用不相同。

为了优化本发明的神经网络,在每一次优化时,可以随机提取经验池中的小批量数据,而优化的方式就是最小化损失函数l(θ),它的定义如下:

其中,q-(·|θ-)为上一次目标网络更新时得到的参数为θ-时的网络(即实际神经网络的参数计算出的q实际值),q(st,at|θ)为q的估计值,st,at分别表示t时刻的状态以及采取的动作,rt为获取的奖励函数值,max为获取最大的q值,e是获取在当前s下采取a的期望。q实际值和q估计值相差越小越好。通过随机梯度法最小化本发明的损失函数,从而能够有效地达到优化网络的目的。

在一种实施方式中,所述方法还包括:

判断当前回合的步是否结束,如果当前回合的累计奖励值小于奖励阈值且吞吐量小于吞吐量阈值或者当前回合的步数大于或等于一个回合的最大步数值时,则生成拥塞控制模型,否则开启回合的下一个步,其中每一个回合对应训练的一个轮次。

在一种实施方式中,奖励函数形式为:

reward=α*tput-β*rtt-γ*packet_loss_rate(1)

其中,reward表示奖励值,rtt表示网络时延,packet_loss_rate表示数据包的丢失率,为丢包数量与发送包的数量的比值,α、β、γ值为预设参数。

在一种实施方式中,吞吐量的计算公式如下:

tput=0.008*(delivered-last_delivered)/max(1,duration)(2)

其中,tput表示吞吐量,duration表示当前数据流开启的总时长,delivered表示本次的数据传输量,last_delivered表示上一次的数据传输量。

具体来说,判断当前回合的步是否结束,如果当reward<bad-reward并且tput<bad-tput,或者step-count(当前回合的步数)>=max-step,则生成拥塞控制模型,并进行保存。然后开始一个新的回合,并且令step-count=0。否则开启回合的下一个步,增加步的数目方式为令step-count=step-count+1;程序不断运行,生成不同的拥塞控制模型。

步骤s4:根据奖励函数的值和损失函数的值,筛选出最优模型作为目标拥塞控制模型,将目标拥塞控制模型部署至网络中,进行拥塞控制。

具体来说,根据loss和reward的大小,选择一段时间内loss值比较小和reward值比较大时对应的模型作为获取到的最优模型,部署到环境中。根据网络的状态选择最佳的调节拥塞窗口大小和方向的最佳动作。实现方式如下:

获取当前的网络状态state,根据网络的状态state得到action,如cwnd=cwnd*2。然后执行这个action,将当前的拥塞窗口扩大两倍。发送者进行判断是否得到接收者的ack(确认消息),如果没有得到ack那么持续等待,直到得到为止。得到ack后,则更新state和reward,state的更新就是观察步骤s1中的网络链路的网络时延(rtt),传送率(deliveryrate),发送率(sendingrate)和拥塞窗口大小(congestionwindow,cwnd)网络状态,reward的更新就是根据reward函数进行计算,结束流程。

在一种实施方式中,步骤s3中的神经网络包括输入层,隐藏层以及输出层,其中,隐藏层包括两层卷积层和两层全连接层,卷积层用于提取输入的数据组的特征,全连接层用于整合卷积层中具有类别区分性的局部信息。

具体来说,在训练神经网络时,可以“经验池”中随机地抽取一部分样本来训练模型(经验池为一个存放数据的容器,存放历史数据),首先,固定抽取的样本数为“history_length”,在本发明中history_length=16,即每一次在“经验池”中随机的选择16组state数据,作为深度神经网络中第一层输入层的输入,随后第一层的输出进入隐藏层中第一层卷积层。第一层卷积层输入信号的通道数为16,输出的管道数为32,激活函数为relu,作为第二层卷积层的输入,第二层卷积层输入信号的通道数为32,输出的管道数为64,激活函数同样为relu,在两层卷积层的处理后,将提取到的特征数据进行展平(flatter),随后将展平后的数据输入到第一层全连接层,通过激活函数relu处理输出后进入第二层全连接层,而第二层全连接层的输出就是本发明需要的不同action对应的q值。

为了更清楚地说明本发明提供的方法的实现过程和有益效果,下面通过具体的示例来予以详细介绍。

请参见图2,为拥塞控制方法的整体步骤图。首先初始化网络环境,生成网络状态数据,然后判断是否需要训练模型,如果不需要,则执行左分支,否则执行右分支。即选择训练模型还是选择加载模型在实际链路运行。训练模型是对强化学习的agent进行训练,训练出很多个模型。加载模型是选择训练好的一个模型进行网络的拥塞控制。

其中,左分支对应选择加载模型在实际链路运行,此时设置网络环境,选取状态数据运行,获得对应的action,然后调整拥塞窗口的大小。

右分支对应训练模型,首先需要初始化模型的参数,然后随机选取状态数据,在进行模型训练时,采用一个agent对environment中sender和receiver进行观察,将观察的数据state送入dqn的神经网络中。dqn经过送入数据和environment反馈的reward,并不断学习,进而采取一个action,用来作为调节拥塞窗口的方式。environment采取action后,反馈给agent一个reward作为上一步骤的奖惩,用来衡量agent给的action对上一步骤拥塞控制的好坏。reward的值由公式(1)计算得出。

reward=α*tput-β*rtt-γ*packet_loss_rate(1)

其中tput是网络的吞吐量,由公式(2)计算得出;rtt是网络的往返时延,由公式(4)计算得出;packet_loss_rate是数据包的丢失率由公式(3)计算得出,经过实验验证α取值为0.6,β取值为0.2,γ值为0.2的时候,网络的性能最佳。

tput=0.008*(delivered-last_delivered)/max(1,duration)(2)

其中duration代表当前数据流开启的总时长,delivered和last_delivered代表此次和上一次的传输数;

packet_loss_rate=loss_num/send_num(3)

其中loss_num和send_num分别表示丢包数量和发送包的数量。

训练过程如下:需要初始化第一个回合,每个回合有数量不等的步数,具体情况需要判断。运行每一个步。具体实现可以参见图4,flatten表示展平,激活函数为relu,隐藏层包括两层卷积层和两层全连接层,通过隐藏层的两层卷积层的处理后,将提取到的特征数据进行展平(flatter),随后将展平后的数据输入到第一层全连接层,通过激活函数relu处理输出后进入第二层全连接层,而第二层全连接层的输出就是本发明需要的不同action对应的q值。

从神经网络中根据当前的state得到action,具体来说,首先通过经验和多次的实验设计一个对应着本发明设置的五个action的actionlist:["+0.0","-100.0","+100.0","*2","/2.0"],这五个action代表着cwndt+1=cwndt,cwndt+1=cwndt-100,cwndt+1=cwndt+100,cwndt+1=cwndt*2,cwndt+1=cwndt/2。在每一次训练结束后,通过本发明深度神经网络的输出得到当前state下各个action对应的q值,通过选择q值最大的action进而得到一个到“actionlist”的索引,以此来决定agent要选择的action,如在这一次的训练过程中神经网络学习到第二个动作的q值最大,那么网络输出的q值中"-100.0"的q值最大,进一步得到到actionlist的索引“1”,则得到actionlist[1],即"-100.0",所以让agent采取action,即cwndt+1=cwndt-100,达到调整窗口的目的。得到action之后执行这个action。判断是否得到receiver的ack,如果没有得到ack那么持续等待,直到得到为止。得到ack后,需要更新state和reward,state的更新就是观察网络链路的四个参数(上文提及的网络时延、传送率、发送率以及拥塞窗口大小),reward的更新就是根据一个reward的function利用已有的state进行计算。

获取当前的网络状态state,根据网络的状态state得到action。然后执行这个action,将当前的拥塞窗口减少100。判断是否得到receiver的ack,如果没有得到ack那么持续等待,直到得到为止。得到ack后,就要更新state和reward,state的更新就是观察步骤1中的网络链路的四个参数,reward的更新就是根据reward函数进行计算,结束流程。

请参见图3,为初始化运行环境流程图。传入神经网络的state为rtt,传送率(deliveryrate),发送率(sendingrate)和拥塞窗口大小(congestionwindow,cwnd)需要通过公式(4)、(5)、(6)计算获得。经过神经网络的运算,算出每个action的q值,选取最大的q值对应的action作为当前的调节方式。

rtt=float(curr_time_ms-ack.send_ts)(4)

其中curr_time_ms表示sender当前收到ack的时间,ack.send_ts代表此ack对应的packet发送的时间;

其中delivered和ack.delivered分别表示packet的传输数和ack的传输数,delivered_time和ack.delivered_time分别代表packet和ack的传输时间;

send_rate=0.008*(self.sent_bytes-ack.sent_bytes)/max(1,self.rtt)(6)

其中self.sent_bytes表示总共发送的字节,ack.send_bytes表示已近发送的字节。

运行观测程序。具体为如图5所示:

更新缓存区和历史数据,它们保存之前的相关参数。然后判断是否到达learningmini-batch,即判断是否达到最小学习数据,它是根据当前学习的步数learn-step-counter和设定的学习步数learn-start以及训练的频数train-frequency,如果learn-step-counter>learn-start并且learn_step_counter%train_frequency==0,那么神经网络开始学习。紧接着判断是否达到updatetarget-q的条件,如果达到,具体为设定一个更新target-q的频数target_q_update_step,如果learn_step_counter%target_q_update_step==0,那么更新q-value。

总体来说,本发明的技术方案与现有技术相比,具有如下优点和有益效果:

本发明基于强化学习,利用网络中的当前窗口、吞吐量、时延以及数据发送率等性能指标,提出了一个基于深度强化学习的拥塞控制方法及系统。现有的网络拥塞控制技术一般基于时延(round-triptime,rtt),丢包率(loserate)等修改发送速率,虽然在一定程度上可以解决网络拥塞,但是不能根据真实的网络调节去调节拥塞窗口,整体性能不如本发明。本发明的方法可以充分利用率网络的性能指标,通过深度强化学习来采取合适的值,去调节网络拥塞窗口的大小和方向,以提高网络吞吐量,降低丢包率和延时,进而解决网络拥塞。通过本发明能够获得更好的网络性能,获得的结果更加科学和精确。

实施例二

基于同样的发明构思,本实施例提供了一种基于深度强化学习的拥塞控制系统,请参见图6,该系统包括:

参数初始化模块201,用于初始化网络环境,生成网络状态数据,其中,网络状态数据包括网络时延、传送率、发送率以及拥塞窗口大小;

环境初始化模块202,用于初始化拥塞控制模型的参数,其中,拥塞控制模型的参数包括奖励函数、经验池尺寸、神经网络结构、学习率;

模型生成模块203,用于从生成的网络状态数据中选取目标网络状态数据,根据目标网络状态数据、奖励函数和损失函数更新神经网络的参数,生成不同的拥塞控制模型;

拥塞控制模块204,用于根据奖励函数的值和损失函数的值,筛选出最优模型作为目标拥塞控制模型,将目标拥塞控制模型部署至网络中,进行拥塞控制。

在一种实施方式中,环境初始化模块202具体用于执行下述步骤:

步骤s1.1:建立通信双方之间的连接;

步骤s1.2:根据通信双方通过建立的连接发送的数据,计算网络时延、传送率、发送率和拥塞窗口大小。

在一种实施方式中,拥塞控制模型的参数还包括:

q网络的参数、目标q网络的参数、回合数、吞吐量阈值、奖励阈值和一个回合的最大步数值。

在一种实施方式中,模型生成模块203具体用于执行下述步骤:

步骤s3.1:根据目标网络状态数据以概率大小为∈进行探索,随机采取动作,或者以1-∈的概率选取当前状态下q值最大的动作argmaxaq(φ(st),a;θ),其中,∈为概率变量,q值表示采取不同动作时通过神经网络计算的值,a表示不同的动作,φ(st)表示t时刻的状态;

步骤s3.2:根据获取的reward函数的值,通过极小化损失函数的方式更新神经网络参数,生成不同的拥塞控制模型。

在一种实施方式中,所述系统还包括判断模块,用于:

判断当前回合的步是否结束,如果当前回合的累计奖励值小于奖励阈值且吞吐量小于吞吐量阈值或者当前回合的步数大于或等于一个回合的最大步数值时,则生成拥塞控制模型,否则开启回合的下一个步,其中每一个回合对应训练的一个轮次。

在一种实施方式中,神经网络包括输入层,隐藏层以及输出层,其中,隐藏层包括两层卷积层和两层全连接层,卷积层用于提取输入的数据组的特征,全连接层用于整合卷积层中具有类别区分性的局部信息。

在一种实施方式中,奖励函数形式为:

reward=α*tput-β*rtt-γ*packet_loss_rate(1)

其中,reward表示奖励值,rtt表示网络时延,packet_loss_rate表示数据包的丢失率,为丢包数量与发送包的数量的比值,α、β、γ值为预设参数。

在一种实施方式中,吞吐量的计算公式如下:

tput=0.008*(delivered-last_delivered)/max(1,duration)(2)

其中,tput表示吞吐量,duration表示当前数据流开启的总时长,delivered表示本次的数据传输量,last_delivered表示上一次的数据传输量。

由于本发明实施例二所介绍的系统,为实施本发明实施例一中基于深度强化学习的拥塞控制方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1