支持边缘计算的物联网多用户计算卸载方法
技术领域
本发明涉及支持边缘计算的物联网场景中应用分布式训练方法,尤其涉及支持边缘计算的物联网多用户计算卸载方法。
背景技术
作为互联网的有效延伸,物联网可以借助传感器将事物连接到网络中,实现诸如定位、识别、监测等功能。随着物联网技术的迅速兴起,各种相关应用服务蓬勃发展,在智能家居、灾害管理、环境监测等领域得到了广泛应用。然而,各类应用在提供丰富功能的同时需要部署大量的物联网设备,多样化的设备对网络的带宽、延迟和隐私有着不同要求,也给通信网络造成了巨大的压力。因此在物联网中引入了边缘计算技术,边缘计算在网络边缘提供计算资源,允许物联网设备将计算任务提交到边缘节点执行,即从物联网设备上卸载任务。此外,边缘计算也可协调传感器之间的通信,进而借助通信与计算之间的权衡以提高性能、节约能耗。然而在该模式下的任务调度方案仍然存在着许多不足,如何进一步优化资源的合理利用、强化对数据的隐私保护成为一个急需解决的问题。因此,本发明主要涉及到的背景技术包括以下方面:
边缘计算(EdgeComputing):边缘计算则通过设置分布式的边缘节点,为地理位置接近的用户提供网络、计算、应用、存储服务,从而可以避免终端设备与距离较远的云端进行通讯产生的时延,并且由于任务在边缘节点执行,可以避免向云端发送大量原始数据,减轻了主干网络的流量压力以及加强了对数据隐私性的保护。边缘计算中的终端设备是多种多样的,它们是数据和任务的生产者。然而,当终端设备需要处理计算密集型任务时,通常很难依赖设备本身的计算资源来满足需求。因此,可以通过利用边缘节点的计算资源来解决。边缘节点在地理上靠近终端设备,并且可以提供高质量的网络连接和计算服务。边缘节点比终端设备的计算资源更加丰富,并且由于地理位置相近,边缘节点对终端设备的响应速度比云端更快。因此,通过使用边缘节点来执行一些计算任务,可以在保证准确性的同时提高任务的响应速度。
深度强化学习(Deep Reinforcement Learning):由于强化学习技术通常应用于规模较小的数据空间之中,当输入如图像、音频等具有较高维度的数据时,就很难通过强化学习来进行数据处理。然而,深度强化学习技术通过将深度学习的高维输入与强化学习相结合来解决这一问题。如今,深度强化学习技术已经成为一个强有力的工具,并在自然语言处理、计算机视觉、商业管理、金融等领域取得了显著进展。强化学习通常会利用试错法来进行实现,它会对不同的动作决策进行尝试,将动作作用于环境之后获取动作的收益,并依据收益来进行不断地调整改进,这与人类的学习方式十分相似,而深度学习采用的则是一种通过多层神经网络对数据进行表征学习的方法,通过神经网络来学习数据的特征信息。深度强化学习是深度学习与强化学习技术融合的产物,既保留了深度学习的感知能力拥有着强化学习的决策能力,具有更加出色的学习能力,甚至在某些领域的决策能力已经超越的人类。
发明内容
(一)要解决的技术问题
本发明提供了一种支持边缘计算的物联网多用户计算卸载方法,通过分布式训练方法解决支持边缘计算的物联网场景下多用户计算卸载问题;通过考虑网络、算力、隐私等约束条件,提出一种计算卸载和能量分配的决策方法;通过将计算任务与计算资源之间进行合理的匹配,达到长期效用期望的最大化,实现各项指标因素的综合提升。
(二)技术方案
本发明提供了一种支持边缘计算的物联网多用户计算卸载方法,包括:
步骤S1:初始化学习模型;
步骤S2:对物联网设备的本地学习模型进行迭代,并聚合至边缘节点;
步骤S3:预判策略并执行。
步骤S1还包括:
步骤S1—1:初始化边缘节点中的学习模型;
步骤S1—2:初始化物联网设备中的学习模型。
在步骤S1—1中,将一随机值作为初始参数赋值给边缘节点中的学习模型,并初始化所有物联网设备的总训练时间。
在步骤S1—2中,由单个物联网设备组成的物联网设备集合,对于单个物联网设备,初始化其经验重放内存,然后使用随机参数初始化其本地学习模型。
在步骤S2中,将物联网设备的本地学习模型进行多次迭代,直至训练收敛,且在所选取的物联网设备集合中的所有单个物联网设备均需执行迭代。
步骤S2还包括:
步骤S2—1:物联网设备从边缘节点下载学习模型进行本地学习;
步骤S2-2:将训练好的学习模型参数上传至边缘节点,更新边缘节点学习模型;
步骤S2-3:边缘节点进行学习模型聚合更新。
步骤S2-1:物联网设备从边缘节点下载学习模型参数,并将学习模型参数赋值给物联网设备的本地学习模型,物联网设备首先获取初始网络状态,并据此做出决策,决策执行完成后可得到相应的决策收益,决策的执行还会产生新的网络状态,将这些数据存入经验重放内存中,物联网设备会从经验重放内存中随机抽取部分数据作为学习样本在本地训练学习模型,更新本地学习模型参数;
步骤S2-2:将训练好的学习模型参数上传至边缘节点,并通知边缘节点在本地对学习模型进行训练的次数,边缘节点执行步骤S2-3更新自身的模型参数;
步骤S2-3:更新边缘节点收集到的对其成功传输数据的物联网设备的训练次数和,边缘节点对收到的学习模型参数进行聚合更新。
在步骤S3中,物联网设备根据从步骤S2训练完善的学习模型,对动态变化的应用环境做出高效决策,以实现长期综合效用的提升,决策内容包括任务的计算卸载决策以及能量分配决策。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
当用户计算卸载时,物联网设备无需将原始数据进行传输,而是每个物联网设备都依据自身观测到的数据在本地进行训练,之后将模型参数的更新进行传输,再由边缘节点将物联网设备的更新进行汇总聚合,从而在保证角色准确高效的同时,避免了大量原始数据的传输、降低了模型训练时传输的数据量、降低了数据传输时延以及加强了对数据的隐私保护。
附图说明
图1为一种支持边缘计算的物联网多用户计算卸载方法流程图。
图2任务执行方式对比图。
图3支持边缘计算的物联网场景示意图。
图4分布式训练示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本发明的保护范围。
在传统方法中,所有物联网设备的数据需要上传到服务器进行处理,由于原始数据规模往往很庞大,所以会导致较高的传输时延并且会给主干网络带来沉重的流量负载压力,此外,对原始数据的传输汇总也不利于对数据隐私性的保护。
本发明提供了一种支持边缘计算的物联网多用户计算卸载方法,基于分布式训练的计算卸载策略,通过分布式训练减轻单一设备的训练负担,针对网络通信约束提出将物联网设备上的观测数据仅用于本地训练,只将更新后的模型参数上传到边缘节点进行进一步的模型聚合,以实现减轻传感器设备的训练负担与达到隐私保护的需求,如图2所示。
为了清楚的描述本发明提供的一种支持边缘计算的物联网多用户计算卸载方法,首先对支持边缘计算的物联网系统各个组件进行概述,再对物联网设备的网络状态与决策空间进行描述,定义本发明所面向的典型问题,最后提出解决该场景下典型问题的解决方案。
在支持边缘计算的物联网系统中,如图3所示,物联网设备位于边缘节点的服务范围中;首先,物联网设备集合
与边缘设备集合
分别表示为
其次,采用时间片的概念将时间划分为以i为索引、以δ秒为持续时长的多个阶段;再次,物联网设备中有一个最大长度为
的任务队列,以先入先出(FIFO)的方式暂存任务,并且定义
为任务到达指示器,还有一个最大长度为
的能量序列以保存能量单元;之后,物联网设备生成的计算任务被建模为(μ,v),其中μ表示加载任务所需的传输数据大小,v表示处理任务所需的CPU周期数。此外,物联网设备可通过在本地执行计算任务,可避免由数据传输引起的延迟,还可以加载到信道带宽为wHz的边缘节点来执行,利用边缘节点更丰富的资源来执行任务,根据实际情况进行权衡。
物联网设备需要在第i个阶段进行决策(ci,ei)。其中,ci代表任务卸载的决定,如式(1):
其中,ei表示分配的能量单元数量,对物联网设备的CPU频率和数据传输速率产生影响,当ei=0时,任务不执行,仍保存在任务队列中,当ei>0时,任务执行。此外,物联网设备还有一个任务队列,当任务队列已满时,该队列将无法保存新创建的任务。
当物联网设备在本地执行计算任务时,物联网设备分配的CPU频率fi可表示为式(2):
其中,τ取决于芯片结构,对应的时间消耗
可计算得式(3):
当物联网设备在边缘节点执行计算任务时,物联网设备与边缘节点在阶段i的连接关系可表示为式(4):
考虑到连接切换时会造成δ秒延迟,因此切换延迟hi可表示如式(5):
其中σ为常数。定义ri是物联网设备在第i阶段的数据传输速率,可表示为式(6):
其中,
可表示为阶段i中物联网设备与边缘设备的信道增益,I表示干扰与噪声的功率和,
表示为传输功率,并满足式(7):
代入式(6)、(7)可得式(9):
当任务卸载到边缘节点执行时,会产生一个较小的延迟ds,任务运行时延di可表示为式(10);
由于边缘节点计算资源的有限性,进一步定义了占用边缘节点所需的花销来避免对边缘节点的过度使用,定义π∈R+作为占用边缘节点单位时间的价格,则占用边缘节点的花销φi可表示为式(11):
在每个阶段,当有任务被取出或生成时,任务队列会进行更新如式(12):
其中
定义为第i阶段产生的任务数量,在每一阶段按照伯努利分布随机产生。此外,定义
是第i阶段物联网设备获取的能量单元数量,在每一阶段按照泊松分布随机产生,则能量队列中长度的变化
可表示为式(13):
定义ρi表示第i阶段任务队列中的排队延迟,可表示为式(14):
此外,当任务队列已满时,会使新产生的任务无法存入任务队列,从而导致任务丢失,定义ηi为第i阶段计算任务丢失的数量,可表示为式(15):
物联网设备的网络状态可以表示为式(16):
在每个阶段的开始,物联网设备进行决策,决策内容包括任务卸载决策与能量分配决策两部分,如式(17):
此外,定义Φ(Xi)表示依据网络状态χi的决策函数,则最大化的长期效益期望如式(18):
其中X1是初始网络状态,u(·)是阶段i的直接效用,u(·)由任务执行延迟di、任务丢弃数ηi、任务排队延迟ρi和占用边缘节点花销φi几项指标共同决定。需要注意的是,U(·)可以针对不同的目标进行定制化设计,例如:如果系统最注重任务执行的延迟,则可以提升任务排队延迟ρi和任务执行延迟di的权重,进而提高其在整个效用中的比例。
根据上述计算过程,式(18)所得U(X,Φ)为综合收益值,物联网在进行计算卸载时的决策需要依赖此函数。
本发明提供了一种支持边缘计算的物联网多用户计算卸载方法,基于深度强化学习技术,通过上述计算方法及其各阶段所得数值,使用分布式训练方法来协调多个物联网设备之间的训练过程,从而解决物联网中计算卸载的问题,步骤如下:
步骤S1:初始化学习模型:
步骤S1—1:初始化边缘节点中的学习模型:
其中,将一随机值θ0赋值给边缘节点中的学习模型,即以随机参数θ0初始化边缘节点中的学习模型,该数值在之后的步骤中会更新,并初始化所有物联网设备的总训练时间为一随机初始值A0;
步骤S1—2:初始化物联网设备中的学习模型:
其中,单个物联网设备表示为d,物联网设备集合表示为
使
对于单个物联网设备,初始化其经验重放内存
然后使用随机参数初始化其本地学习模型
步骤S2:对物联网设备的本地学习模型
进行迭代,并聚合至边缘节点:
其中,将进行迭代T次直至训练收敛,即将初始化的边缘节点中的学习模型θ0迭代至θt,其中t为当前周期次数,选取M个可用物联网设备的随机集合,并将其赋值至St,集合St中的每个设备d都并行地执行以下步骤:
步骤S2-1:物联网设备d从边缘节点下载学习模型参数θ
t,并将其赋值给物联网设备的本地学习模型参数
即
物联网设备首先获取由公式(16)定义的初始时网络状态X
t,之后据此做出公式(17)中定义的决策(c
t,e
t),决策执行完成后可得到相应的决策收益u(·),此外决策的执行还会产生新的网络状态X
t+1,然后将(X
t,(c
t,e
t),u(·),X
t+1)作为一条经验数据存入经验重放内存
物联网设备会从经验重放内存
中随机抽取部分数据作为学习样本,在本地训练学习模型
更新本地学习模型参数
步骤S2-2:将训练好的学习模型参数
上传至边缘节点,并通知边缘节点在本地对学习模型进行训练的次数
边缘节点执行步骤S2-3更新自身的模型参数;
步骤S2-3:更新边缘节点收集到的对其成功传输数据的物联网设备的训练次数和
并对边缘节点学习模型θ
t+1执行模型聚合,使
即边缘节点对收到的学习模型参数进行聚合更新;
步骤S3:预判策略并执行:
物联网设备根据从步骤S3训练完善的学习模型,对动态变化的应用环境做出高效决策,以实现长期综合效用的提升,决策内容包括任务的计算卸载决策以及能量分配决策。
如图4所示,为本发明的分布式训练示意图。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。