基于深度强化学习的网络边缘计算多级卸载模型研究
2023-11-14刘敏
刘 敏
(湄洲湾职业技术学院信息中心,福建莆田 351119)
随着智能化时代的到来,互联网发展得到大幅度的提升,人们的生活已离不开移动设备。移动设备包括手机、电脑、VR 等交互设备[1]。随着移动设备功能的不断更新和完善,其功能变得更为复杂,设备所产生的计算任务也变得较为复杂。由于移动设备受自身储存、容量以及电量等因素的影响,移动设备自身无法负荷高强度的中央处理单元(CPU),其计算能力较差,无法在限定时间内处理需要大量计算的任务,导致计算任务失效。结合边缘计算的任务卸载方法能够有效解决该问题,边缘计算又称移动边缘计算(Mobile Edge Computing,MEC),边缘计算能够减少传输计算任务造成的延迟,并及时解决移动设备使用者发出的计算任务[2-3]。在无线网络中,众多的移动设备使用者发布大量的计算任务,而这些计算任务需要在规定的时间内完成,由于边缘计算的处理能力具有局限性,边缘计算服务器无法将移动设备传输的全部的计算任务进行卸载计算,因此,会有多个移动设备选取同一个计算资源[4]。因此构建一个网络边缘计算多级卸载模型,将计算资源合理分配是首要任务。
高寒等人建立基于神经网络的多级卸载模型,将多种计算任务作为该模型中深度神经网络的输入,将网络中移动设备使用者发出的所有计算任务拆开并分解,当多级卸载模型中的卸载调度模块做出卸载执行的决策时,该模型的边缘计算环境中重点考虑计算资源,利用粒子群算法调度所有的计算任务,减少该卸载模型执行计算任务所耗用的能量[5]。张海波等人建立基于边缘计算的任务卸载模型,运用坐标下降法优化该模型中的卸载决策,运用贪婪、匈牙利算法分配计算任务的子信道,降低该模型中的能量损耗,提高该模型的性能[6]。上述两种方法在做出计算任务是在移动设备自身CPU 进行本地执行还是将该计算任务传输到边缘计算服务器进行卸载执行的决策时,不是最优的决策结果,导致边缘计算服务器无法在规定时间内执行完所有的计算任务,既产生大量的能耗又影响移动设备使用者的体验感。
深度强化学习指的是强化学习和深度神经网络的统称。强化学习是指在某种既定场景下运用其自适应学习能力,做出最优决策。深度学习的神经网络具有感知能力。将两者相结合,得到的深度强化学习同时具有感知、决策能力[7]。基于此,针对未解决网络边缘计算多级卸载模型中存在的问题,本文提出基于深度强化学习的网络边缘计算多级卸载模型,以提高移动设备使用者的体验感。
1 网络边缘计算多级卸载模型
1.1 多级卸载模型
边缘计算服务器具有强大的计算功能,将该服务器放置在物联网络边缘,为移动设备使用者提供稳健的计算服务。边缘计算服务器将软件和硬件服务资源分配给每一个移动设备,以此减少移动设备的延迟以及损耗,为该设备使用者提供高质量服务[8]。关于网络边缘计算多级卸载模型如图1。
图1 网络边缘计算多级卸载模型
在该模型中,多个移动设备使用者发布多级计算任务,多级计算任务组成移动应用程序,将该程序建模为有向无环图(Directed scyclic graph,DAG),使计算任务的卸载调度决策更加精细化。计算任务可以在移动设备自身的CPU 上处理,也可以将该计算任务通过数据传输单元传输到边缘计算服务器中,远程卸载执行该计算任务,而后将处理结果传输回移动设备。网络边缘计算多级卸载模型中卸载调度模块决定每个移动设备发布的每个计算任务的执行方式,执行完该计算任务后将结果传输回移动设备,完成计算任务卸载调度[9]。
在该边缘计算多级卸载模型中,移动设备以及边缘计算服务器中的CPU 在同一时间不能进行两个及以上操作,每次只能传送一个计算任务或者是执行一个计算任务,若同一时间多个计算任务需要处理,将多个计算任务按照先后顺序排列,等待移动设备或者边缘计算服务器的CPU完成上一个计算任务后,按照顺序执行下一个计算任务。
1.2 问题描述
为解决移动设备自身的计算资源较差的问题,设定网络边缘计算多级卸载模型中移动设备有K个,全部设备共有N×K个待处理的计算任务。同一时间内,移动设备只能将一个计算任务传输到边缘计算服务器中。移动设备将计算任务输送到边缘计算服务器的传输速率Ri,j为:
上式中:W表示传输计算任务的带宽,g0、ζ分别表示传输该任务的损耗常数、指数,ς0、ςi分别表示移动设备i到边缘计算服务器的相对、实际距离,p表示将移动设备使用者发出的计算任务传输到边缘计算服务器所用的功率,β0表示传输计算任务过程中的噪声密度。
由于移动设备使用者发出的计算任务可以在移动设备自身CPU 进行本地执行或者在边缘计算服务器CPU 中进行卸载执行,因此,设定X={xi,j} 表示卸载决策,代表移动设备使用者发出的计算任务被卸载的具体情况:
为避免边缘计算服务器的CPU 传输计算任务时,边缘计算服务器出现空载现象,因此,调度该服务器中全部的卸载任务[10]。将需要卸载的计算任务排序后存储至卸载任务集合S={S1,…,Si,…,SK} 中。同理,需要本地执行的计算任务的集合为L={L1,…,Li,…,LK}。
边缘计算服务器卸载执行移动设备使用者发布的计算任务所耗用的时间为:
上式中:Ci,j表示移动设备本地执行完计算任务所用的数据,fi,ser表示边缘计算服务器分配给移动设备的频率。
上式中:fi,user表示移动设备自身CPU频率。
上式中:Di,j表示边缘计算服务器完成计算任务所用的数据。
移动设备自身CPU执行计算任务所耗用的能量e(i,j),L为:
上式中:δi,L表示移动设备的电容系数。
移动设备耗用的总能量ei为:
边缘计算多级卸载模型耗用的总时间Ti、总能量Ei分别为:
上式中:Ns、分别表示边缘计算服务器卸载执行完全部计算任务的总数和所耗用的时间,Nl、分别表示移动设备运用自身CPU本地执行完全部计算任务的数量与所耗用的时间。
1.3 基于深度强化学习的多级卸载决策
强化学习是指在某种既定场景下运用其自适应学习能力,得到最优决策的一种算法模型。它将分配计算任务问题看作环境和智能体之间的互动,此过程中的每个移动步,环境所处的状态均传输到智能体中,智能体做出响应,在下个移动步,通过环境的反馈,智能体便能得到新的环境状态,环境和智能体之间每完成一个交互即可获取相应的奖励。强化学习为适应环境,主动学习已获取的奖励中的所有知识,它以取得所有移动步的预期奖励为目标[11-12]。由于强化学习具有局限性,难以做出所有的决策,因此,结合强化学习和深度学习,得到具有决策、感知两大功能的深化强度学习算法。将强化学习算法和实际边缘计算环境相结合,构建马尔科夫决策过程(Markov decision processes,MDP)模型,得到调度计算任务的最优决策结果,提出基于深度Q学习网络(deep Q-Learing network,DQN)的多级卸载算法,减少网络边缘计算多级卸载模型中卸载执行计算任务所耗用的能量、时间延迟等问题。
1.3.1 MDP模型
MDP模型由状态空间、动作空间以及奖励函数组成。
1.3.1.1 状态空间
MDP模型的状态空间Z为:
上式中:G表示正在被调度的计算任务,k表示已经调度完的计算任务的数量,Ak表示k个计算任务的动作空间,用来描述前k个计算任务的具体调度情况,其公式为:
上式中:ak表示第k个计算任务的决策。若ak= 0 则运用移动设备本地CPU 执行该任务,若ak= 1则运用边缘计算服务器进行卸载执行该任务。
1.3.1.2 动作空间
1.3.1.3 奖励函数
以网络边缘计算多级卸载模型中完成所有计算任务耗用的总能量、时间最小为目标,构建MDP模型进行卸载决策的奖励函数。根据式(9)和式(10)相结合得到的奖励函数η为:
上式中:τ和ω分别表示完成所有计算任务耗用的总能量、时间所占用的权重。
1.3.2 DQN的多级卸载算法
基于1.3.1小节MDP模型得到的边缘计算任务决策结果,提出DQN 的多级卸载算法,降低运用边缘计算服务器卸载执行计算任务所耗用的能量以及时间延迟问题,DQN 的多级卸载算法流程如下:
步骤一:初始化卸载计算任务集合Ο与动作空间A。
步骤二:设定计算任务N∈一个设备和多个服务器的集合Φ。
步骤三:取得正在被调度的计算任务G,则已调度完成的计算任务数量为k,k个计算任务的动作空间为Ak;同时取得Ε在移动步t时对CPU的使用率集合Β。
步骤四:基于上述内容构建MDP 模型,以卸载决策的奖励函数为目标,获取移动步t时初始状态空间Zt,并选择相应的动作at。
步骤五:如果计算任务N能在移动设备h本地执行并从Φ移除该计算任务N,则将键值对<N,h>加到Ο 中;否则移动设备h 所在的网络集群中选择任意一个移动设备h’,构建键值对<N,h’>,从Φ中移除该计算任务N,将键值对<N,h>加到Ο中。
为估计出最优决策的动作值函数即Q值,本文提出值迭代的DQN 多级卸载算法,该DNQ 多级卸载算法运用其深度神经网络得到近似值函数,该网络的输入为所有需要执行的计算任务,输出为对计算任务的卸载决策。
DQN 多级卸载算法具有双网络结构,一个是深度神经网络的MainNet结构,另一个是目标网络的TargetNet结构。
上式中:zt表示移动步t所处的状态,at表示执行动作,ηt+1表示执行动作at后MDP 模型获取的奖励;zt+1表示执行上述动作后进入下一个状态,a'表示相对应的执行动作;γ表示MDP模型获取累计奖励过程中折扣系数;α、θ分别表示DQN 算法的学习速率和参数。α越小,深度Q 学习网络保留之前的训练结果越多。
DQN 多级卸载算法增加网络边缘计算多级卸载模型的搜索面积、提高其搜索速度,增加了深度Q 学习网络的经验池和目标网络,提高了深度Q 学习网络的稳定能力。经验池负责交互每个移动步的智能体和边缘计算环境,获取交互后的转移样本,将该样本存储到记忆单元。为避免计算任务分布不均现象,当DQN 多级卸载算法进行训练时,从记忆单元中任意选取转移样本。运用TargetNet结构的目标网络反复训练转移样本,得到目标Q值。该网络的结构和DQN 网络结构一致,在同一时刻,依据神经网络的Q值和目标Q值之间的差值得到损失函数,然后再用梯度下降法反向更新DQN的神经网络的参数。DQN多级卸载算法的损失函数为:
上式中:θ-表示目标网络的更新参数;(st,at;θ)表示深度Q 学习网络的输出结果,(st+1,a';θ-)表示目标网络的输出结果。
2 实验分析
本文实验采用Java开发的iFogSim仿真平台,仿真参数如表1。
表1 实验仿真参数
首先验证本文模型运用深度Q 学习网络对计算任务执行多级卸载时,深度Q 学习网络的经验池大小以及学习速率两个参数值不同时,对本文模型的收敛能力的影响。在本文模型处理120 个计算任务的过程中,将每次训练得到的奖励记录整合,得到相应的累计奖励曲线,用Episodes表示开始执行计算任务到完成该计算任务,获取相应奖励的一个回合。
在经验池的大小分别为256、512、1 024时,本文模型进行多级卸载计算任务时得到的累积奖励曲线如图2。
图2 不同大小经验池的累计奖励
分析图2 可知,随着本文模型中深度Q 学习网络经验池和Episodes 的增加,深度Q 学习网络对计算任务执行多级卸载获取的累计奖励增加。上述三种大小的经验池中,深度Q 学习网络在256的经验池下执行多级卸载计算任务获取的累计奖励最小,其性能最差;当Episodes 为300时,深度Q 学习网络在512 的经验池和1 024 的经验池下执行多级卸载计算任务所获取的累计奖励相同;当Episodes超过300时,深度Q 学习网络在512的经验池明显比1 024的经验池下执行多级卸载计算任务所获取的累计奖励高。实验说明,本文模型应用深度Q 学习网络具有较优的收敛能力,应当选取大小为512的经验池的网络,用于计算任务多级卸载。
而后验证学习速率分别为0.02、0.002、0.000 2时,本文模型应用深度Q 学习网络执行多级卸载计算任务时所获取的累计奖励曲线如图3。
图3 不同学习速率的累计奖励
分析图3 可知,在Episodes 在前300 时,本文模型中深度Q 学习网络以0.02 的学习速率执行多级卸载计算任务所获取的累计奖励最高;在Episodes 为300 时,深度Q 学习网络通过三种学习速率执行多级卸载计算任务获取的累计奖励均为-4.2;Episodes 超过450 以后,深度Q 学习网络在0.002 的学习速率下执行多级卸载计算任务获取的累计奖励最高,高达近3.75。实验说明,本文模型中深度Q学习网络的学习速率为0.002时,其收敛能力最优。
验证网络传输计算任务的速度和边缘计算服务器中CPU 的运行速度对本文模型调度完所有计算任务所耗用的平均时间(平均调度延时)的影响,结果如图4。
图4 传输速度、CPU运行速度不同时的平均调度延时
分析图4 可知,随着网络传输计算任务的速度以及边缘计算服务器中CPU 的运算速度的增加,降低本文模型调度完所有计算任务产生的平均调度延时。网络传输计算任务的速度达到12 Mbps 时,本文模型调度完所有计算任务产生的平均调度延时降低了约800 ms;边缘计算服务器中CPU的运行速度为6 GHz时,本文模型调度完所有计算任务产生的平均调度延时已达到最低,低至150 ms以下。实验说明,本文模型在网络传输计算任务的速度和边缘计算服务器中CPU 的运行速度不同的情况下,具有较好的适应性,速度越大,调度性能越好。
为验证本文模型的实用性,运用本文模型对所有计算任务进行调度,展示其中部分任务的调度结果如图5。
图5 调度结果
分析图5可知,本文模型可有效获取各计算任务调度情况以及相应的完成状况,本文模型按照收到计算任务的时间进行排序,而后通过本文模型的卸载调度模块做出决策,展示出的计算任务中,有4个计算任务由移动设备本身CPU 进行本地执行,剩余7个计算任务则被传输至边缘计算服务器进行卸载执行;在限定的时间内,所有计算任务执行完毕。实验证明,本文模型具有良好的实用性。
3 结论
随着移动设备功能的不断更新和完善,其计算任务变得较为复杂。且由于移动设备受自身储存、容量以及电量等因素的影响,使得无法在限定时间内处理需要大量计算的任务,导致计算任务失效,对此,本文提出基于深度强化学习的网络边缘计算多级卸载模型,实验表明,本文模型运用深度Q 学习网络对计算任务进行多级卸载时,应当选取大小为512的经验池,选取最佳学习速率为0.002,此时本文模型的收敛性能最佳;在网络传输速度和边缘计算服务器CPU 运行速度不同的情况下,本文模型具有良好的适应性;本文模型能够在既定的时间内,执行完所有的计算任务,实用性较好。