本发明涉及边缘智能技术领域,尤其涉及一种基于深度强化学习的边云协同优化方法。
背景技术:
深度神经网络(deepneuralnetworks,dnn)是目前很多人工智能应用的基础,但是网络向更深层次发展以及准确性的提高是以极高的计算复杂度为代价的,因而增加了前向传播的时延与能耗。
为了解决处理dnn所面临的大量资源需求与资源紧缺之间的矛盾,传统方法是将数据与任务卸载到如云服务器等具有强大计算力的设备,当云服务器计算完成后再将结果返回至本地设备。然而,这种基于云的处理方法一方面会带来用户数据安全问题,同时伴随着智能设备与数据数量的飞速增长,云服务器的计算压力会异常巨大,从而带来很高的等待时间与能耗成本。在传输数据过程中,通信带宽也往往会成为优化的瓶颈。
技术实现要素:
本发明提供一种基于深度强化学习的边云协同优化方法,用以解决现有技术中存在通信时延、能耗以及隐私等问题,实现在保证一定准确率的条件下,达到最小化时延和能耗的目的。
本发明提供一种基于深度强化学习的边云协同优化方法,应用于由终端设备、云服务器以及边缘设备组成的网络,所述优化方法在优化逻辑上分为离线阶段、优化决策阶段以及在线推理阶段,包括:
在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
根据本发明提供的一种基于深度强化学习的边云协同优化方法,所述通过离线训练深度学习模型生成带有多个早退点的多分支网络之后,包括:
将训练好的所述深度学习模型部署在终端设备和云服务器上,
其中,不同早退点对应的分支网络提供不同的神经网络层数与准确率,供所述优化器在在线推理阶段中动态选择。
根据本发明提供的一种基于深度强化学习的边云协同优化方法,所述时延为端对端的总时延,所述总时延包括边缘计算时延、云计算时延、传输时延中的一种或多种组合,所述能耗包括分割后边缘设备的总能耗,所述总能耗包括计算能耗、传输能耗的一种或多种组合;时延和能耗均可由实际测量,或基于相应理论模型获取;
所述计算能耗的公式为:
eloc=k0(filoc)2oixi;
其中,i表示用户,filoc表示用户i的本地cpu频率,k0f2表示一个cpu周期的计算能耗,k0表示与硬件有关的常量,oi表示用户i待处理数据大小,xi表示任务的计算强度;
所述传输能耗的公式为:
其中,i是用户i的集合,k是云服务器k的集合,|hk|2表示用户i传输数据到云服务器k的信道增益,zi表示伴随用户i的均值为0,σ2表示高斯白噪声,wi,k表示用户i传输数据到服务器k时分配的带宽资源,pi,k表示当用户i传输数据到云服务器k上执行时分配的传输功率,b表示用户与云服务器之间的传输带宽,oi表示用户i待处理数据大小,xi,k为0/1数值表示用户i是否将数据传输至云服务器k。
根据本发明提供的一种基于深度强化学习的边云协同优化方法,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,包括:
基于所述准确率,根据所述深度学习模型输出量化编码的推理方案对待传输的中间数据进行量化,所述量化的公式如下:
其中,xi为待量化数据,为量化后数据,max/min代表xi的最大/最小值,round函数表示取整操作;
通过利用所述量化的公式,将32位浮点数映射到[0,2c-1]的整数空间,并压缩每个整数所占的位数以减低数据的体积;
对量化后的数据,通过预设编码的方式进一步压缩所述数据所占的比特数。
根据本发明提供的一种基于深度强化学习的边云协同优化方法,包括:
在离线阶段,对所述优化器进行训练,根据带宽将奖励函数分为两部分,并分别给与带宽不同的超参数,所述奖励函数如下:
r=α*accuracy+β/latency;
其中,r表示奖励值,α、β表示超参数,accuracy表示系统的准确率,latency表示系统的端到端时延;
在优化决策阶段,所述优化器的输入状态的维度分别表示时延、能耗、准确率以及带宽;
输入状态后,所述优化器根据优化函数计算动作空间内所有动作的概率,并选择可能性最高的动作作为输出,输出的动作由早退点、分割点以及量化编码比特数三个维度组成,所述优化函数如下:
maxrwherer=α*accuracy+β/latency;
其中,energy表示系统的能耗,e表示系统的能耗阈值,t表示系统的端对端时延阈值,acc表示系统的准确率阈值。
根据本发明提供的一种基于深度强化学习的边云协同优化方法,所述按照优化后的推理方案指导边缘设备与云服务器协同实施,包括:
根据分割点,在边缘设备/终端设备和云服务器之间分割所述深度学习模型的计算,将密集型的计算放在云服务器上执行,其余计算卸载到边缘设备或终端设备上执行;
用户i将数据从终端设备或边缘设备传输至云服务器,上的上行传输时间的式子表示为:
其中,i为用户i的集合,k为云服务器k的集合,i表示用户,xi,k为0/1数值表示用户i是否将数据传输至云服务器k,oi表示用户i待处理数据大小,ri,k表示用户i将数据传输至云服务器k的传输速率。
本发明还提供一种基于深度强化学习的边云协同优化装置,应用于由终端设备、云服务器以及边缘设备组成的物联网,其特征在于,所述优化装置在优化逻辑上分为离线阶段、优化决策阶段以及在线推理阶段,包括:
离线训练模块,用于在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
优化决策模块,用于在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在线推理模块,用于在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
本发明还提供一种边缘设备,其特征在于,在所述边缘设备执行基于深度强化学习的边云协同优化方法的步骤,所述步骤包括:
在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于深度强化学习的边云协同优化方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于深度强化学习的边云协同优化方法的步骤。
本发明提供的一种基于深度强化学习的边云协同优化方法,通过综合了模型早退、模型分割和数据量化编码,并基于优化器的动态推理框架,根据网络的实时带宽,输出边缘设备(或终端设备)与云服务器之间关于早退点、分割点与量化编码比特数的决策,本发明对于传输数据的时延、能耗和准确率能够有效优化。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于深度强化学习的边云协同优化方法的流程示意图;
图2是本发明提供的优化器(drl)内部机制的示意图;
图3是本发明提供的优化器(drl)的处理流程示意图;
图4是本发明提供的优化决策阶段的示意图;
图5是本发明提供的基于深度强化学习的边云协同优化方法的的一实施例的示意图;
图6是本发明提供的带有多个早退点的多分支网络的示意图;
图7是本发明提供的分割点的示意图;
图8是本发明提供的量化编码的流程示意图;
图9是本发明提供的基于深度强化学习的边云协同优化装置的结构示意图;
图10是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
以下对本发明涉及的技术术语进行描述:
物联网(internetofthings,iot)即“万物相连的互联网”,是互联网基础上的延伸和扩展的网络,将各种信息传感设备与互联网结合起来而形成的一个巨大网络,实现在任何时间、任何地点,人、机、物的互联互通。
边缘智能作为边缘计算与人工智能之间的桥梁,其主要思想是将云功能从网络的核心推移到靠近设备的网络边缘以加快数据上传到边缘设备的速度,从而实现低时延和高效推理。
深度强化学习(deepreinforcementlearning,drl)是一种端对端(end-to-end)的感知与控制系统,具有很强的通用性.其学习过程可以描述为:(1)在每个时刻agent与环境交互得到一个高维度的观察,并利用dl方法来感知观察,以得到具体的状态特征表示;(2)基于预期回报来评价各动作的价值函数,并通过某种策略将当前状态映射为相应的动作;(3)环境对此动作做出反应,并得到下一个观察。通过不断循环以上过程,最终可以得到实现目标的最优策略。
由于边缘设备计算与存储能力都有限,而许多智能应用程序都需要强大的计算能力,因此无法运行大型模型,而且基于边缘的dnn性能受到云端与边缘设备之间可用通信带宽的制约。
现有技术的模型的部署,包括基于云、基于边缘和混合部署。其中,基于云的部署,需要将大量原始数据上传至云服务器,会导致较大的延迟;基于边缘的部署,会受到边缘设备计算能力的约束而无法运行大型模型;混合部署,需同时利用云服务器和边缘设备,通常可利用dnn分区等方法进行折中。
基于此,本发明提供了一种基于深度强化学习(drl)的边云协同优化方法、装置及边缘设备,综合考虑了时延、能耗以及隐私的边缘设备与云端服务器间的协同部署方案,能够实现在预设准确率的条件下,将模型部署在边(边缘计算)-端(终端设备)-云(云计算)的框架,达到最小化时延和能耗的目的,并且能够自适应的对环境因素(如网络带宽等)的变动做出动态应对。
下面结合图1-图10描述本发明的一种基于深度强化学习的边云协同优化方法、装置及边缘设备。
图1是本发明提供的基于深度强化学习的边云协同优化方法的流程示意图,如图1所示。本发明所述一种基于深度强化学习的边云协同优化方法,可应用于由终端设备、云服务器以及边缘设备组成的物联网,所述优化方法在优化逻辑上分为离线阶段、优化决策阶段以及在线推理阶段,包括:
步骤101,在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数。
(1)关于多分支网络
深度学习模型的神经网络有深度神经网络(deepneuralnetworks,dnn)、循环神经网络(recurrentneuralnetworks,rnn)、卷积神经网络(convolutionalneuralnetworks,cnn)等等。
可选的,在离线阶段,需要训练好满足预设任务需求的分支网络,不同早退点对应的分支网络提供不同的神经网络层数与准确率,可供所述优化器在在线推理阶段中动态选择。
可选的,深度学习模型经过训练之后,生成具有多个早退点的多分支深度学习模型,可将训练好的多分支深度学习模型部署在终端设备(或边缘设备)与云服务器中以实现在部署决策的过程中进行协同推理;并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数。
(2)关于时延
常见的神经网络中的层类型相对趋同,一般有卷积层、池化层、激活函数层等,这些网络层的相关参数如卷积核大小、步长等同设备参数一起决定了网络的推理时延。
可选的,所述时延为端对端的总时延,所述总时延包括边缘计算时延、云计算时延、传输时延中的一种或多种组合。
本发明可采用多次测量取平均的方式获取云服务器与终端设备运行所述深度学习模型中不同神经网络层的时延和能耗作为设备参数。由于本发明实际的实验过程中,受限于系统资源调度等因素。如果采用回归模型对推理时延进行预测(比如针对不同类型的深度学习模型网络层生成基于回归模型的时延估算模型),由于同一设备对网络的推理时延往往处于在波动中,同时不同设备针对同一网络的推理时延也有所不同,因此利用本发明测量的数据来训练回归模型,通常很难得到准确的预测。
现有技术只考虑卷积层和全连接层等参数量较大、浮点运算次数多的层,但本发明发现某些池化层同样有着不可忽视的耗时;同时,虽然激活函数层、dropout层等时延不高,但累加起来同样不能忽略。因此本发明为了最大化优化整体时延,获取了每层的推理时延,便于准确地根据这些数据进行模型分割。
(3)关于能耗
可选的,所述能耗包括分割后终端设备或边缘设备的总能耗,所述总能耗包括计算能耗、传输能耗的一种或多种组合。能耗可由实际测量,或基于以下能耗模型获取。
所述计算能耗的公式为:
eloc=k0(filoc)2oixi;
其中,i表示用户,filoc表示用户i的本地cpu频率,k0f2表示一个cpu周期的计算能耗,k0表示与硬件有关的常量,oi表示用户i待处理数据大小,xi表示任务的计算强度;
所述传输能耗的公式为:
其中,i是用户i的集合,k是云服务器k的集合,hk2表示用户i传输数据到云服务器k的信道增益,zi表示伴随用户i的均值为0,σ2表示高斯白噪声,wi,k表示用户i传输数据到服务器k时分配的带宽资源,pi,k表示当用户i传输数据到云服务器k上执行时分配的传输功率,b表示用户与云服务器之间的传输带宽,oi表示用户i待处理数据大小,xi,k为0/1数值表示用户i是否将数据传输至云服务器k。
步骤102,在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案。
可选的,所述早退点用于实现时延的优化,通过利用多分支网络来选择合适的早退点输出结果,即在保证一定准确性的条件下选择合适的早退点输出结果,既保证了准确性又大幅提升了推理速度。
可选的,所述分割点用于解决边缘设备算力受限无法运行完整神经网络的问题,将现有技术的链式dnn动态地分割成两部分,分别在边缘设备与云服务器上运行(比如将密集型的计算放在云服务器上运行,其余计算卸载到边缘设备或终端设备上运行),将中间数据传输至云服务器进行后续处理并返回结果。
可选的,在数据传输过程中,为了避免直接上传上述所述中间数据带来很高的通信开销,尤其是在网络状况不佳时。通过使用对数据进行自适应量化编码的方式来打破通信时延的瓶颈,进一步优化了时延和能耗。
现有技术是通过遍历所有早退点,并且在确定早退点的情况下遍历所有分割点,探索所有满足时延、能耗要求的决策方案。但在早退点与分割点较多的复杂网络结构下,这种方法的效率不高。因此,本发明引入了drl作为优化器,通过所述优化器实现端对端的输出决策方案。
深度学习具有较强的感知能力,但是缺乏一定的决策能力;而强化学习具有决策能力,缺乏感知能力。因此,将两者结合起来,为复杂系统的感知决策问题提供了解决思路。深度强化学习(drl)将深度学习的感知能力和强化学习的决策能力相结合,可直接根据输入的图像进行控制,是一种人工智能方法。
图2是本发明提供的优化器(drl)内部机制的示意图,图3是本发明提供的优化器(drl)的处理流程示意图,如图2,图3所示。优化器(drl)包括动作(actor,为要学习的对象,可控制)、环境变量(environment,给定的,并且无法控制)、值函数(rewardfunction,无法控制)以及策略网络(π)。策略网络为一个包含参数的神经网络,所述神经网络将观察到的变量作为优化器的输入,基于概率输出对应的动作actor。图2中的策略网络和值函数中的evalnetwork与targetnetwork为图3中的三个全连接层(linear)结构,作态作为输入维度,动作作为输出维度。
drl的训练在离线阶段进行,将预先测定好的网络推理时延、准确率、能耗等参数作为环境变量,输入状态的维度分别代表:时延、能耗、准确率以及带宽(如图4所示)。
可选的,在离线阶段,对所述优化器进行训练,根据带宽将奖励函数分为两部分,并分别给与带宽不同的超参数,所述奖励函数如下:
r=α*accuracy+β/latency;
其中,r表示奖励值,α、β表示超参数,accuracy表示系统的准确率,latency表示系统的端到端时延;
输入状态后,所述优化器根据优化函数计算动作空间内所有动作的概率,并选择可能性最高的动作作为输出,输出的动作由早退点、分割点以及量化编码比特数三个维度组成,所述优化函数如下:
maxrwherer=α*accuracy+β/latency;
其中,energy表示系统的能耗,e表示系统的能耗阈值,t表示系统的端对端时延阈值,acc表示系统的准确率阈值。
步骤103,在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
具的,在在线推理阶段,边缘设备与云服务器通过tcp/ip协议建立连接并联合运行所述深度学习模型,所述优化器根据边缘设备利用wondershaper(一种脚本)实时检测传输带宽,对所述推理方案进行动态优化:
利用带宽计算出时延、能耗等参数作为动作输入优化器,优化器输出对早退点、分割点、量化编码比特数的联合优化决策,一旦检测到带宽波动,优化器便重新作出对应优化决策,并按照优化后的推理方案指导边缘设备与云服务器协同实施,比如深度学习模型被用于执行图像分类、目标检测等任务时,将原始图像输入深度学习模型后在边缘设备上运行网络的前部分,并将中间数据压缩后发送至云服务器,云服务器运行完模型剩余部分后输出分类结果。
需要说明的是,本发明所述基于深度强化学习的边云协同优化方法的模型可部署于边缘设备(或称边缘服务器)和云服务器上,也可部署在终端设备和云服务器上,或者也可同时部署在边缘设备、终端设备、云服务器上,本发明不限于具体的部署方式。
综上所述,本发明通过强化学习动态地对上述所述的早退点、分割点与量化编码等进行决策,输出一种在带宽动态变化环境下对于时延、准确率、能耗的综合优化方案。
图5是本发明提供的基于深度强化学习的边云协同优化方法的的一实施例的示意图,如图所示。图中示出了优化逻辑分为离线阶段、优化决策阶段以及在线推理阶段。
(1)离散阶段
在离散阶段,包括两个输入部分:第一部分是获取终端设备和云服务器的能耗和时延作为设备参数的输入部分;第二部分是将训练好的预训练多分支网络的输入部分。
需要说明的是,图中示出的是终端设备,但根据实际部署环境,也可以是边缘设备,或者是终端设备和边缘设备的组合,本发明不限于此。
深度学习模型包括有卷积层(conv)、全连接层(fc)等,图中示出了一个早退点,但是本发明所述深度学习模型的层数及早退点不限于图2所示。
(2)优化决策阶段
在优化决策阶段,采用深度强化学习(drl)作为优化器。drl是根据离散阶段预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案。
可选的,drl还可以根据系统的应用要求进行优化后输出所述深度学习模型关于早退点、分割点以及量化编码的推理方案。
(3)在线推理阶段
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
图中虚线(分割点,即图中的模型分割)示出了将深度学习模型的计算分割成两部分,上面部分的神经网络(比如由一个conv层和一个fc层组成)放在云服务器中运行,下面部分的神经网络(比如由三个conv层和一个fc层组成)放在边缘设备或终端设备上运行,并且下面部分的神经网络示出了早退点fc。
以下将针对上述关于多分支网络的早退点、分割点及量化编码比特数的技术进行描述。基于优化器输出的所述早退点、分割点、量化编码比特数的推理方案,在传输数据的时延、能耗和准确率能够实现有效优化。
图6是本发明提供的带有多个早退点的多分支网络的示意图,如图所示。本发明所述深度学习模型采用多层的神经网络,经过训练后输出图6所示的多分支深度学习模型,图中的神经网络包括如conv(卷积层)、relu(激励层)、pool(池化层)、linear(全连接层)等多层神经网络。
可选的,本发明所述多分支网络是采用branchynet(一种早退机制)分支网络结构,在branchynet的结构下,可以设计并训练生成带有多个早退点的分支网络。branchynet利用各个早退点的损失函数之和联合训练,得到解决综合优化问题的模型。当深度学习模型训练好后,branchynet利用早退点机制实现提前退出,以降低推断过程的消耗。在每一个退出点,branchynet计算预测的置信度。如果这个置信度低于阈值,则输出预测结果,提前终止;如果小于阈值,运行到下一个退出点;如果到达最后一个退出点,即基础网络的最后一层,直接输出预测结果。
图中示出一共有三个分支,不同分支负责提供不同的网络层数与准确数,供优化器在决策过程中动态选择,随着早退点的后延,网络层增加,同时三个出口有着递增的准确率。本发明所述分支可根据实际需求设置,不限于三个分支。
示例中的三个分支,从左边到右边,早退点1的准确率为78.7%,早退点2的准确率为81.7%,早退点3的准确率为83.6%。
由此可知,通过在适当(比如在一定准确率的条件下)的深度神经网络的中间层提前退出,可减小计算时延。
图7是本发明提供的分割点的示意图,如图所示。图中左边示出的边缘设备或终端设备输入深度学习模型的原始数据,中间是网络连接,右边是云服务器输出深度学习模型的结果,中间虚线部分将深度学习模型分为两部分,一部分放在边缘设备或终端设备上执行,一部分放在云服务器上执行。
对深度学习模型的分割,可实现自适应地划分终端设备/边缘设备与云服务器之间的深度神经网络模型的计算量,以便在较小的传输时延代价下将较多的计算卸载到边缘设备或终端设备,从而降低整体端到端的时延。
通过上述的模型分割可以根据带宽分割深度学习模型,使网络计算被划分到终端设备或边缘设备,以减小网络延迟。但是分割后,运行在终端设备的部分网络依然存在延迟。因此,还可以通过提前退出机制(即通过上述所述早退点),加速深度学习模型的推断,在准确率和延迟之间折中。比如,深度学习模型的任务需求一般存在预设延迟,系统根据模型的分割点和早退点,在满足预设延迟的前提下取得最高的准确率。
可选的,根据所述分割点,在边缘设备和云服务器之间分割所述深度学习模型的计算,将密集型的计算放在云服务器上执行,其余计算卸载到边缘设备或终端设备上执行;
用户i将任务卸载到边缘设备或终端设备上的上行传输时间ti,tk的式子表示为:
其中,i为用户i的集合,k为云服务器k的集合,i表示用户,xi,k为0/1数值表示用户i是否将数据传输至云服务器k,oi表示用户i待处理数据大小,ri,k表示用户i将数据传输至云服务器k的传输速率。
通过采用所述上行传输时间的式子计算用户传输数据所需时延,由于传输过程时间较短,可认为信道状态保持稳定。
图8是本发明提供的量化编码的流程示意图,如图所示。在优化决策阶段输出量化编码具体要量化成多少位的推理方案,但执行量化编码的步骤是在在线推理阶段进行,所述步骤103中,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,包括:
步骤801,基于所述准确率,根据所述深度学习模型输出量化编码的推理方案对待传输的中间数据进行量化,所述量化的公式如下:
其中,xi为待量化数据,为量化后数据,max/min代表xi的最大/最小值,round函数表示取整操作。
为了减轻网络条件不良情况下,传输过大的中间数据带来高额通信开销的影响,而且深度学习模型的中间层数据存在很大的压缩空间,这表明在保证一定的准确率的条件下,对层内数据进行压缩具有可行性,因此本发明对中间数据进行了量化编码。
步骤802,通过利用所述量化的公式,将小浮点数映射到[0,2c-1]的整数空间,并压缩每个整数所占的位数以减低数据的体积。
通过观察神经网络的中间特征图得知,大多数的值为浮点数,每个浮点数占32比特,直接传输这些数据会带来很大通信开销,同时在某些特定环境下通信带来的误差会严重影响最终的准确率,因此利用上述的公式,将小浮点数映射到[0,2c-1]的整数空间,并压缩每个整数所占的位数,这样大大的降低了数据的体积。
数据量化是模型压缩的主流技术之一,采用比32位浮点格式更紧凑的格式来表示,可减少了对内存的占用,减轻计算压力提高计算效率,同时还可以增强对隐私的保护。
步骤803,对量化后的数据,通过预设编码的方式进一步压缩所述数据所占的比特数。
由于量化后的数据十分稀疏,其中具有大量的零值,并且大部分数据都趋近于零,因此可以通过编码的方式进一步压缩数据所占的比特数,本发明采用了常用的哈夫曼编码(huffmancoding,是一种编码方式),但本发明所述预设编码不限于哈夫曼编码。据有关实验结果表明,经过数据压缩方式可以将数据压缩至1/10甚至更多。
由于在进行量化编码时,会对总体的准确率造成一定损失,在模型分割时需要同时考虑压缩所带来的准确率影响。
下面对本发明提供的基于深度强化学习的边云协同优化装置进行描述,下文描述的基于深度强化学习的边云协同优化装置与上文描述的基于深度强化学习的边云协同优化方法可相互对应参照。
图9是本发明提供的基于深度强化学习的边云协同优化装置的结构示意图,如图所示。一种基于深度强化学习的边云协同优化装置900,应用于由终端设备、云服务器以及边缘设备组成的物联网,所述优化装置在优化逻辑上分为离线阶段、优化决策阶段以及在线推理阶段,包括离线训练模块910、优化决策模块920以及在线推理模块930。
离线训练模块910,用于在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
优化决策模块920,用于在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在线推理模块930,用于在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
可选的,本发明还提供了一种边缘设备,在所述边缘设备执行基于深度强化学习的边云协同优化方法的步骤,所述步骤包括:
在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
以下通过一实验对本发明的效果进行验证,如下:
在实验中采用深度神经网络cnn,推理任务设定为图像分类。具体来说,采用了基于branchynet的多分支网络,并在cifar-10数据集(cifar-10数据集共有60000张彩色图像,每张图像尺寸为3*32*32,分为10个类,每类6000张图)上进行验证。
分支网络设定为三个分支,分别有9/12/20层。选用树莓派4作为终端设备或边缘设备,一台笔记本电脑作为云服务器。树莓派4具有频率最高1.5ghz的4核64位cpu,8g运行内存;而笔记本电脑搭载了6核12线程的i7-10710u以及16g内存。两个设备间采用wifi连接,网络带宽通过wondershaper(一种脚本,可用于限制网络带宽)进行控制。
优化器部分,分别采用了两种不同的强化学习模型dqn(deepq-learning)与sac(softactor-critic),模型分为actor(选择动作)、critic(评价状态价值)两部分。参数方面,设置gamma=0.9,learning_rate=0.01,episode=3000。系统中的多分支网络、drl等均采用pytorch实现。将drl运行在终端设备或边缘设备上,在实验中优化时间通常少于5ms,因此可以忽略不计。
图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(communicationsinterface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行基于深度强化学习的边云协同优化方法的步骤,所述步骤包括:
在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的以执行基于深度强化学习的边云协同优化方法的步骤,所述步骤包括:
在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的以执行基于深度强化学习的边云协同优化方法的步骤,所述步骤包括:
在离线阶段,通过离线训练深度学习模型生成带有多个早退点的多分支网络,并获取云服务器与终端设备运行所述深度学习模型中的不同神经网络层的时延和能耗作为设备参数;
在优化决策阶段,将预先获取的时延、能耗、准确率以及带宽的设备参数一起输入至优化器进行优化,得到所述深度学习模型关于早退点、分割点以及量化编码的推理方案;
在在线推理阶段,边缘设备与云服务器建立连接并运行所述深度学习模型,所述优化器根据边缘设备实时检测到的带宽对所述推理方案进行动态优化,并按照优化后的推理方案指导边缘设备与云服务器协同实施。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。