本发明属于神经网络模型技术领域,更具体地,涉及一种分布式的神经网络部署方法、电子设备与存储介质。
背景技术:
由于神经网络的发展,基于深度学习的移动端app越来越普及。深度学习部署在许多移动应用程序中,以执行各种分类任务,如人脸识别、图片分类、恶意软件检测等。基于深度学习的移动端app大致分为两种模式,一种模式是神经网络模型部署在服务器上,另一种模式是将网络模型部署在移动设备上,如图1。前者可以尽可能保护模型的隐私,但是这种模式对服务器的计算能力要求较高,需要服务器能够高并发处理数据,同时在移动端与服务器端的通信过程中,容易泄露上传的待分类图片、语音等隐私信息。因此将模型部署在移动设备上这种模式更加普遍,其便捷、轻量,减轻了服务器的并行计算压力,减少了网络流量的负载,但也增加了设备的计算要求,同时带来了各种模型知识产权问题和安全问题,例如大部分在设备上的模型并没有加密,他人可以很轻易的获取模型参数,即使模型进行了加密,攻击者也可以使用各种技术手段对其进行破解,同时在模型进行更新时,将模型部署在移动设备上这种模式将造成大量的网络流量通信,每个用户将要使用大量的流量下载新的模型参数。
为了同时获得云端和设备端的优势,显而易见的一个想法是将神经网络模型分割为两部分,分别放在云端和设备端。虽然最近有一些关于如何分割神经网络的研究,但他们关注的是用户隐私保护,而不是模型本身的安全。例如一个攻击者可以通过对抗样本技术去降低神经网络的效果,误导分类器使其错误分类;或者攻击者可能对云端模型进行模型窃取,攻击者在窃取模型后会带来以下问题:1)将模型另作他用,模型的训练需要大量的数据、资源等等,因此这属于一种知识产权的侵占;2)通过获取的模型参数,攻击者很容易攻击应用本身或者他人手机上的应用。
技术实现要素:
针对相关技术的缺陷,本发明的目的在于提供一种分布式的神经网络部署方法、电子设备与存储介质,旨在保护模型参数,有效防御对抗样本攻击与模型窃取攻击,尽可能减小服务器的计算压力与通讯压力。
为实现上述目的,本发明的一个方面提供了一种分布式的神经网络部署方法,包括以下步骤:
用户端将输入嵌入到载体图片中,再送入公开分类任务模型得到伪分类结果,以由服务器端的结果映射网络将所述伪分类结果进行映射,得到最终的分类结果返回给用户端;
其中,所述载体图片和所述公开分类任务模型是由服务器预先分配给用户端;
所述载体图片由自然图片叠加扰动p而成;
所述公开分类任务模型是任意的开放分类任务神经网络模型。
进一步地,所述载体图片用于代表用户身份,不同用户各自所对应的自然图片不同。
进一步地,所述扰动p和结果映射网络的权重参数w通过训练得到。
进一步地,所述扰动p和结果映射网络的权重参数w通过以下步骤得到:
(1)获取新任务的数据集,所述数据集内包含数据及其标签;
(2)从数据集中随机挑选一批样本,将其输入所述分布式的神经网络模型中;
(3)根据输入的样本,并通过下式更新参数p和w:
式中,pnew和wnew分别是更新后的p和w的值,pold和wold分别是更新前的p和w的值,
(4)重复步骤(2)-(3)直至模型收敛。
进一步地,所述损失l为:
其中x为输入,y为其真正标签,||p|| ||w||是参数的正则化项,γ是其权重,prob(y|x)是指将x分类为y的概率。
本发明的又一方面提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现上述的神经网络部署方法。
本发明的再一方面提供了一种计算机存储介质,所述存储介质中存储计算机程序,所述计算机程序在执行时实现上述的神经网络部署方法。
通过本发明所构思的以上技术方案,与现有技术相比,能够取得以下有益效果:
1)本发明提出的模型框架,相较于网络模型全在服务器上的模式,其计算量小,只需要完成结果映射即可。而相较于模型在设备上的模式,消除了网络知识产权的影响,app上是一个已公开的神经网络,所以没有产权问题,别人也无法把该权重用于他处,而且减小了计算开销。
2)当网络更新时只需重新训练图片发送给用户即可,相较于模型在设备上的模式(需要传递网络权重),该方法大大减少了流量的消耗。
3)本发明提出的模型框架保证了用户的隐私,用户和服务器通信时输入端受到了保护,在通信时其不需要传递待分类的原始信息,而是一个无意义的伪分类结果。
4)本发明提出的模型框架,只需通过简单地更新用户端的载体图片,即可有效防御模型窃取与对抗样本攻击方法。
5)设置灵活,实际使用该框架时可根据服务器能力来设计相应的模式。在服务器存储容量足够的情况下,可以给每个用户都分配不同的结果映射模块,并将这些结果映射模块存储在服务器中;相反如果服务器存储容量有限,可以给不同用户使用同一映射模块,降低对服务器性能的要求。
附图说明
图1是现有技术中设备端模型和服务器端模型对比示意图。
图2是本发明实施例整体框架示意图。
图3是本发明实施例模型细节示意图。
图4是本发明实施例嵌入过程示意图。
图5是本发明实施例模型下载示意图。
图6是本发明实施例模型使用示意图。
图7是本发明实施例模型更新示意图。
图8是对模型窃取攻击的防御效果验证结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先介绍对抗样本和模型窃取的相关概念:
a.对抗样本
对抗样本是在原有样本x基础上,通过对抗扰动生成的一个可以欺骗分类器f的新样本x*,可以表示为:
x*=x δx=x min||x*-x||
s.t.f(x*)≠f(x)
其中,δx是用来对原有样本x进行扰动的极小干扰值,||x*-x||表示x*和x之间的距离即施加在样本x上的扰动的大小。为了使分类出错,对抗样本可以根据下式生成:
其中,l为攻击对象的损失函数,y为样本x的标签,θ是分类器f的参数,
在该领域中,假设用户知道设备端上神经网络的所有参数,其试图通过对服务器端的不断查询生成对抗样本,通过生成的对抗样本,攻击者能够达到欺骗整个app的目的。例如在人脸验证的某款app中,攻击者可以仅仅通过本地的参数以及对服务器端的不断查询,用一张陌生的人脸生成一张欺骗验证系统的人脸。
b.模型窃取
一个模型的参数是通过收集大量的数据集,且消耗了大量计算资源而得来的,其蕴含着个人或者企业的心血,同样具有知识产权。而模型窃取技术是指攻击者在未知模型参数的情况下通过对模型的多次查询获得训练集,在本地获取一个相同效益的神经网络从而达到窃取他人网络的目的。
在本领域中,假设用户知道设备端上神经网络的所有参数,模型窃取是指攻击者试图通过某种查询手段获取云端的模型参数,从而得到一个完整的神经网络模型,并非法的用于他处。
本发明提出了一种基于分布式的神经网络部署方法,既保证了用户的隐私,具有高度的安全性,又有效保护了模型参数,防御了对抗样本攻击与模型窃取攻击,尽可能减小了服务器的计算压力与通讯压力。
本发明的模型框架中,神经网络分为两部分,分别放置在服务器端和设备端。在设备端分配一张精心训练的图片和一个公开的神经网络模型。在服务器端放置一个与用户载体图片对应的结果映射网络,将从设备端中传出的结果进行进一步的分类,最后返回结果。值得注意的是,1)该图片和设备号绑定在一起并备份于服务器内,相当于一个用户身份的代表。2)设备端的神经网络是任意公开的神经网络,不限制其任务、训练于何种数据集等等。3)该图片是需要经过训练的,其训练过程在后文进行详细描述。
以安卓恶意软件检测app为例,任务是开发一个app去分类一个安卓软件是否是恶意的。首先,选取一个网上公开的分类猫狗的模型,并事先训练好一系列载体图片和结果映射模块。在app发布并被某一用户下载后,服务器将发送一张载体图片和一个公用的分类猫狗的模型给用户,用户在设备端输入自己的安卓恶意软件的特征,该特征将以某种方式嵌入到载体图片中,嵌入后的图片会被送入猫狗分类器得到一个伪分类结果。之后该结果被传入服务器中,由服务器进行结果的映射,得到最终的结果返回给用户,如图2。
可以看出,本发明的模型框架中,主要挑战是如何训练出载体图片以及对应的结果映射模块,并将一个公开的模型应用到一个新的领域中,并得到高的测试精度。
如图3,将输入记为x,其真正标签为y,载体图片c由一张自然图片a和一个精心计算的限定范围的扰动p相加而成。即
c=tanh(p) a
tanh()函数是为了将扰动限定在-1和 1之间。
随后,通过某种嵌入方式g将输入x嵌入到载体图片c中,并将嵌入后的图片输入给到一个公开且在任何其他无关的任务上训练好的神经网络f中得到伪结果
具体的,将根据输入图像和负载图像的大小,将输入图像覆盖到负载图像中心。如图4,从左到右分别是待分类的手写数字图像,负载图像,嵌入后的图像。
用户将该伪结果发送给服务器端,在云端,该伪结果输入到用户对应的结果映射网络mf(其参数为w)得到真正的结果y*,并返回给用户。即
最终为了得到扰动p和映射模型的参数w,设计训练损失l为:
其中||p|| ||w||是参数的正则化项,其目的是为了减少过拟合,γ是其权重,prob(y|x)是指将x分类为y的概率。
扰动p和结果映射网络的参数w的具体更新过程如下:
(t1)获取新任务的数据集d,特别的,该数据集是为了使得该模型适用于任务(即app所完成的分类任务)所收集获取的,数据集内包含数据及其标签。
(t2)随机选取一张自然图片。
(t3)从数据集中随机挑选一批数据(一般为64个样本),将其送入模型框架中。
(t4)根据输入样本,并依据下式更新参数p
式中,pnew是更新后的参数p的值,pold是更新前的参数p的值,
(t5)根据输入样本,并依据下式更新参数w
式中,wnew是更新后的参数w的值,wold是更新前的参数w的值,
(t6)重复(t3)-(t5)过程直至模型收敛,即得到一组适用于新任务的扰动p和结果映射网络的参数w。
结果映射网络的设计需要根据已选择的公开神经网络结构和需要训练的任务一起确定,例如,已选择的公开神经网络是一个1000分类的网络,而模型需要完成的是一个猫狗分类的2分类网络,那么该结果映射网络可以构建成一个输入是1000维输出是2维的全连接神经网络,而网络内部的隐藏层神经元个数可以根据实际情况选取,一般的结果映射网络中隐藏层神经元个数越多,训练精度越高,但是存储这些结果映射网络所需内存越高。
下面结合一个优选实施例,对上述实施例中涉及的内容进行说明。
(i)在用户下载该app时
服务器首先会为用户分配一张已经训练好的载体图片和结果映射网络,并将该图片和分配给的用户信息记录在数据库中,然后将该载体图片和一个公开的神经网络发送给用户。其流程图如图5所示。
(ii)用户使用该app时
用户将自己的输入以某种方式嵌入到图片中,送给公开的神经网络,得到公开神经网络的输出,并将结果上传给服务器,服务器将收到的数据经过对应的结果映射模块得到最后的结果并返回给用户,如图6。
(iii)用户更新该app时
模型的更新发生在如下两种情况:1)模型的质量不断地更新,当新版本的app发布时可能需要进行模型的替换;2)用户如果察觉到自己受到攻击时,可以申请替换用户的代表身份的图片,以此来抵御攻击。
在传统的基于神经网络的app中,如果需要进行模型更新,需要完整地更新自己设备端上模型的参数,非常耗时,但是在本发明的框架中,只需要更新一张代表用户的身份的图片即可,而无需更新公开的神经网络的参数,大大降低了流量的消耗,同时简单的更新方式削弱了攻击方法的攻击能力,因为不管是对抗样本攻击还是模型窃取攻击都需要不断地查询网络,只要及时地更新图片就可以抵御这种攻击,如图7。
最后,验证更换图片对模型窃取攻击的防御效果,如图8所示:
在左图中,从攻击者角度使用一个本地的替代网络去拟合结果映射模块,图中横轴表示轮次,纵轴表示攻击成功率,结果显示,经过了10000次(200轮,每轮50次)次的查询后,攻击准确率达到80%左右。在右图中,若定期替换用户端的图片,本地的替代网络精度将重新下降为10.54%,即攻击者又需要重新开始攻击。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.一种分布式的神经网络部署方法,其特征在于,包括以下步骤:
用户端将输入嵌入到载体图片中,再送入公开分类任务模型得到伪分类结果,以由服务器端的结果映射网络将所述伪分类结果进行映射,得到最终的分类结果返回给用户端;
其中,所述载体图片和所述公开分类任务模型是由服务器预先分配给用户端;
所述载体图片由自然图片叠加扰动p而成;
所述公开分类任务模型是任意的开放分类任务神经网络模型。
2.如权利要求1所述的神经网络部署方法,其特征在于,所述载体图片用于代表用户身份,不同用户各自所对应的自然图片不同。
3.如权利要求1所述的神经网络部署方法,其特征在于,所述扰动p和结果映射网络的权重参数w通过训练得到。
4.如权利要求3所述的神经网络部署方法,其特征在于,所述扰动p和结果映射网络的权重参数w通过以下步骤得到:
(1)获取新任务的数据集,所述数据集内包含数据及其标签;
(2)从数据集中随机挑选一批样本,将其输入所述分布式的神经网络模型中;
(3)根据输入的样本,并通过下式更新参数p和w:
式中,pnew和wnew分别是更新后的p和w的值,pold和wold分别是更新前的p和w的值,
(4)重复步骤(2)-(3)直至模型收敛。
5.如权利要求4所述的神经网络部署方法,其特征在于,所述损失l为:
其中x为输入,y为其真正标签,||p|| ||w||是参数的正则化项,γ是其权重,prob(y|x)是指将x分类为y的概率。
6.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的神经网络部署方法。
7.一种计算机存储介质,其特征在于,所述存储介质中存储计算机程序,所述计算机程序在执行时实现如权利要求1-5中任一项所述的神经网络部署方法。
技术总结