一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向传输友好的云-端协作训练神经网络模型方法

2022-06-08 14:37:20 来源:中国专利 TAG:


1.本发明涉及深度神经网络技术领域,尤其涉及一种面向传输友好的云-端协作训练神经网络模型方法。


背景技术:

2.近年来,随着人工智能技术的快速发展,深度神经网络已成为图像处理、模式识别等任务的重要解决方案,且随着智能设备硬件性能、用户服务需求的提升,越来越多地应用于各类物联网应用中。例如,用户如今能够使用手机摄像头收集图像信息,并通过目标识别、图像分割等技术手段对这些信息进行分析,实现即时的人脸或物体识别。但深度学习算法的高精度以大量计算和内存资源为代价,属于计算密集型任务,同时在物联网应用中还需考虑时延对用户体验的影响,如人脸识别应用通常需求较快的响应速度。而对于手机等小型移动终端,一方面可能缺少足够的计算资源和内存资源,无法独立完成深度学习训练任务;另一方面可能因为计算和内存资源有限而无法满足用户的时延需求,难以快速完成深度模型训练、满足服务需要。因此,如何在资源受限的终端设备上部署基于神经网络模型的应用仍存在挑战。
3.现有技术中的将深度神经网络与终端设备结合的方法包括:云端训练深度神经网络模型、终端将待分析数据上传至云端执行推理任务;云端训练深度神经网络模型、将模型下发至终端对待分析数据执行推理任务;直接在终端设备上训练深度神经网络模型并对待分析数据执行推理任务。考虑到终端设备通常计算、内存与网络资源受限,无法将大量数据上传至云端,也无法在本地进行深度神经网络模型训练,故在云端进行模型训练、下发模型在终端进行推理是相对主流的实现方案。
4.上述现有技术中的将深度神经网络与终端设备结合的方法包括:现有方法是在云服务器上训练神经网络模型,然后将训练后的神经网络模型发送至终端设备,并在终端设备上执行图像识别等任务。然而,高性能神经网络模型一般包含大量的模型参数,比如,vgg19中有144,000,000个模型参数,且一台云服务器通常对应数百万个终端设备。在终端设备上模型部署和频繁更新时,云服务器需要发送大量的模型参数至终端设备,使网络负载过重,增加了终端设备上神经网络模型部署和后续更新的难度。


技术实现要素:

5.本发明的实施例提供了一种面向传输友好的云-端协作训练神经网络模型方法,以减少云服务器需要发送至终端设备的模型参数量,减轻网络带宽压力。
6.为了实现上述目的,本发明采取了如下技术方案。
7.一种面向传输友好的云-端协作训练神经网络模型方法,包括:
8.云服务器基于种子卷积核利用卷积核生成函数生成卷积神经网络模型;
9.通过数据集对所述卷积神经网络模型进行训练,对卷积神经网络模型的种子卷积核和生成卷积核进行参数更新,得到训练好的卷积神经网络模型;
10.所述云服务器将训练好的卷积神经网络模型的种子卷积核和随机数种子发送至终端设备,终端设备根据种子卷积核和随机数种子利用卷积核生成函数生成新的卷积核,并组合成卷积神经网络模型。
11.优选地,所述的云服务器基于种子卷积核利用卷积核生成函数生成卷积神经网络模型,包括:
12.云服务器选择一个随机数种子云服务器选择一个随机数种子为正实数域,根据随机数种子n与任意确定性的随机数生成方法生成随机数集合r={α1,α2,...,αn},且
13.对于第i个卷积层,假定输入为在开始第一轮模型训练前随机初始化一个种子卷积核其中为实数域,h
×
w为输入数据的空间尺寸,k
×
l为卷积核的空间尺寸,d为输入数据的通道数;
14.将非线性转化方法v=f(wi,r)作为卷积核生成函数,基于所述种子卷积核wi与所述随机数集合r通过非线性转化方法v=f(wi,r)生成多个新的生成卷积核{v1,v2,...,v
p
},其中,p≤n,对wi中的每个元素,所述非线性转化方法如下所示:
[0015][0016]
其中,为wi的第j个元素,αi∈r,则使得该卷积层输出为:
[0017][0018]
其中,xm是第m个通道的输入数据,是第m个通道的第i个卷积核。
[0019]
优选地,所述的通过数据集对所述卷积神经网络模型进行训练,对卷积神经网络模型的种子卷积核和生成卷积核进行参数更新,得到训练好的卷积神经网络模型,包括:
[0020]
将数据集x与对应的标签向量数据y输入到所述卷积神经网络模型进行训练;
[0021]
每轮训练通过反向传播方式仅对每层的唯一种子卷积核{w1,w2,...,wi,...,wq}进行参数更新,将非线性转化方法v=f(wi,r)作为卷积核生成函数;
[0022]
并在下一轮训练前通过非线性转化方法v=f(wi,r)再次生成多个新的生成卷积核{v1′
,v2′
,...,v
p

}参与训练,q为网络中的卷积层总数;
[0023]
待训练过程终止后,得到训练好的卷积神经网络模型,其中包括种子卷积核{w1,w2,...,wi,...,wq}和随机数种子n。
[0024]
优选地,所述的云服务器将训练好的卷积神经网络模型的种子卷积核和随机数种子发送至终端设备,终端设备根据种子卷积核和随机数种子利用卷积核生成函数生成新的卷积核,并组合成卷积神经网络模型,包括:
[0025]
云服务器向终端设备传输神经网络模型时,向终端设备发送所有训练完成的种子卷积核{w1,w2,...,wi,...,wq}与随机数种子n;
[0026]
终端设备基于接收到的随机数种子n通过使用与云端相同的随机数生成方法生成随机数集合,生成与云端训练神经网络模型时使用的相同的随机数集合r={α1,α2,...,αn};
[0027]
终端设备基于接收到的种子卷积核与所述随机数集合r={α1,α2,...,αn}通过使用与云端相同的卷积核生成函数生成多个新的生成卷积核{v1″
,v2″
,...,v
p

},将任意卷积
神经网络模型中卷积核参数与超参数替代为生成的卷积核参数,得到云端训练优化得到的卷积神经网络模型。
[0028]
由上述本发明的实施例提供的技术方案可以看出,本发明方法通过设计包含少量可学习参数的神经网络模型,减少云服务器需要发送至终端设备的模型参数量,来减轻网络带宽压力。
[0029]
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0030]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]
图1为本发明实施例提供的一种面向传输友好的云-端协作训练神经网络模型方法的处理流程图。
具体实施方式
[0032]
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0033]
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
[0034]
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0035]
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
[0036]
本发明实施例提供了一种面向传输友好的云-端协作训练神经网络模型方法,以减少云服务器发送至终端设备的模型参数量。在该方法中,提出了一种包含少量可学习参数的神经网络模型,该神经网络模型的每一层只有一个卷积核(称为种子卷积核)的参数是需要学习的,而其他的卷积核都是种子卷积核根据卷积核生成函数生成的,卷积核生成函数的参数是随机初始化且是不需要学习的,可以通过一个随机种子来保存和复现卷积核生成函数。这使得在云服务器训练基于种子卷积核的神经网络模型之后,云服务器只需要把
少量种子卷积核和种子发送至终端设备,就可以在终端设备上复现云服务器上训练好的神经网络模型。较之传输完整的神经网络模型,只传输少量种子卷积核和种子,可以有效减少云服务器发送至终端设备的模型参数量。
[0037]
本发明实施例提供的一种面向传输友好的云-端协作训练神经网络模型方法的具体处理流程如图1所示,包括如下的处理步骤:
[0038]
步骤s1:云服务器基于种子卷积核利用卷积核生成函数生成卷积神经网络模型。
[0039]
步骤1-1:根据随机数种子生成随机数:
[0040]
在云端,云服务器选择一个随机数种子在云端,云服务器选择一个随机数种子为正实数域。根据n与任意确定性的随机数生成方法生成随机数集合r={α1,α2,...,αn},且
[0041]
确定随机数种子n后,终端设备能够根据n与该随机数生成方法生成相同的随机数集合r。
[0042]
步骤1-2:对每个种子卷积核使用基于多项式变换(即,卷积核生成函数)的卷积核生成方法,生成多个新的生成卷积核:
[0043]
本发明实施例所述卷积神经网络模型与标准卷积神经网络模型不同点在于:标准卷积神经网络中卷积层的所有参数都是需要学习的,但本发明实施例所述神经网络模型中,每层仅有一个种子卷积核是需要学习的,其他卷积核是该种子卷积核通过卷积核生成函数生成的。
[0044]
具体而言,对于第i个卷积层,假定输入为在开始第一轮模型训练前随机初始化一个种子卷积核其中为实数域,h
×
w为输入数据的空间尺寸,k
×
l为卷积核的空间尺寸,d为输入数据的通道数。上述卷积核生成函数为非线性转化方法。
[0045]
基于该种子卷积核wi与步骤1-2中产生的随机数集合r,本发明通过非线性转化方法v=f(wi,r)生成多个新的生成卷积核{v1,v2,...,v
p
},其中,p≤n。具体而言,对wi中的每个元素,上述非线性转化方法如下所示:
[0046][0047]
其中,为wi的第j个元素,αi∈r。则使得该卷积层输出为:
[0048][0049]
其中,xm是第m个通道的输入数据,是第m个通道的第i个卷积核。
[0050]
步骤s2:通过数据集对所述卷积神经网络模型进行训练,对卷积神经网络模型的种子卷积核和生成卷积核进行参数更新,得到训练好的卷积神经网络模型。
[0051]
从云端数据库获取数据集x与对应的标签向量数据y,将数据集x与对应的标签向量数据y输入到卷积神经网络模型进行训练。
[0052]
本发明实施例所述卷积神经网络模型训练流程与通常的神经网络模型训练流程的不同点在于:对于通常的卷积神经网络,每个卷积层中的所有卷积核都会在一轮训练之后同时通过反向传播的方式进行参数更新,以达到更高的学习精度;本发明实施例所述神经网络模型训练过程中,每轮通过反向传播方式仅对每层的唯一种子卷积核{w1,w2,...,wi,...,wq}进行参数更新,并在下一轮训练前通过非线性转化方法v=f(wi,r)再次生成多
个新的生成卷积核{v1′
,v2′
,...,v
p

}参与训练。其中,q为网络中的卷积层总数。
[0053]
当神经网络模型训练时的损失值(loss)不再下降时终止训练,得到训练好的卷积神经网络模型,其中包括种子卷积核{w1,w2,...,wi,...,wq}和随机数种子n。
[0054]
步骤s3:云服务器将训练好的卷积神经网络模型的种子卷积核发送至终端设备,终端设备根据种子卷积核利用卷积核生成函数生成新的卷积核,并组合成卷积神经网络模型。
[0055]
本发明实施例所述云端到终端的模型下发流程与通常边缘计算中的模型下发方式的不同点在于:考虑到在云端训练完成后,由云服务器向终端传输神经网络模型时,完整的网络模型中包含大量的卷积核参数。因此,结合步骤1中所述神经网络训练方法,提出一种仅下发种子卷积核与随机数种子的模型下发方法,能够大幅减少模型下发数据量,降低带宽占用。
[0056]
云服务器向终端设备传输神经网络模型时,向终端设备发送所有训练完成的种子卷积核{w1,w2,...,wi,...,wq}与随机数种子n;
[0057]
终端设备基于接收到的随机数种子n通过使用与云端相同的随机数生成方法生成随机数集合,生成与云端训练神经网络模型时使用的相同的随机数集合r={α1,α2,...,αn};
[0058]
在终端设备中设置和云端相同的随机数生成方法和卷积核生成函数,终端设备基于接收到的种子卷积核与所述随机数集合r={α1,α2,...,αn}通过使用与云端相同的卷积核生成函数生成多个新的生成卷积核{v1″
,v2″
,...,v
p

},将任意卷积神经网络模型中卷积核参数与超参数替代为生成的卷积核参数,得到云端训练优化得到的卷积神经网络模型。
[0059]
卷积核生成函数只是一个函数,可以理解为一种规则。在云服务器训练的神经网络模型是根据种子卷积核和卷积核生成函数获得的,即根据种子卷积核和卷积核生成函数生成多个新的卷积核组合成神经网络模型。卷积核生成函数的参数是随机生成的,为此可以用一个随机数(成为种子)来保存和复现。
[0060]
因此,当云服务器训练基于种子卷积核的神经网络模型之后,把种子卷积核和种子发送至终端设备,终端设备可以根据种子卷积核、种子、卷积核生成函数(规则)复现云服务器上训练后的神经网络模型。
[0061]
综上所述,本发明实施例方法提出无需云服务器发送所有模型参数至终端设备,而只需要发送少量卷积核参数,就可以使终端设备根据云服务器发送的少量卷积核参数生成在云服务器上训练好的神经网络模型。较之发送完整的神经网络模型,仅发送少量卷积核参数极大的减少了云服务器至终端设备的网络传输参数量,节约了大量网络带宽资源,缓解了网络带宽压力,使终端设备上神经网络模型的部署更便利。
[0062]
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0063]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些
部分所述的方法。
[0064]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0065]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献