分布式图像识别的智能模型训练方法及系统
文献发布时间:2023-06-19 10:29:05
技术领域
本发明涉及人工智能、图像识别的技术领域,尤其是指一种分布式图像识别的智能模型训练方法及系统。
背景技术
深度学习在边缘计算中得到了深入研究,而高效的图像处理技术都是基于深度学习算法的。如何将深度学习的卷积神经网络(CNNs)在边缘设备上部署,使用边缘的嵌入式设备分布式训练图像分类模型,具有广泛的应用前景。
在边缘嵌入式设备上训练深度学习模型会面临如下三个方面的挑战:首先,通信时延会影响主节点向边缘节点传输数据所需的时间;第二,通信带宽限制了单位时间内从主节点传输到边缘节点的数据量;第三,边缘节点的计算能力会影响整个计算系统的计算能力;第四,在单个边缘嵌入设备上训练CNN模型是难以实现的。因此,边缘设备的计算能力会弱于云计算,必须使用分布式计算方法来组合多个边缘嵌入式设备来提高其计算能力。
数据并行和模型并行是分布式深度学习提升运算能力的两种常用方法。所谓数据并行就是将未经训练的模型复制到多个计算设备上,使它们拥有相同的模型,然后将数据集划分给它们进行并行训练。数据并行可以加快CNN模型的训练速度,但要求从属计算设备能够独立训练整个模型。然而,一般的边缘嵌入式设备无法满足这一要求。所谓模型并行是将大型模型分割成不同的部分,并将其部署到多个计算设备上,使无法在一台计算机上进行训练的大型模型,能够在分布式环境中进行训练。但是边缘设备容易出现掉队问题,会造成模型并行的训练过程失败。因此,上述两种分布式深度学习方法并不适合边缘嵌入式设备,必须设计一种新的分布式计算方法来在边缘嵌入式设备上训练CNN模型。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中所涉及的方法并不适合在边缘嵌入式设备上运行的问题,从而提供一种训练时间少、健壮性和安全性高、能够在边缘嵌入式设备上运行的分布式图像识别的智能模型训练方法及系统。
为解决上述技术问题,本发明的一种分布式图像识别的智能模型训练方法,包括如下步骤:在边缘服务器上创建任务池和结果池;每个边缘工作节点从所述任务池中随机获取一个任务;计算所述任务,所述边缘工作节点将结果放入所述结果池中;所述边缘服务器从所述结果池中取出所有结果,并将所有结果集成到最终结果中。
在本发明的一个实施例中,计算所述任务的方法为:将图像数据进行处理转换为第一矩阵,将权值参数转换为第二矩阵,将所述第一矩阵均匀地分割成许多第一矩阵块,然后使用编码矩阵对所述第一矩阵块进行编码;制作计算任务;将所述计算任务分配给所述边缘工作节点;收集从所述边缘工作者节点返回的结果,并将其合并到所述第一矩阵与第二矩阵相乘的结果中。
在本发明的一个实施例中,使用编码矩阵对所述第一矩阵块进行编码时,对第一矩阵块进行冗余编码。
在本发明的一个实施例中,对第一矩阵块进行冗余编码的方法为:将所述第一矩阵划分为n个较小的第一矩阵块,然后对所述第一矩阵块进行冗余编码,利用所述编码矩阵对n个第一矩阵块进行编码;最后,得到m个编码的第二矩阵块,其中m>n。
在本发明的一个实施例中,所述第二矩阵块分配至所述边缘工作者节点进行计算。
在本发明的一个实施例中,所述第二矩阵块计算完成后,将计算结果发送至所述边缘服务器,并对第二矩阵块进行解码。
在本发明的一个实施例中,对第二矩阵块进行解码完成后,将所有结果集成到最终结果中。
在本发明的一个实施例中,对第二矩阵块进行解码的方法为:将所述第二矩阵块乘以译码矩阵,且所述译码矩阵是n个任务结果的编码向量组成的矩阵的逆矩阵。
在本发明的一个实施例中,所述编码矩阵存储在所述边缘服务器上。
本发明还提供一种分布式图像识别的智能模型训练系统,包括:池创建模块,用于在边缘服务器上创建任务池和结果池;任务获取模块,用于每个边缘工作节点从所述任务池中随机获取一个任务;计算模块,用于计算所述任务,所述边缘工作节点将结果放入所述结果池中;集成模块,用于所述边缘服务器从所述结果池中取出所有结果,并将所有结果集成到最终结果中。
本发明的上述技术方案相比现有技术具有以下优点:
本发明在边缘服务器中创建了两个池:任务池和结果池,计算任务被分布到多个节点,减少了训练时间;而且边缘嵌入式设备不是被动地分配任务,而是主动地从任务池中获取任务。在这种机制下,边缘嵌入式设备的功能越强大,能够完成的计算任务就越多,可使本发明设计的训练系统高效运行,从而加速了计算结果的返回,减少了训练时间。
由于系统不需要为性能不同的边缘嵌入式设备设置不同大小的任务,因此系统易于实现,并且不需要确定哪个边缘嵌入式设备是离散节点。另外,边缘嵌入式设备主动地从任务池中获取任务,因此只需要在分布式计算开始时均匀地对原始计算任务进行分区,使任务池中的任务大小相同。
掉队的边缘嵌入式设备的不会影响系统的运行,系统的健壮性得到提升。与其他节点相比,虽然掉队的边缘嵌入式设备返回计算结果的时间更长,但是并不会必须放弃计算任务。在新一轮分布式计算中,功能强大的节点做大量的子任务,而落后的节点做很少的子任务。该边缘分布式计算系统的设计成功地利用了离散节点中存在的计算资源,增加了整个系统的计算资源。
由于采用编码的方式进行数据传输和任务分配,可以保证系统的安全性。本发明可以保护图像数据从边缘服务器传输到边缘嵌入式设备,以及边缘嵌入式设备执行计算任务时的安全性。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是本发明分布式图像识别的智能模型训练方法的构架图;
图2是本发明边缘服务器制作、分发和收集计算任务过程图;
图3是本发明将大矩阵分成n块,利用m×n范德蒙矩阵对矩阵块冗余编码过程图;
图4是本发明解码n个结果矩阵块的过程图;
图5a-图5c是本发明在使用MNIST数据集,对10个具有延迟服从均匀、指数和正态分布并具有不同范围、不同方差和不同期望的分布式进程进行模型训练的实验结果图;
图6是本发明分布式图像识别的智能模型训练系统的框架图;
图7是本发明CNN在边缘服务器上的向前和向后传播示意图;
图8是本发明卷积转换为矩阵乘法的示例图;
图9是本发明基于LT-code策略的矩阵编码算法流程图;
图10是本发明基于LT-code策略的矩阵解码过程图。
具体实施方式
实施例一
如图1和图2所示,本实施例提供一种分布式图像识别的智能模型训练方法,步骤S1:在边缘服务器上创建任务池和结果池;步骤S2:每个边缘工作节点从所述任务池中随机获取一个任务;步骤S3:计算所述任务,所述边缘工作节点将结果放入所述结果池中;步骤S4:所述边缘服务器从所述结果池中取出所有结果,并将所有结果集成到最终结果中。
本实施例所述分布式图像识别的智能模型训练方法,所述步骤S1中,在边缘服务器(Edge Server)上创建任务池(Task Pool)和结果池(Result Pool),由于具有两个池,有利于将一轮计算划分为不同的步骤;所述步骤S2中,每个边缘工作节点(Edge WorkerNoder)从所述任务池中随机获取一个任务,由于一个边缘工作节点就是一个边缘嵌入式设备,而边缘嵌入式设备不是被动地分配任务,而是主动地从任务池中获取任务,在这种机制下,边缘嵌入式设备的功能越强大,能够完成的计算任务就越多,从而使本发明设计的训练系统高效运行,加速了计算结果的返回,减少了训练时间;另外,只需要在分布式计算开始时均匀地对原始计算任务进行分区,使任务池中的任务大小相同,不需要为性能不同的边缘嵌入式设备设置不同大小的任务,因此易于实现;所述步骤S3中,计算所述任务,所述边缘工作节点将结果放入所述结果池中;所述步骤S4中,所述边缘服务器从所述结果池中取出所有结果,并将所有结果集成到最终结果中,本发明不但训练时间少、健壮性和安全性高,而且能够在边缘嵌入式设备上运行。
计算所述任务的方法为:将图像数据进行处理转换为第一矩阵,将权值参数转换为第二矩阵,将所述第一矩阵均匀地分割成许多第一矩阵块,然后使用编码矩阵对所述第一矩阵块进行编码;制作计算任务;将所述计算任务分配给所述边缘工作节点;收集从所述边缘工作者节点返回的结果,并将其合并到所述第一矩阵与第二矩阵相乘的结果中,由于采用编码的方式进行数据传输和任务分配,可以保证系统的安全性。另外,本发明可以保护图像数据从边缘服务器传输到边缘嵌入式设备,以及边缘嵌入式设备执行计算任务时的安全性。
具体地,所述边缘服务器对神经网络进行向量化后,得到了大量的矩阵乘法。在卷积层和全连通层的正向传播中,将图像数据转换为第一矩阵A,将权值参数转换为第二矩阵B,因此,保护第一矩阵A的安全相当于保护图像数据的安全。
使用编码矩阵对所述第一矩阵块进行编码时,对第一矩阵块进行冗余编码。
对第一矩阵块进行冗余编码的方法为:将所述第一矩阵划分为n个较小的第一矩阵块,然后对所述第一矩阵块进行冗余编码,利用所述编码矩阵对n个第一矩阵块进行编码;最后,得到m个编码的第二矩阵块,其中m>n。
具体地,如图2所示,第一矩阵A与第二矩阵B的乘法是按照设计进行分布式计算:将第一矩阵A均匀地分割成许多小矩阵块,然后使用编码矩阵对其进行编码。小矩阵块的大小是根据性能最差的边缘嵌入式设备可以进行的最大矩阵乘法的大小来确定;制作计算任务;将计算任务分配给边缘工作节点;收集从边缘工作节点返回的结果,并将它们合并到A×B的结果中。
所述冗余编码已经被证明在分布式计算中表现良好。为了解决掉队者问题,这里对原始矩阵即第一矩阵进行冗余编码。由于是对原始矩阵进行编码,既保证了数据的安全性,又使原始矩阵冗余。MDS编码策略的具体过程如图3所示,范德蒙矩阵可以在MDS编码策略下对原始矩阵冗余进行编码,但范德蒙矩阵中的编码向量会随着编码矩阵的增大而增多,这也意味着计算量会越来越大。为了减少计算量和降低编码复杂度,首先将原始矩阵统一划分为n个较小的块,然后基于这些矩阵块进行冗余编码。m×n(m>n)编码矩阵用于对n个小矩阵块进行编码。最后,得到m个编码的矩阵块。
本发明可以保护图像数据从边缘服务器传输到边缘嵌入式设备,以及边缘嵌入式设备执行计算任务时的安全性。从图2中可以看出,需要保护的第一矩阵A从图像数据中进行变换。如果将第一矩阵A以明文从边缘服务器直接传输到边缘嵌入式设备,则在传输和计算过程中,第一矩阵A的内容很容易在边缘嵌入式设备上泄露。因此,本发明使用编码矩阵对第一矩阵A的矩阵块进行编码,然后在传输和计算过程中对编码后的矩阵块内容进行保护。即使攻击者收集所有编码矩阵块,通过拦截数据包的传输或攻击边缘工作者节点,也不能得到矩阵,由于所述编码矩阵存储在所述边缘服务器上,不参与传输和边缘工作节点上的计算。因此,本发明对第一矩阵A进行了安全保护,即保护图像数据的安全。
所述第二矩阵块分配至所述边缘工作者节点进行计算。其中m个编码后的矩阵块将分配到边缘工作者节点进行计算。由于边缘服务器接收到来自边缘嵌入式设备的n个计算结果,便可以解码出原始的矩阵乘法结果。
所述第二矩阵块计算完成后,将计算结果发送至所述边缘服务器,并对第二矩阵块进行解码。
对第二矩阵块进行解码完成后,将所有结果集成到最终结果中。
对第二矩阵块进行解码的方法为:将所述第二矩阵块乘以译码矩阵,且所述译码矩阵是n个任务结果的编码向量组成的矩阵的逆矩阵。具体地,的m个编码后的矩阵块将分配到边缘工作者节点进行计算。由于边缘服务器接收到来自边缘嵌入式设备的n个计算结果,便可以解码出原始的矩阵乘法结果。从图4中可以看出,译码矩阵是n个任务结果的编码向量组成的矩阵的逆矩阵。解码矩阵左乘以返回的计算结果即可得到最终结果。
为了评估本发明设计的安全分布式图像分类模型训练系统的性能,设置了一个时延模型来模拟分布式计算过程中边缘嵌入式设备的延迟。使用Sleep()函数向进程添加时延T,时延T依次服从均匀、正态和指数三种分布;然后,使用MNIST数据集在三种时延分布并具有不同范围、不同方差和不同期望的分布式进程的边缘嵌入式设备上,训练一个VGGNet模型,当模型训练用完一组50张图像时,记录下系统所花费的时间,结果如图5a、图5b以及图5c所示。
在图5a中,10个分布进程的时延设置服从正态分布。无论它们是未编码方案还是编码方案,都可以从图5a中看到,随着延迟范围的增加,系统所花费的时间也在增加。在编码方案可以减少系统的时间成本,MDS策略和LT-code策略具有相当的性能。在图5b中,编码方案的性能也优于非编码方案,其中时延服从正态分布。在图5c中,10个分布进程时延设置成服从指数分布。随着期望的增加,编码方案比未编码方案运行更加稳定。与未编码策略和2-复制策略相比,MDS策略和LT-code策略可以减少系统的时间开销。
编码方案还可以提高了系统的稳定性。随着延迟范围的增加,在图5a中,编码方案中花费的时间比在非编码方案中花费的时间增加得慢。同样,从图5c中也可以看出,随着延迟期望的增加,编码方案的时间花费曲线波动更小,比未编码方案的时间花费曲线更平滑。可以看出,在具有不同延迟的异构边缘工作者节点上训练图像分类模型时,编码方案可以提高系统的稳定性。
实施例二
本实施例提供一种分布式图像识别的智能模型训练系统,其解决问题的原理与所述分布式图像识别的智能模型训练方法类似,重复之处不再赘述。
本实施例分布式图像识别的智能模型训练系统,包括:
池创建模块,用于在边缘服务器上创建任务池和结果池;
任务获取模块,用于每个边缘工作节点从所述任务池中随机获取一个任务;
计算模块,用于计算所述任务,所述边缘工作节点将结果放入所述结果池中;
集成模块,用于所述边缘服务器从所述结果池中取出所有结果,并将所有结果集成到最终结果中。
在本实施例中,利用分布式计算的模式来做矩阵乘法,所述边缘服务器除了维护CNNs的向前和向后传播外,还负责向边缘工作者节点分配计算任务并收集计算结果。计算任务的分配和回收方案在安全的分布式图像分类模型训练系统中起着重要的作用。由于各边缘嵌入式设备的工作性能不同,边缘服务器很难主动联系到所有边缘嵌入式设备。如何将计算任务分配给边缘嵌入式设备决定了整个系统的性能。
如图6所示,所述分布式图像识别的智能模型训练系统包括一个边缘服务器和多个边缘嵌入式设备。
左图是系统的物理网络拓扑,每个边缘嵌入式设备独立地与所述边缘服务器通信,所述边缘嵌入式设备从所述边缘服务器获取任务,然后将任务结果返回到这个网络拓扑中的边缘服务器。
右图是边缘服务器的工作过程。所述边缘服务器上维护着一个CNN模型,负责更新卷积层和全连通层的参数。所述边缘服务器还执行基于矩阵乘法来制作编码计算任务并整合返回的任务结果的工作。本发明引入的将卷积变换为矩阵乘法的方法,帮助边缘服务器从神经网络中提取计算任务;然后,计算任务被分配到边缘嵌入式设备,边缘服务器再将边缘嵌入式设备计算的结果收集起来;最后进行一轮编码分布式计算。其中图像数据(ImageDataset)传输至卷积层(Convolution Layer)、其它层(Other Layers)、全连接层(FullyConnected Layer),数据经过卷积处理后,利用矩阵乘法(Matrix Multiplication)以及编码分布计算(Coded Distributed Computing)后输出结果(Results),再将所述结果反馈至卷积层。
虽然卷积神经网络有多个不同的层,但其计算负荷主要集中在卷积层和全连接层,CNN的分布式训练可以转化为卷积层和全连接层计算负荷的分布式执行。向量化可以提高CNN模型的训练速度的主要方法,卷积神经网络的向量化就是要完成卷积层和全连接层的向量化。
图7给出了CNN在边缘服务器上进行的正向和反向传播。在正向传播中,输入图像经过卷积层和全连接层处理,得到预测值。图像预测值与标号值之间的偏差成为正向传播的梯度。在反向传播中,梯度被传回来更新CNN中的参数。卷积层中的正向和反向传播可以通过卷积变换为矩阵乘法的方法转化为全连接层中的正向和反向传播。如果不进行卷积变换,就很难实现分布式的CNNs训练系统。将卷积变换为矩阵乘法的方法,既可以加快图像卷积运算的速度,也可以减少图像卷积运算的难度。
图8给出了一个示例,该示例使用了一种的矩阵展开方法来实现将图像卷积转化为矩阵乘法。可以看到,卷积核窗口扫描步长为1的图像矩阵后,由3×3图像矩阵得到4个2×2矩阵;然后分别展开到单行,卷积核展开到单列。最后,四行组成一个大矩阵,与卷积核相乘,再将矩阵乘法的结果转换为卷积运算的结果。
下面说明CNNs中正向传播和反向传播的向量化,即全连通层中正向传播和反向传播的向量化。CNN的正向传播是为了计算训练样本的预测值。正向传播的向量化过程如下:
式(1)中:W
CNN的反向传播就是将训练样本的预测值与真实值的差值传回到网络神经网络的卷积层和全连接层,并更新其中的参数。反向传播的向量化过程如下:
db
W
述式中:d[]为[]的梯度,[]’为[]的导函数,[]
另外,本发明中,分布式矩阵相乘采用MDS编码和LT编码两种策略。
在(m,n)MDS编码策略中,使用范德蒙矩阵来编码来自CNNs的矩阵。m×n范德蒙矩阵的任何n个行向量都可以构成一个n×n个可逆矩阵。矩阵编码和返回结果解码的过程如下:
E
R
式(6)中的矩阵M
在LT编码策略中,鲁比变换(LT)码作为一种编码矩阵块的数量不是固定的无速率码,它随着译码端对译码整体结果的需要而增加。与MDS代码相比,LT编码具有简单的基于
在编码阶段,选择度d来表示参与编码的原始矩阵块的数量。从n个原始矩阵块中随机选取d个原始矩阵块,并取d个初始矩阵块的度数{1,2,…,n}。度d符合鲁棒的孤子度分布ρ(d)。
d个原始矩阵的下标集Sd且Sd∈{1,2,…,n}。
编码过程如图9给出的算法所示。在该算法的第一步,根据鲁棒的孤子度分布ρ(d)获取一个度d。对于n个原始矩阵块,度d的值的集合为{1,2,…,n};然后,从原来的矩阵块中选择d个矩阵块并得到它们的和。d个矩阵块的和是一个编码的矩阵块。通过重复上述操作,理论上可以得到一个无止尽的编码矩阵块流。本算法中,通过设置了一个冗余参数r来确定实际产生的编码矩阵块的数量,最终得到r*n个编码的矩阵块。具体地,输入:原始矩阵块M;原始矩阵块n
在解码阶段,解码从度数为1的块和它们的相邻块开始,如图10所示,随着解码过程的进行,度为1的分块越来越多。度1的数据块实际上是已解码的数据块。当所有原始块都被解码时,译码阶段就完成了。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
- 分布式图像识别的智能模型训练方法及系统
- 一种基于区块链的人工智能模型保护、松耦合分布式训练方法