CN117749625B - 基于深度q网络的网络性能优化系统和方法 - Google Patents
基于深度q网络的网络性能优化系统和方法 Download PDFInfo
- Publication number
- CN117749625B CN117749625B CN202311819897.6A CN202311819897A CN117749625B CN 117749625 B CN117749625 B CN 117749625B CN 202311819897 A CN202311819897 A CN 202311819897A CN 117749625 B CN117749625 B CN 117749625B
- Authority
- CN
- China
- Prior art keywords
- network
- model
- sla
- performance
- dqn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000009471 action Effects 0.000 claims abstract description 92
- 238000012549 training Methods 0.000 claims abstract description 66
- 230000006870 function Effects 0.000 claims description 49
- 230000008901 benefit Effects 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 19
- 230000004913 activation Effects 0.000 claims description 13
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 5
- 238000013135 deep learning Methods 0.000 claims description 5
- 230000000087 stabilizing effect Effects 0.000 claims description 3
- 238000005728 strengthening Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 abstract description 4
- 238000010276 construction Methods 0.000 abstract description 3
- 230000010485 coping Effects 0.000 abstract description 2
- 210000002569 neuron Anatomy 0.000 description 11
- 230000007423 decrease Effects 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
基于深度Q网络的网络性能优化系统和方法用于网络性能的自动优化,具体包括:模型构建单元构建深度Q网络模型,得到DQN模型;模型训练单元训练所述DQN模型,得到优化DQN模型;性能优化单元使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值;性能优化单元选择预期收益Q值最大的执行动作作为优化操作,并进行网络性能的优化。本发明学习网络状态到优化操作的映射关系,实现网络性能的自动优化,避免了人工设定规则和参数;根据实时的网络状态,动态选择最优的动作,实现网络性能的动态优化,具有很强的泛化能力,可以应对各种网络环境和变化;适用当前网络环境,易于实现。
Description
技术领域
本发明涉及网络性能优化技术领域,更具体的说,特别涉及一种基于深度Q网络的网络性能优化系统和方法。
背景技术
随着互联网的发展,网络数据传输量激增,给云端数据中心运算处理带来极大负担,网络性能优化成为了一个重要的问题。
为了满足边缘计算的需求,人们进行了大量研究,但是,传统的优化方法往往依赖人工经验和规则,不能很好地应对网络环境的变化和复杂性,尤其是对于延迟和吞吐量等指标的优化。
因此,现有技术存在的问题,有待于进一步改进和发展。
发明内容
(一)发明目的:为解决上述现有技术中存在的问题,本发明的目的是提供一种可以自动学习网络环境的变化,实现网络性能动态优化的基于深度Q网络的网络性能优化系统和方法。
(二)技术方案:为了解决上述技术问题,本技术方案提供基于深度Q网络的网络性能优化方法,用于网络性能的自动优化,包括以下步骤,
步骤A、构建深度Q网络模型,得到DQN模型;
步骤B、训练所述DQN模型,得到优化DQN模型;
步骤C、使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值;
步骤D、选择预期收益Q值最大的执行动作作为优化操作,并进行网络性能的优化。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤A具体包括以下步骤,
步骤a1、定义深度Q网络模型中参数表达式;
步骤a2、确定深度Q网络模型架构,得到DQN模型结构;
步骤a3、编译DQN模型结构,得到DQN模型。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤a1,包括以下步骤,
定义网络状态S和执行动作A的表达式;
定义收益函数R的表达式。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤a2具体包括:定义输入层;构建隐藏层;定义输出层。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤a3具体包括:选择激活函数;确定损失函数;配置优化器。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤B具体包括以下步骤,
步骤b1、创建目标DQN模型;
步骤b2、训练DQN模型,更新深度Q网络权重;
步骤b3、将DQN模型更新的深度Q网络权重复制至目标DQN模型。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤b1创建的目标DQN模型与步骤A得到的DQN模型相同,是由DQN模型复制得到,目标DQN模型用于稳定训练过程;
所述步骤b3中,当深度Q网络权重更新次数为指定次数时,将DQN模型更新的深度Q网络权重复制至目标DQN模型。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤b2中,更新的深度Q网络权重包括学习率和折扣因子,在对DQN模型进行训练,更新深度Q网络权重的过程是一个多次训练更新的过程;在训练DQN模型前,所述模型训练单元初始化一个经验回放缓存,经验回放缓存用来存储模型训练单元的经验,用于后续的训练;
对于每一个训练周期,使用当前的网络状态S和DQN模型,使用ε-greedy策略选择一个执行动作A,并执行该执行动作,观察新的网络状态S’和收益R,然后使用以下公式更新深度Q网络权重:
Q(S,A)<-Q(S,A)+α*[R+γ*max_a Q(S',a)-Q(S,A)]
α是学习率,γ是折扣因子,max_a Q(S',a)是在新网络状态S'下所有可能执行动作的最大Q值;
所述步骤b2具体实现方式可以如下,
b21,从当前网络状态S开始,使用ε-greedy策略选择一个执行动作A;
b22,执行动作A,观察新的网络状态S'和收益R;收益R为满足SLA要求的程度;
b23,将每个元组(S,A,R,S')存储到经验回放缓存中;
b24,从经验回放缓存中随机抽取一批元组,使用DQN模型进行训练更新深度Q网络权重,使得预测的Q值更接近实际的Q值:Q(S,A)≈R+γ*max_aQ(S',a);使用深度学习的优化算法更新深度Q网络权重具体可以是使用Adam优化算法来更新深度Q网络权重;
b25,将网络状态S更新为新的网络状态S'。
所述基于深度Q网络的网络性能优化方法,其中,所述步骤b22中,收益R=-abs(SLA_req-current_performance),用于强化学习中的奖励信号,奖励信号反映当前行为表现与服务水平协议要求之间的差距;SLA_req代表了SLA定义的性能要求,current_performance代表了网络当前的性能表现,收益R的公式通过计算两者之间的绝对差值并取负值,来生成一个奖励值R。
基于深度Q网络的网络性能优化系统,用于网络性能的自动优化,包括模型构建单元、模型训练单元和性能优化单元,
所述模型构建单元用于构建深度Q网络模型,得到DQN模型;
所述模型训练单元训练所述DQN模型,得到优化DQN模型;
所述性能优化单元使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值,并选择预期收益Q值最大的执行动作作为优化操作,进行网络性能的优化。
(三)有益效果:本发明提供基于深度Q网络的网络性能优化系统和方法可以学习网络状态到优化操作的映射关系,实现网络性能的自动优化,避免了人工设定规则和参数;根据实时的网络状态,动态选择最优的动作,实现网络性能的动态优化,具有很强的泛化能力,可以应对各种网络环境和变化;适用当前网络环境,易于实现。
附图说明
图1是本发明基于深度Q网络的网络性能优化方法步骤示意图。
具体实施方式
下面结合优选的实施例对本发明做进一步详细说明,在以下的描述中阐述了更多的细节以便于充分理解本发明,但是,本发明显然能够以多种不同于此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下根据实际应用情况作类似推广、演绎,因此不应以此具体实施例的内容限制本发明的保护范围。
附图是本发明的实施例的示意图,需要注意的是,此附图仅作为示例,并非是按照等比例的条件绘制的,并且不应该以此作为对本发明的实际要求保护范围构成限制。
一种基于深度Q网络的网络性能优化系统和方法通过学习网络状态到优化操作的映射关系,从而实现网络性能的自动优化。
基于深度Q网络的网络性能优化方法用于网络性能的自动优化,具体包括以下步骤,
步骤A、构建深度Q网络模型,得到DQN模型;
步骤B、训练所述DQN模型,得到优化DQN模型;
步骤C、使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值;
步骤D、选择预期收益Q值最大的执行动作作为优化操作,并进行网络性能的优化。
基于深度Q网络的网络性能优化系统包括模型构建单元、模型训练单元和性能优化单元。所述模型构建单元用于构建深度Q网络模型,得到DQN模型;所述模型训练单元训练所述DQN模型,得到优化DQN模型;所述性能优化单元使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值,选择预期收益Q值最大的执行动作作为优化操作,进行网络性能的优化,实现对网络性能的自动优化。
所述模型构建单元在构建深度Q网络模型时,具体包括以下步骤,
步骤a1、定义深度Q网络模型中参数表达式;
步骤a2、确定深度Q网络模型架构,得到DQN模型结构;
步骤a3、编译DQN模型结构,得到DQN模型。
所述步骤a1中,所述模型构建单元在构建深度Q网络模型时,对深度Q网络模型的参数进行定义,得到定义参数的表达式。所述参数包括网络状态、执行动作和收益函数,此时定义后的参数表达式为:网络状态为S、执行动作为A、收益函数为R。
具体的说,所述步骤a1,包括以下步骤,
定义网络状态S和执行动作A的表达式;
定义收益函数R的表达式。
网络状态S为二维向量,包括当前的延迟S[0]和当前的吞吐量S[1]。网络状态中当前的延迟和当前的吞吐量说明了状态向量的结构和包含的信息。
网络状态的值可以通过网络监控工具或软件实时测量获得的,其反映了当前网络的性能指标,例如,当前的延迟可以通过发送和接收小的数据包来测量,当前的吞吐量可以通过监测在特定时间内通过网络传输的数据量来计算。
执行动作A为一维向量,代表了可以采取的执行动作的编码,执行动作A可能会包含各种配置选项的值,比如路由器的不同参数设置。每个元素在向量中代表了不同的配置选项,例如带宽限制、QoS(服务质量)参数、路由选择等。执行动作是在调整路由器的配置参数,从而改善网络性能,例如减少延迟、增加吞吐量或提高网络的可靠性。
执行动作的值通常是在强化学习中,由深度Q网络模型,即DQN模型根据当前网络状态和可能执行动作的预期收益选择的,用于优化网络性能,具体的说,在训练过程中,算法会尝试不同的动作并观察结果,以此来学习哪些执行动作能够改善网络性能。
收益函数R为满足服务水平协议SLA要求的程度,具体可能是网络服务提供商与客户之间协商的性能指标,如最大延迟(SLA_delay)和/或最小吞吐量(SLA_throughput)。
当SLA要求的延迟为SLA_delay,吞吐量为SLA_throughput,收益函数可以为R=-abs(SLA_delay-S[0])-abs(SLA_throughput-S[1])。S[0]和S[1]分别代表观察到的延迟和吞吐量的具体值;SLA_delay和SLA_throughput是对应于延迟和吞吐量这两个指标的SLA要求。
收益函数R采用绝对值函数abs实现惩罚偏差,通过使用绝对值函数abs,算法被惩罚任何与SLA标准的偏差,不论实际延迟比SLA要求的延迟高还是低,或者实际吞吐量比SLA要求的吞吐量高还是低,都会产生负收益,从而激励算法尽可能地接近SLA标准。
收益函数直接与SLA指标相关联,实现鼓励算法采取动作以满足或超过这些指标。
收益函数采用绝对值函数简单直观,容易理解、实现,直接将性能指标的偏差转化为收益值,使得学习算法清晰地看到其行为的直接后果。
收益函数中使用线性惩罚,即直接的绝对值差,使偏离SLA标准的程度与收益的减少成正比。是使用过程中,也可能出现二次惩罚,对大的偏差施加大的惩罚。
这种收益函数的设计实现了学习算法的目标与网络性能优化的实际需求一致,通过最大化收益,算法将学习到如何调整网络配置以满足或超过SLA的要求。
所述步骤a2具体包括:定义输入层;构建隐藏层;定义输出层。
深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。
深度Q网络是一个多层的前馈神经网络,每一层都是全连接层,包含输入层、隐藏层和输出层。
输入层的神经元数量与网络状态S和执行动作A的维度之和相匹配。如果执行动作是离散的,直接将网络状态和执行动作的独热编码作为输入。如果动执行动作是连续的,执行动作的值和网络状态的值一起作为输入。
在本发明中维度是指数据表示的特征数量,在深度Q网络中,输入层神经元的数量与环境的网络状态表示(State Space)的维度匹配,这些维度代表了环境网络状态的不同特征。对于深度Q网络模型,输入层通常只接收网络状态作为输入,而不是网络状态和执行动作的组合。因为深度Q网络模型的目标是对于给定的网络状态,输出所有可能执行动作的Q值,因此,深度Q网络模型的输出层神经元的数量通常与执行动作空间(Action Space)的维度相匹配,每个神经元对应于一个可能的执行动作的Q值。
隐藏层的数量和每层的神经元数量根据问题的复杂性来确定,通常情况下,深度Q网络有2-3个隐藏层,每层有数十到数百个神经元。
输出层的神经元数量等于可能的执行动作数量。例如,输出是预期收益Q(S,A),所以如果执行动作是离散的,每个神经元对应一个执行动作的预期收益Q值;如果执行动作是连续的,则输出层可能只有一个神经元,表示当前网络状态下,执行动作对应的预期收益Q值。
所述步骤a3具体包括:选择激活函数;确定损失函数;配置优化器。
每个隐藏层分别使用非线性激活函数,以增加网络的表达能力。每个隐藏层使用的非线性激活函数可以是线性整流函数或者其变体(线性整流函数英文名称为RectifiedLinear Unit,简称ReLU)。
输出层的激活函数的选择由问题的性质来决定,例如,针对回归问题(如预测预期收益Q值),通常不使用激活函数或者使用线性激活函数。
当选择“不使用激活函数”,输出层的神经元直接输出它们的加权和。此时,输出层的计算通常是所有输入的加权和加上偏置项,公式如下,
f(x)=wTx+b
这里,X是输入向量,W是权重向量,b是偏置项,f(x)是模型的输出。在这个表达式中,没有应用任何非线性变换,因此输出可以是任意实数值。这种情况的激活函数是一个线性变换,因此有时候将其称为不使用函数。
深度Q网络模型使用的损失函数通常是均方误差(英文名称Mean Squared Error,简称MSE)或者回归损失函数(Huber损失函数)。损失函数衡量的是预测的收益Q值与目标Q值之间的差异,预测的收益Q值与目标Q值之间的差异通过贝尔曼方程计算得到的,具体如下,
均方误差是最常见的损失函数之一,其方程为:
L(θ)=E[(yi-Q(Si,Ai;θ))2]
在这个方程中,L(θ)是损失函数,依赖于深度Q网络模型的参数θ;E表示期望值,通常在实际应用中,使用样本的平均值来近似这个期望值;yi是目标收益Q值,也称作TD目标,通常是通过贝尔曼方程计算出的;Q(si,ai;θ)是预测的收益Q值,依赖于当前网络状态Si和执行动作Ai。
目标收益Q值yi的计算使用贝尔曼方程如下:
yi=ri+γmaxa’Q(S’i,A’;θ-)
其中,ri是在网络状态Si采取执行动作Ai后获得的奖励;γ是折扣因子,用于衡量未来奖励的当前价值;maxa’Q(S’i,A’;θ-)是在下一个网络状态S’i中所有可能执行动作的最大Q值,由目标DQN模型(参数为θ-)预测;θ-是目标DQN模型的参数,这些参数是DQN模型参数的较旧版本,定期或通过某种及时更新,以提高学习的稳定性。
Huber损失函数是均方误差和绝对误差的结合,对于大的误差是线性的,而对于小的误差是二次的,这可以减少对异常值的敏感性。Huber损失函数的方程如下,
Lδ(θ)=E[lδ(yi-Q(Si,Ai;θ))]
其中lδ(x)是Huber损失项:
在Huber损失函数中,δ是一个阈值,决定了何时损失函数从平方过度到线性。如果误差|yi-Q(Si,Ai;θ)|小于δ,则使用平方误差,否则使用线性误差。
在实际训练中,损失函数用于通过梯度下降方法更新网络参数θ,从而减少预测的收益Q值与目标收益Q值之间的差异。
优化器用于更新DQN模型的网络权重,从而最小化损失函数,具体的说,优化器根据损失函数相对于网络参数的梯度来更新网络权重。常见的优化器包括随机梯度下降法(stochastic gradient descent,SGD)、Adam优化算法,RMSprop优化算法等,这些优化器使用于不同的场景和问题。
假设网络状态S和执行动作A为定义好的网络状态和执行动作,build_dqn函数创建了一个DQN模型,其中有两个隐藏层,每层64个神经元,输出层的激活函数是线性的,预测的收益Q值,是一个回归问题,构建DQN的伪代码如下:
import tensorflow as tf from tensorflow.keras import layers#定义DQN模型defbuild_dqn(state_size,action_size,hidden_sizes):model=tf.keras.Sequential()model.add(layers.Input(shape=(state_size+action_size,)))for hidden_size in hidden_sizes:model.add(layers.Dense(hidden_size,activation='relu'))model.add(layers.Dense(action_size,activation='linear'))#对于离散动作空间return model#状态和动作的维度state_size=len(S)action_size=len(A)#隐藏层的大小hidden_sizes=[64,64]#构建模型dqn_model=build_dqn(state_size,action_size,hidden_sizes)#编译模型dqn_model.compile(optimizer='adam',loss='mse').
所述模型训练单元在训练所述DQN模型时,具体包括以下步骤,
步骤b1、创建目标DQN模型;
步骤b2、训练DQN模型,更新深度Q网络权重;
步骤b3、将DQN模型更新的深度Q网络权重复制至目标DQN模型。
所述步骤b1创建的目标DQN模型与步骤A得到的DQN模型相同,可以是由DQN模型复制得到。创建目标DQN模型从而稳定训练过程。
所述步骤b2中,更新的深度Q网络权重包括学习率和折扣因子。在对DQN模型进行训练,更新深度Q网络权重的过程是一个多次训练更新的过程。在训练DQN模型前,所述模型训练单元初始化一个经验回放缓存,此步也称为初始化记忆库,经验回放缓存用来存储模型训练单元的经验(状态,动作,奖励,新状态),即初始化记忆库,存储模型训练单元与环境交互的经验,用于后续的训练。
当预测的预期收益Q值和目标预期收益Q值之间的差异达到指定标准时,或达到预设的迭代次数时,对网络性能进行判断,此时若网络性能达到指定标准,则深度Q网络权重更新完成。实际就是最小化预测的预期收益Q值和目标预期收益Q值之间的差异后,对网络性能进行判断,若网络性能达到指定标准,则深度Q网络权重更新完成。
所述步骤b3中,当深度Q网络权重更新次数为指定次数时,将DQN模型更新的深度Q网络权重复制至目标DQN模型,从而保证训练过程的稳定性。需要注意的是,目标DQN模型中深度Q网络权重的更新频率会影响学习的稳定性和速度,因此在设定指定次数时,需要根据需要的学习的稳定性和速度来设置。
在步骤b2中,对于每一个训练周期,使用当前的网络状态S和DQN模型,使用ε-greedy策略选择一个执行动作A,并执行该执行动作,观察新的网络状态S’和收益R,然后使用以下公式更新深度Q网络权重:
Q(S,A)<-Q(S,A)+α*[R+γ*max_a Q(S',a)-Q(S,A)]
α是学习率,γ是折扣因子,max_a Q(S',a)是在新网络状态S'下所有可能执行动作的最大Q值。
所述步骤b2具体实现方式可以如下,
b21,从当前网络状态S开始,使用ε-greedy策略选择一个执行动作A;
b22,执行动作A,观察新的网络状态S'和收益R。收益R可以定义为满足SLA要求的程度,例如R=-abs(SLA_req-current_performance);
b23,将每个元组(S,A,R,S')存储到经验回放缓存中;
b24,从经验回放缓存中随机抽取一批元组,使用DQN模型进行训练更新深度Q网络权重,使得预测的Q值更接近实际的Q值:Q(S,A)≈R+γ*max_aQ(S',a);使用深度学习的优化算法更新深度Q网络权重具体可以是使用Adam优化算法来更新深度Q网络权重;
其中,从经验回放缓存中随机抽取一批元组,有助于打破样本之间的相关性,提高学习效率。
b25,将网络状态S更新为新的网络状态S'。
所述步骤b25中,将网络状态S更新为新的网络状态S',在这个新的网络状态S'上选择执行动作,并继续这个过程,从而创建了一个序列或路径,实现对环境的探索。
所述步骤b21中,使用ε-greedy策略选择一个执行动作A,这是一种在探索(exploration)和利用(exploitation)之间平衡的策略,在训练初期提供足够的随机性,以促进对环境的探索,具体如下,
初始化:选择一个介于0和1之间的初始ε值,通常接近1。这个值代表选择随机动作的概率,以便于一开始能够探索更多的状态空间。
生成随机数:在每个决策点,生成一个介于0和1之间的随机数。
比较随机数与ε:
如果这个随机数小于或等于ε,则执行一个随机动作(探索)。
如果这个随机数大于ε,则选择当前估计最优动作(利用)。最优动作是通过将当前网络状态输入到优化DQN模型,并选择具有最高预测预期收益Q值的执行动作。
更新ε:如果选择的执行动作适用,随着时间的推移,ε会按照指定策略逐渐减小,此时随机选择动作的概率会随着时间逐渐降低。ε是探索(exploration)与利用(exploitation)之间平衡的一个关键因素。
探索(Exploration)是指,探索环境以获取有关网络状态和执行动作如何影响回报的信息。
利用(Exploitation)是指,利用其现有的知识来选取它认为会获得最大回报的执行动作。
在训练的早期阶段,希望进行更多的探索以了解环境,因此,ε会被设置为一个相对较高的值。随着学习开始理解哪些执行动作更可能产生更高的回报,此时,希望可以利用这些知识来做出决策,因此,会逐渐减小ε的值,减少随机选择动作的概率。
减小ε的过程通常是根据一定的策略进行的,其最终的目的是在学习过程中达到一个理想的探索与利用的平衡,使得代理能够有效地学习策略并在环境中表现良好。
在实际代码中,执行动作选择过程可能如下所示:
import numpy as np defselect_action(state,q_network,epsilon):ifnp.random.rand()<=epsilon:#探索:随机选择一个动作returnnp.random.choice(number_of_actions)else:#利用:选择最佳预测动作q_values=q_network.predict(state)return np.argmax(q_values)
在这个函数中,state是当前环境状态的表示,q_network是用于预测Q值的神经网络,epsilon是探索概率。number_of_actions是可用动作的数量。
ε的值通常会随着时间逐渐减少(衰减),其可以通过多种方式实现,比如线性衰减、指数衰减或者基于性能的衰减。衰减是因为在学习过程中逐渐减少随机探索的频率,增加利用已学知识的频率。
例如,线性衰减可以是:
epsilon=max(epsilon_min,epsilon-epsilon_decay)
其中epsilon_min是ε的最小值,epsilon_decay是每个时间步骤减去的值。
所述步骤b22中,函数R=-abs(SLA_req-current_performance)是用于强化学习中的奖励信号,这个奖励信号反映了当前行为表现与服务水平协议(SLA)要求之间的差距。具体来说,SLA_req代表了SLA定义的性能要求,而current_performance代表了网络当前的性能表现。这个公式通过计算两者之间的绝对差值并取负值,来生成一个奖励值R。
如果current_performance恰好等于SLA_req,则差值为零,将获得最高的奖励(在这种情况下是零,因为是负的绝对值),因为性能完全符合SLA的要求。
如果current_performance低于或高于SLA_req,则会产生一个负奖励,其绝对值与差距成正比,说明性能与SLA要求不符,奖励值越负,不符合程度越高。
使用这种奖励函数的目的是在强化学习中模型训练单元学会采取执行动作来最小化与SLA要求的偏差,模型训练单元受到激励,进而寻找能够使网络性能尽可能符合SLA标准的操作。因此,这种奖励机制会推动模型训练单元学习调整网络配置,以达到或接近SLA定义的性能指标。
所述模型训练单元使用优化DQN模型训练当前网络,得到所有可能执行动作的预期收益Q值。优化DQN模型可以是经过更新深度Q网络权重的DQN模型,也可以是将最后更新的深度Q网络权重复制的目标DQN模型。
所述性能优化单元根据所述模型训练单元的训练结果进行网络性能的优化,即选择Q值最大的执行动作作为优化操作:optimal_action=argmax_a Q(S,a),实现对网络性能的自动优化。
在实际实现中,DQN模型的输入通常只有网络状态S,而网络的输出是针对每个可能动作的预期收益Q(S,A)。在训练时,我们会选择与采取的执行动作相对应的输出预期收益Q值,并计算其与目标预期收益Q值之间的损失,然后通过反向传播更新网络权重。
在某些变体中,如Double DQN或Dueling DQN,网络结构和训练逻辑可能会有所不同,但基本原则保持一致:网络试图学习一个策略,该策略能够最大化累积的未来奖励,即预期收益。
基于深度Q网络的网络性能优化系统和方法具有以下优点:
学习网络状态到优化操作的映射关系,实现网络性能的自动优化,避免了人工设定规则和参数;
根据实时的网络状态,动态选择最优的动作,实现网络性能的动态优化;
采用的深度Q网络模型具有很强的泛化能力,可以应对各种网络环境和变化;
实现过程简单明了,适用当前网络环境,易于在实际网络环境中实施。
以上内容是对本发明创造的优选的实施例的说明,可以帮助本领域技术人员更充分地理解本发明创造的技术方案。但是,这些实施例仅仅是举例说明,不能认定本发明创造的具体实施方式仅限于这些实施例的说明。对本发明创造所属技术领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干简单推演和变换,都应当视为属于本发明创造的保护范围。
Claims (6)
1.基于深度Q网络的网络性能优化方法,用于网络性能的自动优化,其特征在于,包括以下步骤,
步骤A、构建深度Q网络模型,得到DQN模型;
步骤B、训练所述DQN模型,得到优化DQN模型;
步骤C、使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值;
步骤D、选择预期收益Q值最大的执行动作作为优化操作,并进行网络性能的优化;
所述步骤B具体包括以下步骤,步骤b1、创建目标DQN模型;步骤b2、训练DQN模型,更新深度Q网络权重;步骤b3、将DQN模型更新的深度Q网络权重复制至目标DQN模型;
所述步骤b1创建的目标DQN模型与步骤A得到的DQN模型相同,是由DQN模型复制得到,目标DQN模型用于稳定训练过程;所述步骤b3中,当深度Q网络权重更新次数为指定次数时,将DQN模型更新的深度Q网络权重复制至目标DQN模型;
所述步骤b2中,更新的深度Q网络权重包括学习率和折扣因子,在对DQN模型进行训练,更新深度Q网络权重的过程是一个多次训练更新的过程;在训练DQN模型前,所述模型训练单元初始化一个经验回放缓存,经验回放缓存用来存储模型训练单元的经验,用于后续的训练;
对于每一个训练周期,使用当前的网络状态S和DQN模型,使用ε-greedy策略选择一个执行动作A,并执行该执行动作,观察新的网络状态S’和收益R,然后使用以下公式更新深度Q网络权重:
Q(S, A) <- Q(S, A) + α * [R + γ * max_a Q(S', a) - Q(S, A)]
α是学习率,γ是折扣因子,max_a Q(S', a)是在新网络状态S'下所有可能执行动作的最大Q值;
所述步骤b2具体实现方式如下,
b21,从当前网络状态S开始,使用ε-greedy策略选择一个执行动作A;
b22,执行动作A,观察新的网络状态S'和收益R;收益R为满足服务水平协议SLA要求的程度,具体是网络服务提供商与客户之间协商的性能指标,包括最大延迟SLA_delay和/或最小吞吐量SLA_throughput;当SLA要求的延迟为SLA_delay,吞吐量为SLA_throughput,收益函数为R = -abs(SLA_delay - S[0]) - abs(SLA_throughput - S[1]);S[0]和S[1]分别代表观察到的延迟和吞吐量的具体值;SLA_delay和SLA_throughput是对应于延迟和吞吐量这两个指标的SLA要求;
b23,将每个元组(S,A,R,S')存储到经验回放缓存中;
b24,从经验回放缓存中随机抽取一批元组,使用DQN模型进行训练更新深度Q网络权重,使得预测的Q值更接近实际的Q值:Q(S,A)≈R+γ*max_aQ(S',a);使用深度学习的优化算法更新深度Q网络权重具体是使用Adam优化算法来更新深度Q网络权重;
b25,将网络状态S更新为新的网络状态S';
所述步骤b22中,收益R = -abs(SLA_req - current_performance),用于强化学习中的奖励信号,奖励信号反映当前行为表现与服务水平协议要求之间的差距;SLA_req代表了SLA定义的性能要求,current_performance代表了网络当前的性能表现,收益R的公式通过计算两者之间的绝对差值并取负值,来生成一个奖励值R。
2.根据权利要求1所述基于深度Q网络的网络性能优化方法,其特征在于,所述步骤A具体包括以下步骤,
步骤a1、定义深度Q网络模型中参数表达式;
步骤a2、确定深度Q网络模型架构,得到DQN模型结构;
步骤a3、编译DQN模型结构,得到DQN模型。
3.根据权利要求2所述基于深度Q网络的网络性能优化方法,其特征在于,所述步骤a1,包括以下步骤,
定义网络状态S和执行动作A的表达式;
定义收益函数R的表达式。
4.根据权利要求2所述基于深度Q网络的网络性能优化方法,其特征在于,所述步骤a2具体包括:定义输入层;构建隐藏层;定义输出层。
5.根据权利要求2所述基于深度Q网络的网络性能优化方法,其特征在于,所述步骤a3具体包括:选择激活函数;确定损失函数;配置优化器。
6.基于深度Q网络的网络性能优化系统,用于网络性能的自动优化,其特征在于,包括模型构建单元、模型训练单元和性能优化单元,
所述模型构建单元用于构建深度Q网络模型,得到DQN模型;
所述模型训练单元训练所述DQN模型,得到优化DQN模型;
所述性能优化单元使用优化DQN模型预测指定网络状态下所有可能执行动作的预期收益Q值,并选择预期收益Q值最大的执行动作作为优化操作,进行网络性能的优化;
所述模型训练单元得到优化DQN模型具体包括以下步骤,步骤b1、创建目标DQN模型;步骤b2、训练DQN模型,更新深度Q网络权重;步骤b3、将DQN模型更新的深度Q网络权重复制至目标DQN模型;
所述步骤b1创建的目标DQN模型与所述模型构建单元得到的DQN模型相同,是由DQN模型复制得到,目标DQN模型用于稳定训练过程;所述步骤b3中,当深度Q网络权重更新次数为指定次数时,将DQN模型更新的深度Q网络权重复制至目标DQN模型;
所述步骤b2中,更新的深度Q网络权重包括学习率和折扣因子,在对DQN模型进行训练,更新深度Q网络权重的过程是一个多次训练更新的过程;在训练DQN模型前,所述模型训练单元初始化一个经验回放缓存,经验回放缓存用来存储模型训练单元的经验,用于后续的训练;
对于每一个训练周期,使用当前的网络状态S和DQN模型,使用ε-greedy策略选择一个执行动作A,并执行该执行动作,观察新的网络状态S’和收益R,然后使用以下公式更新深度Q网络权重:
Q(S, A) <- Q(S, A) + α * [R + γ * max_a Q(S', a) - Q(S, A)]
α是学习率,γ是折扣因子,max_a Q(S', a)是在新网络状态S'下所有可能执行动作的最大Q值;
所述步骤b2具体实现方式如下,
b21,从当前网络状态S开始,使用ε-greedy策略选择一个执行动作A;
b22,执行动作A,观察新的网络状态S'和收益R;收益R为满足服务水平协议SLA要求的程度,具体是网络服务提供商与客户之间协商的性能指标,包括最大延迟SLA_delay和/或最小吞吐量SLA_throughput;当SLA要求的延迟为SLA_delay,吞吐量为SLA_throughput,收益函数为R = -abs(SLA_delay - S[0]) - abs(SLA_throughput - S[1]);S[0]和S[1]分别代表观察到的延迟和吞吐量的具体值;SLA_delay和SLA_throughput是对应于延迟和吞吐量这两个指标的SLA要求;
b23,将每个元组(S,A,R,S')存储到经验回放缓存中;
b24,从经验回放缓存中随机抽取一批元组,使用DQN模型进行训练更新深度Q网络权重,使得预测的Q值更接近实际的Q值:Q(S,A)≈R+γ*max_aQ(S',a);使用深度学习的优化算法更新深度Q网络权重具体是使用Adam优化算法来更新深度Q网络权重;
b25,将网络状态S更新为新的网络状态S';
所述步骤b22中,收益R = -abs(SLA_req - current_performance),用于强化学习中的奖励信号,奖励信号反映当前行为表现与服务水平协议要求之间的差距;SLA_req代表了SLA定义的性能要求,current_performance代表了网络当前的性能表现,收益R的公式通过计算两者之间的绝对差值并取负值,来生成一个奖励值R。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311819897.6A CN117749625B (zh) | 2023-12-27 | 2023-12-27 | 基于深度q网络的网络性能优化系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311819897.6A CN117749625B (zh) | 2023-12-27 | 2023-12-27 | 基于深度q网络的网络性能优化系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117749625A CN117749625A (zh) | 2024-03-22 |
CN117749625B true CN117749625B (zh) | 2024-06-25 |
Family
ID=90256697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311819897.6A Active CN117749625B (zh) | 2023-12-27 | 2023-12-27 | 基于深度q网络的网络性能优化系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117749625B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527567A (zh) * | 2023-06-30 | 2023-08-01 | 南京信息工程大学 | 一种基于深度强化学习的智能网络路径优选方法与系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2586868A (en) * | 2019-09-06 | 2021-03-10 | Nec Corp | Coverage and capacity optimisation using deep reinforcement learning |
CN111862579B (zh) * | 2020-06-10 | 2021-07-13 | 深圳大学 | 一种基于深度强化学习的出租车调度方法及系统 |
CN112367683B (zh) * | 2020-11-17 | 2022-07-01 | 重庆邮电大学 | 基于改进深度q学习的网络选择方法 |
CN113269322A (zh) * | 2021-05-24 | 2021-08-17 | 东南大学 | 一种基于自适应超参数的深度强化学习改进方法 |
US20220124543A1 (en) * | 2021-06-30 | 2022-04-21 | Oner Orhan | Graph neural network and reinforcement learning techniques for connection management |
CN116050505A (zh) * | 2023-02-22 | 2023-05-02 | 西南交通大学 | 一种基于伙伴网络的智能体深度强化学习方法 |
CN116448117A (zh) * | 2023-04-18 | 2023-07-18 | 安徽大学 | 一种融合深度神经网络和强化学习方法的路径规划方法 |
CN116567667A (zh) * | 2023-05-09 | 2023-08-08 | 南京信息工程大学 | 一种基于深度强化学习的异构网络资源能效优化方法 |
CN116996147A (zh) * | 2023-07-17 | 2023-11-03 | 哈尔滨工程大学 | 一种基于深度强化学习的水声通信自适应调制方法及装置 |
CN117171508A (zh) * | 2023-09-05 | 2023-12-05 | 石家庄铁道大学 | 基于贝叶斯优化的深度q学习轴承故障诊断方法 |
-
2023
- 2023-12-27 CN CN202311819897.6A patent/CN117749625B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527567A (zh) * | 2023-06-30 | 2023-08-01 | 南京信息工程大学 | 一种基于深度强化学习的智能网络路径优选方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117749625A (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111754000B (zh) | 质量感知的边缘智能联邦学习方法及系统 | |
Bottou et al. | Optimization methods for large-scale machine learning | |
Xu et al. | Learning to explore via meta-policy gradient | |
CN113434212B (zh) | 基于元强化学习的缓存辅助任务协作卸载与资源分配方法 | |
CN110460880B (zh) | 基于粒子群和神经网络的工业无线流媒体自适应传输方法 | |
CN113435606A (zh) | 强化学习模型的优化方法、装置、存储介质及电子设备 | |
CN111768028B (zh) | 一种基于深度强化学习的gwlf模型参数调节方法 | |
JP7315007B2 (ja) | 学習装置、学習方法および学習プログラム | |
Noarov et al. | High-dimensional prediction for sequential decision making | |
CN117749625B (zh) | 基于深度q网络的网络性能优化系统和方法 | |
CN116009990B (zh) | 基于宽注意力机制的云边协同元强化学习计算卸载方法 | |
JP7180697B2 (ja) | 学習装置、学習方法、及び、プログラム | |
CN116566891A (zh) | 时延敏感的服务功能链并行路由优化方法、装置及介质 | |
CN115022231B (zh) | 一种基于深度强化学习的最优路径规划的方法和系统 | |
CN113300884B (zh) | 一种基于gwo-svr的分步网络流量预测方法 | |
CN115150335A (zh) | 一种基于深度强化学习的最优流量分割的方法和系统 | |
JP7181585B2 (ja) | 学習システム、学習方法、およびプログラム | |
CN114995818A (zh) | 一种Simulink模型到C语言的优化参数自动配置方法 | |
Busoniu et al. | Learning and coordination in dynamic multiagent systems | |
Biedenkapp et al. | Towards white-box benchmarks for algorithm control | |
Šćepanović | Testing reward function choice influence on training performance of Double DQN | |
CN114500383B (zh) | 天地一体化信息网络智能拥塞控制方法、系统及介质 | |
Ebrahimi | Investigating Representations and Auxiliary Tasks in DeepRL | |
CN118042525A (zh) | 一种基于多目标权重网络的任务卸载方法 | |
CN112306641A (zh) | 一种用于虚拟机迁移模型的训练方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |