移动边缘计算环境中基于深度强化学习的计算卸载
摘要
近年来,为了将计算、网络资源和服务分布到靠近终端的位置,移动雾计算逐渐成为移动边缘计算(MEC)的一种范式。在移动雾环境中,服务质量受到卸载速度和雾节点处理能力的影响,然而传统的雾计算方法由于复杂的网络状态分布环境(即F‐AP状态、AP状态、移动设备状态和代码块状态),在解决计算资源分配问题时面临困难。本文提出了一种基于深度确定性策略梯度(DDPG)算法的基于学习的移动雾计算方案,以提升移动设备的雾资源供给性能。该方案将卸载块脉动离散事件系统建模为马尔可夫决策过程(MDPs),从而能够在未知不同网络状态之间转移概率的情况下实现计算卸载。此外,采用DDPG算法解决状态空间爆炸问题,并在分布式移动雾计算环境中学习最优卸载策略。仿真结果表明,与策略梯度(PG)、确定性策略梯度(DPG)和执行者–批评者(AC)方法相比,所提出的方案在相关性能上分别提升了20%、37%、46%。此外,与传统雾资源供给方案相比,在不同位置数量和不同任务到达率的情况下,本方案在雾资源供给的成本效益方面表现更优。
1. 引言
随着手机和平板电脑等移动智能设备的普及,许多移动应用程序应运而生并广受欢迎。例如在线游戏以及虚拟和增强现实 [1–4]。然而,由于资源有限,移动设备通常受到限制,例如中央处理器的计算能力和服务器的内存大小均有限[5–7]。此外,当在移动设备上运行计算密集型应用程序时,其体验质量(QoE)和性能会因计算能力受限而受到严重影响。计算密集型应用程序的资源短缺问题已成为满足服务质量(QoS)和体验质量(QoE)的瓶颈,并推动了边缘计算的产生[8,9]。
近年来,云计算发展迅速,物联网网络计算技术进入了一个新时代 [10,11]。在工业界,许多互联网科技公司,如谷歌、微软、亚马逊、百度、阿里巴巴等,正在将云计算模型作为一项公共服务进行开发。同时,上述公司已提供基于云的服务,包括软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS),以应对同时涉及教育和众多企业相关问题。然而,大多数云数据中心在地理上是集中式的,并且远离终端用户。因此,需要由遥远的云数据中心响应的对延迟敏感和实时数据传输服务请求通常会遭遇网络拥塞和较大的往返延迟。为了解决上述问题,边缘计算在[12]中被提出。
对于边缘计算而言,其目标是使计算设备更靠近数据源。更准确地说,边缘计算可以在边缘网络 [13] 上处理数据。众所周知,边缘网络主要由终端(如智能手机)、边缘设备(如无线接入点、路由器、基站)、边缘服务器等组成。这些组件具备支持边缘计算的基本能力。与云数据中心相比,边缘计算能够更快地响应计算服务请求。然而,边缘计算不会自发地关联 IaaS、PaaS、SaaS 等基于云的服务,而是更加侧重于终端设备一侧[14]。结合边缘计算与云计算的概念,已提出多种计算范式,例如移动边缘计算 (MEC) [15,16]和移动云计算 (MCC) [17–19],作为云计算与边缘计算的潜在扩展形式被提出。作为一种以边缘为中心的计算模型,MEC 已引起广泛关注。MEC 被视为推动现代蜂窝基站发展的重要驱动力之一。它使边缘服务器和蜂窝基站能够协同运行 [20]。
如思科云指数(2013–2018)所述,尽管自2008年以来大多数互联网流量均在数据中心发起或终止,但在2016年,传统IT领域中近三分之二的任务是在云中执行的。然而,云计算面临着诸如网络带宽、安全、可靠性和延迟等方面的挑战[21]。为应对这些问题,Bonomi 等人[22]于2012年提出了一种名为雾计算的新范式。同时,雾计算是一种横向架构,旨在将存储、网络资源、控制和计算尽可能靠近终端用户设备进行分布,必要时将繁重任务发送至远程云[23,24]。
众所周知,移动云计算正逐渐成为移动终端(如社交网络、视频流、移动医疗服务、移动视频游戏和教育)的通用范式。随着移动数据流量的爆炸式增长,移动服务提供商通过使用移动云计算来提供流畅的服务。Amini 等人 [28]提出加快不同部门之间的协作,以开发和管理包含智能技术的可持续智能城市。同时,针对移动边缘计算的考虑延迟和可靠性的任务卸载与资源分配被建模为计算与传输功率最小化[29]。雾与边缘计算范式被认为能够满足新兴移动应用的资源需求。然而,受深度学习(DL)在广泛领域中成功应用的启发,利用强化学习解决移动雾资源分配问题具有广阔前景。
2019年,孙等人[30]提出了一种基于深度强化学习的联合模式选择与资源管理方法,以解决雾无线接入网络(F‐RANs)中的资源管理问题。王等人[31]提出了一种动态强化学习算法,利用强化学习解决雾计算中面向工业应用的流量与计算协同卸载问题。魏等人[32]提出采用自然演员‐评论家深度强化学习来解决支持雾计算的物联网中缓存、计算和无线资源的联合优化问题。综上所述,移动雾是雾计算的一种补充模型[33]。
尽管已取得较好的研究成果,但该研究领域仍存在一些不足。例如,移动环境的动态性导致网络状态空间巨大且难以处理。同时,[30–32]的研究均采用DQN方法来学习最优随机策略,然而DQN无法克服过估计的缺点,导致估计值大于真实值。因此,考虑采用一种DDPG强化学习方案来适当地建模动态环境。我们在工作中的主要贡献如下。
(1) 我们将卸载块(包括代码块ID、应用程序ID和方法ID)以及网络节点状态的离散事件系统模型建模为马尔可夫决策过程 (MDP),从而能够在不知道不同网络状态之间转移概率的情况下实现计算卸载。与传统的雾卸载方法相比,使用马尔可夫决策过程,当前卸载状态 $ s_t $ 包含了所有与历史相关的信息,系统只需考虑当前状态即可做出下一步决策,而无需考虑时间的影响。
(2)在移动雾环境中,代码卸载器具有多种状态和卸载动作,传统的雾卸载方法难以应对这种复杂环境。DDPG方法被用来解决状态空间爆炸问题,并进行训练以预测资源分配动作以找到最优决策策略。此外,我们使用DDPG算法进行组分解,以避免智能体选择不良竞争并解决过估计问题。
(3)根据实验理论分析,结果表明我们提出的基于学习的方案相比PG、DPG和AC方法在性能上分别提升了20%、37%和46%。此外,在雾资源供给的系统成本方面,我们提出的方案相较于传统的雾资源供给方案具有更好的性能。
本文其余部分组织如下:在第2节中,我们描述了结合强化学习方法的移动雾计算模型;在第3节中,我们提出了在不同网络环境中设计最优策略以卸载代码块的问题,并详细阐述了用于雾网络中随机计算的深度确定性策略梯度算法。为了验证该算法的有效性,第4节展示了数值实验的结果。最后,我们在第5节中给出结论。
2. 预备知识与背景
作为一种分布式计算模型,雾计算位于物联网设备/传感器与云数据中心之间提供服务。移动云计算是一种面向移动设备提供可靠服务的移动站卸载平台。众所周知,无线保真(Wi‐Fi)和长期演进(LTE)的分层架构被应用于移动雾计算中。移动雾在该架构中的网络边缘建立。在移动雾计算中,我们使用接入点控制器(APC)和接入点(AP)作为雾节点。
2.1. 移动设备网络
在移动无线网络中,移动设备通过互联各种服务和应用来传递信息。移动雾架构如图1所示。在此架构中,所提出的移动雾计算模型能够满足对较大计算和通信能力的需求。如图1所示,云计算存在一个明显缺点,即移动设备到远程云服务器的通信距离过长,导致高通信延迟。因此,移动云不足以满足具有延迟约束和高计算能力需求的各种无线网络应用。
本文讨论了在移动雾计算环境中使用强化学习进行计算卸载的算法。通过使用移动代理,我们可以利用基本块迁移策略将资源短缺的移动基站上的代码块卸载到移动雾中。受[34,35],启发,代码卸载框架可以构建为图2所示。在图2中,编译器将编程语言翻译成机器语言。前端执行语义和语法分析,后端生成字节码并分组基本块。代码卸载器被建模为一个包含六个代码块的N皇后问题。代码1的寄存器值被代码2和代码3占用,代码2的寄存器值被代码6占用。上述代码块被划分为五个兼容集合,即它们完全独立且可以并行执行。
对于每个基本块,应用程序管理器分配块ID、方法ID和应用ID。此外,当应用程序运行时,代码管理存储记录CPU执行和利用率信息。代码块将被卸载到邻近的移动雾节点。我们可以通过学习在必要时卸载代码块来实现移动雾节点的可用性。如果平均内存、CPU执行和可用性小于可用CPU和内存,则应用程序管理器将执行该基本块;否则,将基于主机的可用CPU和内存确定本地处理的预期执行时间(EET H)。同时,它还根据可用的中央处理器和内存向F‐APC请求雾处理的EET (EETH)。最后,比较时间结果,即(EETF)<(EETH),代码卸载器将做出卸载决策。此外,代码卸载器执行BFS算法并定位独立块。为了并行执行,代码卸载器将独立块卸载到移动雾中。
为了实现雾节点和移动站的移动性,基本块将在邻近雾或同一雾中的不同雾节点之间移动。ePDG节点控制不同移动雾之间的通信。F‐APC节点负责为信息物理系统卸载大数据分析任务,并执行迁移以实现移动站的移动性。在边缘移动雾中,ePDG节点可以迁移基本块以实现负载共享和负载均衡。符号定义见表1。
2.2. 强化学习
马尔可夫决策过程(MDPs)为建模决策问题提供了一种思路,其结果部分是随机的并且受控于智能体的控制。马尔可夫决策过程(MDP)表示为一个元组 $(S,A, p, r)$,其中 $ S $ 表示状态集合,$ A $ 是动作集合,$ p $ 表示在执行行动 $ a $ 时从状态 $ s $ 转移到 $ s′ $ 的转移概率。而 $ r $ 是执行行动 $ a $ 后获得的奖励。$ \pi $ 由“策略”定义,该策略将状态映射到行动。在 MDP 中,目标是为智能体找到一个最优策略 $ \pi^
∶S → A $,以最小化系统的成本。值函数 $ V^\pi ∶S → R $ 表示由 $ \pi $ 获得的期望值。在 Q‐学习算法中,值函数可以表示如下:
$$
V^\pi (s)= E_\pi\left[\sum_{t=0}^{\infty}\gamma r_t( s_t, a_t) |s= s_0\right] \tag{1}
$$
$ V^
(s)= \max_{a_t} {E_\pi[r_t( s_t, a_t) + \gamma V^\pi (s_{t+1})]} $表示最优值函数。此外,我们可以将最优 Q ‐函数表示为 $ Q^
(s, a) \overset{\Delta}{=} r_t( s_t, a_t) + \gamma E_\pi[V^\pi (s_{t+1})] $。然后,我们有 $ V^
(s)= \max_a Q^*(s, a) $。该 Q函数可以更新为:
$$
Q_{t+1}(s, a)= Q_t( s, a)+ \alpha_t \left[ r_t ( s, a ) + \gamma\max_{a’} Q_t ( s, a’) -Q_t ( s, a )\right] \tag{2}
$$
其中,$\alpha_t$是学习率。然而,更新规则必须满足收敛定理[36]以确保收敛。
当 $S$和 $A$足够小时,Q ‐学习可以获得最优策略 $\pi^*$。然而,在复杂的系统中,这些空间和动作在实际中是很大的。因此,Q‐学习方法不适合用于寻找最优策略。为此,提出了深度 Q‐学习(DQL)算法来解决此问题[25]。
如[37],中所述,使用非线性函数逼近器的强化学习算法可能无法稳定地获得平均奖励。为解决该问题,DQN采用了经验回放方法。通过使用 $\varepsilon$ ‐greedy策略,随机生成经验。下一步,DQN从中随机选择样本,即从经验回放 D中选取转移的小批量来训练深度神经网络。通过训练深度神经网络,得到 Q‐值并将获得新的经验。同时,这些经验将被存储在 D中。利用新旧经验,经验回放机制使得深度神经网络能够更高效地被训练。此外,通过使用经验回放,转移之间的分布更加独立且同分布。
DQN模型的值‐状态函数 $Q^
$及其更新后的损失函数如下所示:
$$
\Gamma(\theta)= E_{s,a,r,s’}\left[(Q^
(s, a|\theta) -y)^2\right] \tag{3}
$$
其中 $y= r+ \gamma\max Q^*(s’, a’))$。$Q$是一个目标 Q函数。
将深度网络和经验池应用于DQN的思想已被用于深度确定性策略梯度(DDPG)[38]中。DDPG可被视为深度网络与确定性策略梯度的结合。Deep指的是更深的网络结构。策略梯度[39]是一种策略梯度算法,能够在连续动作空间中根据学习到的策略(动作分布)随机选择动作。确定性的目的是限制策略梯度进行随机选择,仅输出一个动作。在策略梯度算法中,通过执行步骤 $\nabla G(\theta)$和 $R_t=\sum_{i=t} \gamma^{i-t} r(s_i, a_i)$,以最大化
$G(\theta)= E_{s \sim p_\pi ,a \sim \pi_\theta} [R]$。最优策略由概率分布函数决定,并在每一步根据该概率分布获取当前状态下的最优动作。采用随机策略生成动作
$a_t \sim \pi_\theta(s_t |\theta_\pi)$。因此,我们可以将目标函数写为如下形式:
$$
G(\theta)= \int_S p_\pi (s)\int_A \pi_\theta(s, a)r(s, a)dads= E_{s \sim p_\pi ,a \sim \pi_\theta} [R] \tag{4}
$$
策略梯度定义如下:
$$
\nabla G(\theta) = E_{s \sim p_\pi ,a \sim \pi_\theta} [\nabla_\theta \log\pi_\theta( a|s) Q^\pi ( s, a )] \tag{5}
$$
| 符号 | 描述 |
|---|---|
| r | 奖励 |
| a | 行动 |
| s | 状态 |
| Q(s, a) | 行动价值函数 |
| V(s) | 状态价值函数 |
| $\pi$ | 策略 |
| p | 状态转移概率 |
| $\gamma$ | 折扣因子 |
| $\alpha$ | 学习率 |
| $\theta$ | 深度网络的权重 |
| $\Gamma(\theta)$ | 损失函数 |
| $G(\theta)$ | 奖励期望函数 |
| $\nabla G(\theta)$ | 奖励期望函数的梯度 |
| Q′ net | 目标网络 |
| F-AP | 雾接入点 |
| F‐APC | 雾接入点控制器 |
| $\tau$ | 服务时间 |
| PM | 搜索M个块的稳态分布 |
| Nb | 预期的块数 |
| Ei,j | 期望响应时间 |
| $\varphi$ | 风险因子 |
| Rreq | 服务级别协议要求的响应时间 |
| I | 性能指标 |
| $\delta$ | 协作因子 |
由于策略梯度是一种随机策略,因此需要对最优策略的概率分布进行采样以获得当前动作,并在每次迭代过程中对整个动作空间进行积分,导致计算量较大。为了解决这一问题,[40]提出了一种名为确定性策略梯度(DPG)的新算法,该算法扩展了策略梯度算法。在DPG算法中,一个行动由函数 $\mu_\theta$直接确定,即 $a_t= \mu(s_t|\mu_\mu)$。性能目标函数可表示如下:
$$
G(\mu_\theta)= \int_S p_u (s)r(s, \mu_\theta(s))ds= E_{s\sim p_u}[r(s, \mu_\theta(s))] \tag{6}
$$
DPG的梯度如下所示:
$$
\nabla_\theta G(\mu_\theta)= E_{s\sim p_u}[\nabla_\theta \mu_\theta(s)\nabla_a Q^\mu (s, a)|
{a= \mu
\theta(s)}] \tag{7}
$$
深度确定性策略梯度(DDPG)是一种基于DPG和确定性策略以及 DQN的变体算法。结合上述两种算法,DDPG采用确定性策略 $\mu_\theta$来选择行动 $a_t= \mu(s_t|\theta_\mu)$。其中 $\mu_\theta$是生成确定性动作的策略网络的参数。受Actor‐Critic和PG算法的启发,DDPG使用 $Q_\mu$作为执行者,$Q(s, a)$作为批评者。因此,DDPG的目标函数可定义如下:
$$
G(\theta_\mu)= E_{\theta_\mu}[r_1+ \gamma r_2+ \gamma^2 r_3+ \cdots] \tag{8}
$$
$Q(s, a)$表示为在确定性策略 $\mu_\theta$下选择行动的期望奖励。使用 DQN和Q网络来近似 $Q(s, a)$。由于在连续空间中,期望奖励可以通过积分获得。
$$
G_\beta(\mu)= \int_S P_\beta (s)Q_\mu (s, \mu(s))ds= E_{s \sim p_\beta}[Q_\mu (s, \mu(s))] \tag{9}
$$
其中 $\beta$为行为策略。在常见的强化学习训练过程中,$\varepsilon$‐贪心策略被用来平衡探索与利用。类似地,对于DDPG算法,使用乌伦贝克‐奥恩斯坦 (UO)随机过程作为随机噪声。UO过程在序列中具有良好的相关性,使智能体能够在环境中以动量属性进行探索,从而寻找潜在更优策略。因此,我们在训练过程中将随机噪声引入到行动的决策机制中。该随机过程如图3所示。
Silver [28]证明了使用策略 $\mu$的目标函数的梯度与使用策略 $\mu$的 Q函数的梯度是等价的,即
$$
\frac{\partial G(\theta_\mu)}{\partial \theta_\mu} = E_S\left[\frac{\partial Q(s, a|\theta_Q)}{\partial \theta_\mu}\right] \tag{10}
$$
对于确定性策略,$a= \mu(s|\theta_\mu)$。因此,执行者网络的梯度可以写成如下形式。
$$
\frac{\partial G(\theta_\mu)}{\partial \theta_\mu} = E_S\left[\frac{\partial Q(s, a|\theta_Q)}{\partial a} \frac{\partial \pi(s|\theta_\mu)}{\partial \theta_\mu}\right] \tag{11}
$$
此外,我们有:
$$
\nabla_\theta G_\beta(\mu_\theta)= \int_S p_\beta(s)\nabla_\theta \mu_\theta(s)Q^\mu (s, a)ds = E_{s \sim p_\beta}[\nabla_\theta \mu_\theta(s)Q^\mu (s, a)] \tag{12}
$$
另一方面,评论家网络的梯度可以表示如下。
$$
\frac{\partial L(\theta_Q)}{\partial \theta_Q}= E_{s,a,r,s’ \sim D}\left[\text{Target}
Q -Q(s, a|\theta_Q)\frac{\partial Q(s, a|\theta_Q)}{\partial \theta_Q}\right] \tag{13}
$$
其中 $\text{Target}_Q= r+ \gamma Q’(s’, \pi(s’ |\theta
{\mu’}) |\theta_{Q’})$。
DDPG网络结构如图4所示。
从图4可以看出,存在两个网络:主网络和目标网络。这两个网络均为两层全连接神经网络。执行者输出一个具体的行动,而批评者网络输出一个具体的Q值。首先,智能体采取一个从经验池D(回放内存)中抽取一批数据,然后训练执行者网络和评论家网络。其次,行动网络根据行为策略 $\mu$选择一个行动 $a_t$。环境执行 $a_t$并返回奖励 $r_t$和下一个状态 $s_{t+1}$。评论家网络根据损失函数更新参数。
3. 系统模型
各种应用程序和移动站的资源请求是动态的,这促使我们将强化学习算法应用于移动雾的资源供给[41]。受移动雾分布式特性的启发,我们采用分布式强化学习来解决移动雾的代码卸载问题。本文中存在三种不同的代码卸载选择:(1)邻近移动站中的移动雾 O1;(2)附近的移动雾以应对负载均衡和移动性问题 O2;(3)在远程公共云中管理计算需求和大量流量 O3。通过使用多移动代理搜索最优方案,移动雾的智能体将通过溶解与组形成(DFG)算法[42,43],从环境和经验中学习,即在多代理系统中使用DPG算法进行学习并选择动作。
行动集 $A$ 在移动雾中有十种情况: (1) 如果在 O1中卸载是 $a_1$。(2) 如果在 O2中卸载是 $a_2$。(3) 如果在 O3中卸载是 $a_3$。(4) 如果从 O1迁移至 O2是 $a_4$。(5) 如果从 O2迁移至 O1是 $a_5$。(6) 如果从 O1迁移至 O3是 $a_6$。(7) 如果从 O3迁移至 O1是 $a_7$。(8) 如果从 O2迁移至 O3是 $a_8$。(9) 如果从 O3迁移至 O2是 $a_9$。(10) 如果仅在 O1内迁移是 $a_{10}$。
每个智能体 $s_i$将负责移动雾系统中的一个具体动作。根据群体分解与形成算法(DFG算法),我们在组内与其他智能体进行竞争。一个组可以包含多个智能体或单个智能体。每个组都有一位领导者参与竞争。例如,某些智能体打算将一个基本块迁移到某个雾节点中,而另一些智能体则打算将其卸载到邻近雾节点中,但这两个智能体必须通过各自处理该任务的能力相互竞争。同时,一个独立块可以并行执行以减少时间开销,而一个依赖块必须按顺序依次执行。因此,如果移动应用程序代码无法使用并发执行,则这些动作可能变得不兼容。
此外,我们将状态 S定义为雾节点的网络带宽能力、处理能力和存储能力,即 $S= s_1, s_2,...., s_n$,其中 $s_i=(bw_i, cpu_i, storage_i)$。本文中,无论何种网络环境,任何智能体都无法获得全局状态知识(即所有移动雾节点的状态)。每个智能体仅知晓本地状态,但智能体之间可以协作并通信,以将代码卸载至最优雾节点。
如上所述,一个智能体负责一个行动。例如,将 O1的智能体视为一个组,一个智能体在F‐APC中进行基本块的代理放置,另一个智能体在 F − AP2中进行代理放置。组成员智能体的估计能力为 $E_{i,j}$,组领导者采取竞争投标$C_{i,j}$来安排在 O 1中的兼容基本块
$$
C_{i,j} = \varphi * E_{i,j} + \omega * E_{i,j} \tag{14}
$$
其中,$i,j$分别表示两个智能体。$\varphi$是风险估计的常数因子。$\omega$是用于避免陷入局部最小值的噪声因子。将执行该块的响应时间视为估计能力。
为了计算估计响应时间,我们通过排队论分析雾节点的队列状态。假设每个移动雾节点均具有单服务器,$M$表示一个服务器可以处理最大数量的块。$\xi$是到达率。$\tau$是服务时间。根据[44],,在 O1中的预期响应时间是:
$$
E[T_{O1}]=\frac{N_b}{\xi(1 -P_M)} \tag{15}
$$
其中,$P_M$是搜索 M块的稳态分布。当雾节点繁忙时,其概率为 $p$。$N_b$是预期的块数,定义如下:
$$
N_b=\frac{\xi \tau)^{M+1}}{(1 - \xi \tau)(1 -(\xi \tau)^{K+1})} \tag{16}
$$
如果一个组领导者希望移动 $O_2$ 中的一个块,即在远程移动雾中,$O_2$ 中的预期响应时间为:
$$
E[T_{O2}]=\frac{Q_l+ p(1 -P_M)}{\xi(1 -P_M)} + CL_{1,2} \tag{17}
$$
其中 $Q_l$是 $O_2$中的期望队列长度。$CL_{1,2}$表示 $O_1$与 $O_2$之间的通信延迟。
此外,如果领导者希望移动 $O_3$(公共云)中的代码块,则 $O_3$中的期望响应时间可定义为:
$$
E[T_{O3}]= \frac{1}{\tau}+ \frac{1}{\tau(N_c -\sigma)}\sum_{l=n}^{\infty} P_0 \frac{\sigma^l}{N_c!((N_c)^{m-N_c})} + CL_{1,3} \tag{18}
$$
其中,$N_c$是云服务器数量。$P_0$是零块的概率。$\sigma$是利用率因子。类似地,$CL_{1,3}$表示 $O_1$与 $O_3$之间的通信延迟。
以及估计能力$E_{i,j}$被定义为响应时间可表示如下:
$$
E_{i,j}=\begin{cases}
\frac{N_b}{\xi(1 -P_M)}, & \text{if } i={1, 5, 7, 10}, \text{ where } a_i \in A \text{ and } s_j \in S \
\frac{Q_l+ p(1 -P_M)}{\xi(1 -P_M)} + CL_{1,2}, & \text{if } i={2, 4, 9}, \text{ where } a_i \in A \text{ and } s_j \in S \
\frac{1}{\tau}+ \frac{1}{\tau(N_c -\sigma)}\sum_{l=n}^{\infty} P_0 \frac{\sigma^l}{N_c!((N_c)^{m-N_c})} + CL_{1,3}, & \text{if } i={3, 6, 8}, \text{ where } a_i \in A \text{ and } s_j \in S
\end{cases} \tag{19}
$$
根据公式(14),使用$E_{i,j}$不同的智能体组:{1, 5, 7, 10}、{2, 4, 9}、{3, 6, 8}来确定竞争出价$C_{i,j}$。具有最大竞争值的组将成为获胜者,并执行行动。
$$
C_{i,j}= \arg\max_k {C_{k,j}} \tag{20}
$$
信用分配的策略是将奖励值提供给前一个获胜智能体以设置环境。通过使用传桶式 (BB) 模型向前置智能体分配信用。假设智能体 $i$在状态$s_j$时是当前获胜者,智能体 $k$在状态 $s_l$是智能体$i$的直接前驱。根据 BB 模型,$i$减少其$E_{i,j}$如公式(20)所示。
$$
E_{i,j}= E_{i,j} -\varphi * E_{i,j}+ R_e \tag{21}
$$
其中 $R_e$是外部奖励,$\varphi$是风险因子。外部奖励 $R_e$可定义如下。
$$
R_e = \begin{cases}
w * \frac{E_{i,j} -R_{req}}{E_{i,j}}, & \text{if } E_{i,j} \leq R_{req} \
w * \frac{E_{i,j}}{R_{req}}, & \text{if } E_{i,j} > R_{req}
\end{cases} \tag{22}
$$
其中,$w$是奖励权重因子,$R_{req}$是服务级别协议要求的响应时间。此外,$k$通过公式(22)获得外部奖励。
$$
E_{k,l} = E_{k,l} + \varphi * E_{i,j} \tag{23}
$$
在移动雾系统中,各个智能体都需要负责不同的动作。根据兼容代理分组,智能体的分组并不总是固定的,智能体可以根据其有用性和性能改变其所属分组。在智能体分组中,最近 $e$ 个回合的性能指标 $I$ 可以定义如下。
$$
I[t+1]
{i,j} = \frac{1}{e}\sum
{\nu=t-e+1}^{t} E[\mu]
{i,j} \tag{24}
$$
其中$(t+1)$为实际的回合,$\mu$为上一个回合,且$i、j$分别表示智能体和状态。根据确定的滑动均值,智能体的性能将随时间按公式(24)下降。
$$
I[t+1]
{i,j} \leq \delta * E[t-e]_{i,j} \tag{25}
$$
其中 $\delta$是合作因子。众所周知,使用低维观测,深度确定性策略梯度算法能够学习竞争性策略。DDPG算法如算法1所示。
智能体组的形成如算法2所示。由于不兼容的智能体会执行不兼容的动作,因此在组形成过程中必须保持智能体之间的兼容性。组分解的过程如算法3所示。
为了避免智能体选择不良竞争,还需要执行组分解。如算法3所示,如果组的滑动均值低于最低水平,组领导者将解散该组。
使用强化学习方法,我们在移动雾中提出了一种用于卸载代码块的算法。详细算法步骤如算法4所示。
考虑一个雾节点连接到位置 $O_1$ 的云网关(CGW)。在某一时间段内,移动设备在 $N$ 个不同位置发起一个应用程序,表示为 $O_i,i \in 1,…,N$。在每个 $O_i$,一些任务将被发送并在雾节点中进一步执行。我们将雾节点的处理和传输延迟建模为一个双层队列系统。对于雾处理队列,雾中的任务可以调度到不同的虚拟机(VMs)上。令$p_{ij}$ 表示概率$p$,即任务被分配到 $O_i$上的虚拟机$j$ 的概率。假设任务均匀分配给所有虚拟机,即
$p_{ij} = \frac{1}{x_i} \forall i \in N, j \in 1,\dots,x_i$,其中 $x_i$ 表示在 $O_i$ 中租用的虚拟机数量。雾队列的负载可表示为。
$$
\xi_i = \frac{\lambda_i l_i v_i}{x_i u},\forall i \in N \tag{26}
$$
其中,$l_i$ 是输入数据大小,$v_i$ 是中央处理器的计算密集度。$\lambda_i$ 是流量到达率。$u$是虚拟机计算能力。
此外,雾计算延迟表示为。
$$
d^c_i = \frac{l_i v_i}{u ( 1 -\xi_i )}, \forall i \in N. \tag{27}
$$
| 表2 DDPG 架构 |
|---|
| Net |
| 批评者 |
| 如上 |
| 50 |
| 50 |
| 执行者 |
| 25 |
4. 实验仿真
在本节中,我们通过多次仿真来评估所提出的移动雾算法。在我们的仿真实验中,将连接两个相邻的移动雾。同时,每个移动雾均包含三个F‐AP节点和一个F‐APC节点。移动雾节点均通过虚拟机与云相连。
对于强化学习,我们使用图形处理单元(GPU),即Nvidia GTX 2080Ti。CPU为i7‐9750H。编程环境为Linux系统上的 tensorflow‐gpu‐1.11.1和python‐3.6。
4.1. 系统状态
本节将对DDPG进行参数分析,并展示参数对代码卸载训练过程和实验结果的影响。通过借鉴先前的研究经验以及大量实验测试,我们发现使用表2中的参数可以获得更好的性能。
在DDPG中,有3个全连接层用于构建执行者网络的目标子网络和在线子网络。批评者网络由两个全连接层生成。为了确保执行者网络中的输出行动在[0, 1]范围内,我们采用sigmoid函数作为激活函数。同时,批评者网络包含六个全连接层和更多单元,并在批评者网络中增加一个tanh激活层和两个Relu激活层。更多的激活函数和层数有助于逼近非线性Q表。移动雾的仿真参数如表3所示。
| 表3 移动雾计算的虚拟机仿真参数 |
|---|
| 节点 |
| 云节点 |
| 移动站 |
| 雾节点 |
对于云节点网络,训练卸载代码块为100,回放缓冲区的容量为 20000,小批量为60。在批评者网络和执行者网络中,学习率均设置为 0.0002。Q‐表的折扣因子为 $\gamma= 0.9$,更新因子为 $\tau= 0.01$。此外,行为噪声值为10,噪声衰减因子为 $\kappa= 0.9995$。尺度因子分别设置为 $\lambda_1 =100$和 $\lambda_2 = 5$。
对于移动雾节点,训练卸载代码块为200。在批评者网络和执行者网络中,学习率均为0.0005。折扣因子 $\gamma= 0.9$。
学习率等参数对DDPG算法的影响如图6和7所示。从图6可以看出,当学习率设置为0.01时结果不理想,因为策略变成了贪婪算法。当学习率设置为0.001时,信用奖励的结果随着回合增量而提升。此外,学习率设置为 0.0003,信用奖励通常随着回合增量而持续提升。然而,当学习率为 $10^{-5}$ 时,奖励增长缓慢。
遗憾的是,云计算有一个明显的缺点,即移动设备到远程云服务器的通信距离过长,导致高通信延迟。因此,移动云计算不足以满足具有延迟约束和高计算能力需求的无线网络应用。因此,我们将在图7中验证雾计算的性能。
在图7中,与图6类似,当学习率设置为较大值时,信用奖励将迅速得到一个不好的结果。在合理范围内,学习率越高,结果增长越快,但变化范围也越大。然而,当学习率较小时,性能的增长速度会降低,偏差也会减小。因此,选择合适的学习率更为重要,既不能太小也不能太大。
图8展示了折扣因子的影响 $\gamma$。对于云网络和移动雾网络,当折扣因子为 $\gamma=0.9$和 $\gamma= 0.99$时,策略的性能最佳。然而,当 $\gamma$过小或过大时,性能曲线会下降。原因如下。根据贝尔曼方程,精确表达式的长期平均为 $\gamma= 1$。因此,当 $\gamma$过小时,策略将更关注即时回报而非长期奖励。因此,合适的 $\gamma$值将提升DDPG算法中移动雾的卸载性能。
在图9中,我们考虑了四种场景:(1)移动雾,带行为噪声的深度强化学习算法;(2)移动雾,不带行为噪声的深度强化学习算法;(3)云,带行为噪声的深度强化学习算法;(4)云,不带行为噪声的深度强化学习算法。如图9所示,在云网络和移动雾网络中,若训练时不使用行为噪声,平均信用奖励性能会下降。与使用行为噪声的方法相比,状态归一化更为重要。若缺少 $\lambda_1, \lambda_2$或缺少状态归一化,训练将无效。然而,由于随机初始化的神经网络倾向于输出较大的值,因此很难通过较大的值学习到更好的结果。
4.2. 性能比较
我们首先比较了所提出的DDPG、DPG、Actor‐Critic和PG算法在不同节点组下的计算卸载奖励的性能。图10和11展示了结果。
对于移动站,我们设置内存为 2 GB,处理器频率为 1 GHz,带宽为 200 Mbps,移动站总数为 30。对于移动雾,我们设置内存为 15 GB,处理器频率为 1.5 GHz,带宽为 1 Gbps,雾节点总数为 8。同时,我们使用一个云节点,其内存为 64GB,处理器频率为 2.0 GHz,带宽为 8 Gbps。我们通过以下公式测量性能:
$$
\Phi(n)=[r_n - \tilde{r}(n)]∕\text{average}(\tilde{r}(n)) \tag{31}
$$
根据图10和图11,可以看出,与策略梯度(PG)、确定性策略梯度(DPG)和演员‐评论家(AC)方法相比,我们提出的方案在相关性能上至少实现了20%、37%、46%的提升。
接下来,我们研究了三种不同计算环境下的响应时间和系统成本,即移动雾、云和智能设备。资源使用可以在N皇后问题 [45] 中建模,其中 $N={5, 6, 7, 8}$。当$n > 8$时,程序执行时间将非常长,因此不适合移动设备。当 $n < 5$ 时,由于计算量较低,不适合进行卸载计算。
如图12所示,移动雾在执行资源使用时花费的时间更少,然而手机处理应用程序所需时间更长。与智能设备相比,云服务器在性能方面处理解决方案也花费更少的时间。
在图13中,我们可以看到移动雾、云和设备环境中的能耗结果。设备的处理器、外设和显示单元在未进行数据卸载时消耗大量能量。而移动雾和云可以在没有显示单元的情况下以更低的功耗运行。由于移动雾节点之间的距离最近,雾的能耗最低,从而降低了无线传输的能耗。对于远程云而言,由于远程云通常距离设备较远,而移动雾更靠近基站,因此其响应时间高于移动雾。
随着位置数量的增加,成本呈上升趋势。然而,更多的位置意味着更多的计算请求执行任务需要更多的计算资源。此外,我们将评估雾资源供给的性能。我们使用基于学习的方案(DDPGF)与DRLF学习方法[46]以及传统雾资源供给问题(FPP)方法[47]进行比较。首先,我们考虑在不同位置数量下雾资源供给分配的性能。如图14(a)、(b)和(c)所示,我们在三种完成截止时间情况下进行了实验:$D={130\,\text{ms},140\,\text{ms},150\,\text{ms}}$。
从图14可以看出,当任务截止时间增加时,所有成本都会下降。这是因为在D增大时,所需的计算资源减少,成本随之降低。
然后,我们比较了在不同任务到达率(TARs)下的性能。从图15中可以看出,当任务到达率从5到12任务/秒时,系统成本的变化趋势。随着任务到达率的增加,成本也随之上升,因为需要更多的资源来服务不断增加的任务。通过图13和图15,我们可以看出所提出的算法可以获得更低的系统成本。
5. 结论和未来工作
传统的移动边缘计算模型在复杂网络中难以做出最优卸载决策,因为寻找最优策略不可避免地会遇到复杂网络分布状态动态多变的问题。本文提出了一种基于学习的移动雾计算方案,以充分利用空闲的边缘计算和存储资源,并为物联网中的代码块卸载提供最优解决方案。我们将卸载状态集建模为马尔可夫决策过程 (MDP),并采用DDPG算法解决状态空间爆炸问题,从而在不同环境中找到卸载代码块的最优策略。同时,我们详细阐述了DDPG算法的训练过程,并设计了一个移动雾计算模型来实现计算卸载。此外,我们进行了参数分析,研究了折扣因子 $\gamma$和学习率等算法参数的影响。在不同的任务到达率(TARs)和位置数量下,实验结果表明,与PG、DPG和AC方法相比,所提出的卸载方案在雾资源供给方面的性能能够提升计算卸载性能。在未来工作中,我们将关注基于学习的方案在移动雾计算中的隐私、虚拟化和移动性问题。
4204

被折叠的 条评论
为什么被折叠?



