本发明涉及边缘计算,具体涉及一种基于元强化学习的任务卸载方法。
背景技术:
1、随着5g、物联网等通信技术的迅猛发展,用户设备的接入呈现指数级增长。尽管新兴技术为生活带来便利,但同时也带来时延、能耗、成本等挑战。在执行计算密集型任务时,用户设备的负载限制成为显著问题。为了解决这一难题,边缘计算应运而生,任务卸载作为分布式计算范式通过在网络边缘部署边缘服务器,有效缓解上述挑战。边缘服务器具备计算和决策能力,用户可将任务卸载到边缘服务器,降低传输能耗、减少传输时延,同时满足任务计算需求。尽管边缘服务器提供计算及存储,但由于资源有限,为所有用户设备提供计算成为关键问题。在资源有限的情况下如何为用户提供最优卸载决策成为当前需解决的问题。
2、随着边缘计算的快速发展,任务卸载成为提高移动应用性能的有效手段。任务卸载是一种将移动应用程序的部分或全部任务从用户设备卸载到边缘服务器或云端的技术。然而,现有技术在复杂多变环境下,尤其是在任务序列维度不同的情况下仍存在疑难问题,同时设备的能耗和任务的延迟仍然是亟待解决的瓶颈。
3、(1)环境复杂性:移动环境经常面临网络波动、计算资源不足等不确定性因素。
4、(2)任务序列的不同维度:移动应用通常由多个任务组成,这些任务可能具有不同的执行时间、资源需求和优先级。在现有技术中,对于任务序列维度不同的情况,如何进行有效的训练和决策仍然是一个挑战。
5、(3)能耗和延迟优化:用户设备的资源有限,同时用户对任务执行的延迟敏感。
技术实现思路
1、本发明的目的是:提供一种基于元强化学习的任务卸载方法,将任务的卸载过程建模为多个马尔可夫决策过程,构建基于gru(gated recurrent unit,门控循环单元)注意力机制的seq2seq(sequence-to-sequence,序列到序列)网络模型并融合元强化学习与td3算法的mr-td3算法,提高了任务卸载的效率和稳定性。
2、本发明的技术方案是:提出一种基于元强化学习的任务卸载方法,包括以下步骤:
3、s1、建立多用户单边缘服务器的任务卸载场景,将任务分解为一系列具有依赖关系的子任务。
4、s2、根据用户设备的应用程序将卸载任务建模为dag(directed acyclic graph,有向无环图),获得dag的特征信息;其中,dag的特征信息包括数据量大小、计算效率、卸载方式和cpu功率。
5、s3、构建基于gru注意力机制的seq2seq网络模型,将步骤s2中dag的特征信息嵌入到该网络模型中,通过更准确的理解和处理输入序列,得到不同任务的卸载序列。当模型在面对多样化的输入时,仍能较好的处理。增强模型对任务之间关系的理解,从而提高任务卸载的效果。
6、s4、基于dag的特征信息,计算本地任务处理以及边缘任务卸载的总延迟和总能耗。
7、s5、基于dag的特征信息构建不同类型的任务,将边缘任务卸载建模为马尔可夫决策模型,根据时延与能耗获得状态函数、动作函数和奖励函数。
8、s6、根据步骤s5获得的函数将mrl(meta reinforcement learning,元强化学习)与td3算法进行融合,得到mr-td3算法,以适应在面对新任务时的调整策略。利用mr-td3算法对工作负载和资源分配进行处理,得到更高效的资源利用率和更快的任务处理时间,完成了任务的卸载。
9、进一步的,步骤s1中,卸载任务场景包括以下内容:
10、用户设备集合为n,n={1,2,3,...,n},n表示用户设备的总数量;每个用户设备具有不同的计算和存储能力,并分布在不同地理位置上。用户设备通过移动通信网络与边缘服务器进行通信和数据传输,建立卸载任务场景。
11、在卸载任务场景中,用户设备根据本地系统的状态和任务的相关配置文件执行任务,将任务分解为一系列具有依赖关系的子任务,将满足本地资源利用率和任务执行时间的子任务在本地进行处理;将满足网络带宽和延迟的子任务通过无线信道传输卸载到边缘服务器中进行处理;将处理结果通过网络返回到用户设备;设定必须在任务完全执行后才能执行子任务,且边缘服务器的计算资源充足。
12、进一步的,步骤s2中,dag包括以下内容:
13、dag包括一组子任务和一组表示子任务之间依赖关系的有向边,记为其中g表示有向无环图,t表示子任务的集合,表示有向边的集合,ti是任务tj的直接父任务,tj是任务ti的子任务,其中j>i;当dag中没有子任务时表示任务退出。
14、进一步的,步骤s3中,得到不同任务的卸载序列包括以下内容:
15、基于gru注意力机制的seq2seq网络模型包括自注意力层、编码器、注意力层和解码器;编码器包括双向门控循环单元,解码器包括注意力机制的gru网络。
16、将有向无环图的特征信息与其对应的输入序列的依赖关系进行拼接构成输入数据,输入到该网络模型中,经过自注意力层得到上下文表示,再经过编码器的双向处理,生成上下文向量,具体表达式为:
17、
18、
19、其中,表示子任务中第i‘个向量的前向函数;fenc表示前向函数;表示子任务中第i‘个向量的后向函数;表示子任务中第i‘-1个向量的前向函数;benc表示后向函数;表示子任务中第i‘+1个向量的后向函数;ti+1表示第i+1个任务;hi‘表示子任务中第i‘个向量的函数;a表示编码器的输出权重系数,a=[0,1];c表示上下文向量,包括子任务的前向信息和后向信息。
20、注意力层根据上下文向量和解码器的状态,动态的选择和关注输入数据中的信息,经过解码器生成输出序列[d1,d2,...dt],进而得到不同任务的卸载序列π(α1|s1)及其价值v(s1),其中dt表示解码器第t个时间步长的输出。
21、进一步的,步骤s4中,利用有向无环图中任务的数据量大小、计算效率、卸载方式和cpu功率计算延迟和能耗。
22、两种卸载方式表示为:
23、
24、在卸载过程中应同时考虑延迟和能耗,两种卸载方式的延迟和能耗的计算过程为:
25、(1)当任务在本地执行时,第i个任务的延迟和能耗的计算公式为:
26、
27、
28、其中,σ表示cpu运行执行任务指令的数量,wi表示第i个任务的数据量大小,fl表示本地设备的计算效率(即每秒的cpu运行周期数),el表示本地执行一条指令的平均能耗。
29、n个用户设备在本地执行时的总延迟和总能耗的计算公式为:
30、
31、其中,i表示任务的总数。
32、(2)当任务在边缘服务器卸载时,第i个任务的传输时延的计算公式为:
33、
34、其中,bn表示本地用户设备和边缘服务器之间的带宽。
35、卸载到边缘服务器的任务和数据不需要在下行返回给用户设备,只需传输计算结果,因此下行链路的响应时间和能量消耗远小于上行链路,则第i个任务计算结果的返回时间和能耗可忽略不计。
36、第i个任务卸载到边缘服务器的延迟包括传输时延和计算时间,具体公式为:
37、
38、其中,fe表示边缘服务器的计算效率。
39、第i个任务卸载到边缘服务器能耗的计算公式为:
40、
41、其中,ee表示边缘卸载一条指令的平均能耗,et表示传输单位大小的数据所消耗的能耗。
42、n个用户设备卸载到边缘服务器的总延迟和总能耗的计算公式为:
43、
44、所有任务的延迟ttotal和能耗etotal的计算公式为:
45、
46、
47、进一步的,步骤s5中,获得状态函数、动作函数和奖励函数包括以下内容:
48、根据有向无环图的特征信息和步骤s4的计算结果构建不同类型的任务,当计算指令数大于本地执行的指令数,则将该任务卸载到边缘服务器中,反之则该任务在本地执行;每个马尔可夫决策对应元学习中的一个单独任务,将边缘任务卸载建模为马尔可夫决策模型,具体表达式为:
49、
50、其中,表示任务的分布概率,ρ(t)表示任务的类型;st表示状态函数;a表示动作函数;p表示状态转移概率矩阵;p0表示初始状态分布;r表示奖励函数;γ表示折扣因子,γ∈[0,1]。
51、当智能体与环境交互时,智能体向当前的状态函数,发送一个动作环境,给出下一个状态和奖励,根据交互信息制定马尔可夫决策的状态函数、动作函数和奖励函数,具体内容为:
52、卸载子任务时,子任务的执行延迟取决于任务所需的cpu周期、上传及下载的数据大小、dag拓扑、上一个任务的执行决策、传输速率、设备功率和边缘计算资源;状态函数的具体表达式为:
53、
54、其中,st表示第i个任务的状态函数;a1:i-1表示前i-1个任务的卸载决策记录;表示任务的最大处理延迟,任务的执行时间超过则任务处理失败。
55、为了将dag拓扑的子任务集合转换为子任务序列并保留优先级关系,对任务添加序号,并根据序号对子任务进行排序,具体表达式为:
56、
57、其中,t表示任务集,child(ti)表示第i个任务的子任务集合,rank(tj)表示第j个子任务的序号,rank(ti)表示第i个任务的序号。
58、将有向无环图转换为第i个任务的任务向量和子任务向量,该向量的大小设置为所有应用程序中包含的最大值或小于最大值直接用0表示。
59、第i个任务的卸载位置决策即为动作函数,具体表示为:
60、d′i={αt|αt∈{0,1}}
61、其中,d′i表示第i个任务的卸载位置决策,αt表示动作环境。
62、最佳的卸载策略应该是具有最低的任务处理延迟和用户设备能耗,若一个任务由于设备能量不足或执行超时无法完成,表示卸载未完成,执行条件ti(con)=1;否则ti(con)=0。
63、奖惩条件为:
64、
65、其中,ti(con)表示第i个任务的奖惩函数;δei表示相邻两个任务消耗的能耗之差,表示前i个任务的卸载决策记录的能耗,表示前i-1个任务的卸载决策记录的能耗;δti表示相邻两个任务的延迟之差,表示前i个任务的卸载决策记录的处理时间,表示前i-1个任务的卸载决策记录的处理时间;表示用户设备完成第i-1个任务后的剩余能量。
66、算法的优化目标是最小化延迟和能耗,因此奖励定义为任务卸载后延迟和能耗的增量,具体表达式为:
67、
68、其中,表示延迟和能耗的目标权重,ω表示任务失败的惩罚因子。
69、进一步的,步骤s6中,任务卸载包括以下内容:
70、根据步骤s5中马尔可夫决策模型的状态、动作和奖励函数将元强化学习与td3算法结合,得到mr-td3算法,使任务卸载能够适应不同环境下的任务,实现泛化以及提高算法对环境的适应性。
71、td3算法中当前价值网络为φ′表示目标策略网络,θ′1表示第一目标价值网络的参数,θ′2表示第二目标价值网络的参数;第二价值网络为qθ2(s,a),参数为φ、θ1和θ2。
72、在td3算法中向目标动作添加噪声增强探索性,平滑价值网络动作的区域值;训练时任务卸载策略的动作和期望奖励y表示为:
73、
74、其中,πφ′(s′)表示在状态s′下的策略网络,表示剪切噪声函数,r表示折扣因子,表示当前价值网络,φ′表示目标策略网络,θ1′表示第一目标价值网络的参数,θ2′表示第二目标价值网络的参数。
75、使用a2c(advantage actor-critic,优势演员-评论家)算法对mr-td3算法进行训练,随机初始化第二价值网络的参数φ、θ1和θ2,初始化目标价值网络的参数φ→φ‘,θ1→θ1’,θ2→θ2‘,训练轮次k=1,2,3…k;由于累计误差不可避免的存在高估问题,td3算法采用双q的学习思想,采用两个独立的值函数,使用较小的值进行更新,减少过高估计带来的偏差。
76、采用梯度上升获得具有最大期望回报的返回参数φ;对于参与者actor-critic网络的目标函数和表示为:
77、
78、其中,表示td3算法中的第一价值网络,πφ(s)表示在状态s下的策略网络,a表示策略网络动作。
79、mr-td3算法包括内循环学习和外循环学习,内循环学习是将基于gru的seq2seq网络与td3相结合,使优势演员-评论家算法能够适应不同子任务数量的训练环境,外循环学习采用元参数的梯度更新来最小化目标函数,该函数涉及到二阶梯度的更新问题,本发明使用一阶近似的方法表示。
80、其中,内外循环函数为:
81、
82、其中,和分别表示内、外循环的梯度更新,表示样本策略参数,和分别表示mr-td3算法中critic和actor目标函数。
83、本发明采用以上技术方案与现有技术相比,具有以下技术效果:
84、(1)本发明采用基于gru注意力机制的seq2seq网络模型,通过门控单元能够更好的捕捉长序列中的依赖关系,同时可以缓解梯度消失、减少训练次数,有助于提高模型训练的效率和稳定性。
85、(2)本发明在解码器和编码器之间加入注意力机制,解码器在生成卸载策略时能够动态关注与当前生成步骤相关编码器的输出以及考虑不同任务之间的依赖关系;
86、在编码器中加入自注意力机制可以更好的理解输入序列中复杂的依赖关系。
87、(3)本发明设计了一种融合元强化学习与td3算法的mr-td3算法,通过采用mrl可以使其代理更好地快速适应学习环境和新任务的变化,从而在面对新任务时能够做出更快的调整策略。通过使用td3算法改进q网络的更新,能够避免q值的过高估计导致训练的不稳定性,从而提高学习的样本效率。在任务最大容忍时延和能耗的约束条件下,能够最小化设备的延迟和能耗。
1.一种基于元强化学习的任务卸载方法,其特征在于,包括:
2.根据权利要求1所述的基于元强化学习的任务卸载方法,其特征在于,步骤s1中,卸载任务场景包括以下内容:
3.根据权利要求1所述的基于元强化学习的任务卸载方法,其特征在于,步骤s2中,有向无环图包括以下内容:
4.根据权利要求1所述的基于元强化学习的任务卸载方法,其特征在于,步骤s3中,得到不同任务的卸载序列包括以下内容:
5.根据权利要求1所述的基于元强化学习的任务卸载方法,其特征在于,步骤s4中,利用有向无环图中任务的数据量大小、计算效率、卸载方式和cpu功率计算延迟和能耗;
6.根据权利要求1所述的基于元强化学习的任务卸载方法,其特征在于,步骤s5中,获得状态函数、动作函数和奖励函数包括以下内容:
7.根据权利要求1所述的基于元强化学习的任务卸载方法,其特征在于,步骤s6中,任务卸载包括以下内容: