CN114626511B - 神经网络的训练方法、推理方法及相关产品 - Google Patents

神经网络的训练方法、推理方法及相关产品 Download PDF

Info

Publication number
CN114626511B
CN114626511B CN202210528896.5A CN202210528896A CN114626511B CN 114626511 B CN114626511 B CN 114626511B CN 202210528896 A CN202210528896 A CN 202210528896A CN 114626511 B CN114626511 B CN 114626511B
Authority
CN
China
Prior art keywords
training
neural network
data
scaling
activation function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210528896.5A
Other languages
English (en)
Other versions
CN114626511A (zh
Inventor
刘从新
和超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Airdoc Technology Co Ltd
Original Assignee
Beijing Airdoc Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Airdoc Technology Co Ltd filed Critical Beijing Airdoc Technology Co Ltd
Priority to CN202210528896.5A priority Critical patent/CN114626511B/zh
Publication of CN114626511A publication Critical patent/CN114626511A/zh
Application granted granted Critical
Publication of CN114626511B publication Critical patent/CN114626511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了一种由计算机实施的神经网络的训练方法、推理方法、计算装置和计算机可读存储介质。该神经网络用于对经同态加密的密文数据进行推理。训练方法包括:获取训练数据;利用训练数据对神经网络进行训练,其中神经网络中激活层的激活函数为一元二次多项式,该多项式至少包括二次项和一次项,并且激活函数在选定的输入区间内具有单调增、梯度非负的特性;以及基于所述训练确定与激活层关联的参数,以供推理使用。本申请的方案提供了同态加密友好的通用的神经网络的激活层方案,其通过提供多项式形式的激活函数,可以适应同态加密的运算特性,从而方便将任意神经网络迁移到同态加密下运行。

Description

神经网络的训练方法、推理方法及相关产品
技术领域
本申请一般地涉及数据处理领域。更具体地,本申请涉及由计算机实施的神经网络的训练方法、推理方法、计算装置和计算机可读存储介质。
背景技术
近年来,以机器学习和深度学习为基础的人工智能(Artificial Intelligence,以下简称AI)技术发展迅速,在电子商务、金融、医疗、教育等各个领域的AI应用也大量涌现和普及。由于对算力的高要求,AI应用大多都以公有云或私有云的方式部署在云端。这意味着,用户需要将数据传送到云端服务器,由后者完成AI模型推理,再将结果返回给用户。用户的数据经常包含用户自己的敏感且隐私的信息,特别是财务、医疗健康等数据。虽然可通过常用的数据加密算法避免数据被外部入侵者窃取,但是,将用户数据交给云端的服务器去执行算法计算,也存在信任问题和隐私泄露的风险。因此,如何让数据拥有者(DataOwner)在不泄露隐私的前提下,将数据交给算法拥有者(Algorithm Owner)完成计算,非常关键。
已知存在两种技术手段:
1)安全多方安全计算(Secure multi-party Computation, 以下简称SMPC);和
2)同态加密(Homomorphic Encryption,以下简称HE)。
SMPC需要客户端参与到计算中,对客户端的算力要求较高,普及性受限。而同态加密作为一种非对称加密,客户端将加密后的数据交给算法拥有者在服务端计算,计算结果仍以加密的方式返回客户端,只有客户端才能解密可见。这种方式让同态加密具有广泛的应用价值。
由于同态加密对数据编码、加密方式和同态计算都有独特的要求,例如仅支持加法和乘法运算,并且在乘法深度上也有限制,因此在将神经网络模型迁移到同态加密下实现时会存在一定问题。一个突出的问题是神经网络中的激活层,其通常由非线性激活函数来实现。但是,在同态加密下,上述限制导致很多非线性激活函数不可用。
因此亟需一种将通常的神经网络模型迁移到同态加密下实现的方案,尤其是针对激活层的非线性激活函数的方案。
发明内容
为了至少部分地解决背景技术中提到的一个或多个技术问题,本申请的方案提供了一种由计算机实施的神经网络的训练方法、推理方法、计算装置和计算机可读存储介质。本申请提供的神经网络用于对经同态加密的密文数据进行推理。该神经网络可以应用于各种领域,诸如图像处理、语音处理、文本处理等等,这些处理例如可以包括但不限于识别和分类。
在第一方面中,本申请公开一种由计算机实施的神经网络的训练方法,所述神经网络用于对经同态加密的密文数据进行推理,其特征在于,所述训练方法包括:获取训练数据;利用所述训练数据对所述神经网络进行训练,其中所述神经网络中激活层的激活函数为一元二次多项式,所述多项式至少包括二次项和一次项,并且所述激活函数在选定的输入区间内具有单调增、梯度非负的特性;以及基于所述训练确定与所述激活层关联的参数,以供所述推理使用。
在一些实施例中,利用所述训练数据对所述神经网络进行训练可以包括:在执行所述激活函数之前,对基于所述训练数据获得的所述激活层的输入数据进行第一尺度缩放,使得第一尺度缩放后的所述输入数据的数值落入所述激活函数的输入区间;对所述第一尺度缩放后的输入数据执行所述激活函数以获得输出数据;以及对所述输出数据进行第二尺度缩放,其中所述第二尺度缩放是所述第一尺度缩放的反向操作。
在一些实施例中,所述第一尺度缩放和所述第二尺度缩放均为按照数据的通道,对各通道的数据分别进行相应的缩放。
在一些实施例中,对基于所述训练数据获得的所述激活层的输入数据进行第一尺度缩放包括,针对所述输入数据的每个通道:确定所述通道的输入值的取值范围;根据所述取值范围及所述激活函数的输入区间,确定所述通道的缩放因子;以及基于所述缩放因子,对所述通道的输入值进行缩放。
在一些实施例中,确定所述通道的输入值的取值范围包括:针对当前批次的训练数据,统计所述通道的当前批次取值范围;以及利用所述当前批次取值范围对在上一批次的训练中确定的所述取值范围进行更新,以确定在当前批次的训练中的取值范围。
在一些实施例中,基于所述训练确定与所述激活层关联的参数包括:将在最后一批次的训练中确定的取值范围作为最终的取值范围,以供在所述推理中使用。
在一些实施例中,所述通道的取值范围使用所述通道中的输入值分布的最大幅度S表征,并按如下方式统计:
Figure 859034DEST_PATH_IMAGE001
其中
Figure 730389DEST_PATH_IMAGE002
表示求绝对值,/>
Figure 307869DEST_PATH_IMAGE003
为一个通道中的输入值。
在一些实施例中,所述激活函数表示为:
Figure 588809DEST_PATH_IMAGE004
,并且所述激活函数的输入区间为[-1/2, 1/2]。
在一些实施例中,按如下公式进行所述第一尺度缩放、所述激活函数和所述第二尺度缩放:
Figure 27881DEST_PATH_IMAGE005
在一些实施例中,利用所述训练数据对所述神经网络进行训练还包括:对所述第二尺度缩放后的输出数据附加执行第三尺度缩放,所述第三尺度缩放包括能够在所述训练中学习的附加缩放系数和/或附加偏移;并且基于所述训练确定与所述激活层关联的参数还包括:确定所述附加缩放系数和/或附加偏移。
在一些实施例中,所述第三尺度缩放和所述第二尺度缩放按如下公式融合执行:
Figure 680972DEST_PATH_IMAGE006
其中
Figure 461978DEST_PATH_IMAGE007
是所述附加缩放系数,/>
Figure 620426DEST_PATH_IMAGE008
是所述附加偏移。
在一些实施例中,所述第一尺度缩放融合在所述神经网络中与所述激活层前向相邻的线性层中执行;和/或所述第二尺度缩放融合在所述神经网络中与所述激活层后向相邻的线性层中执行。
在第二方面中,本申请提供一种由计算机实施的神经网络的推理方法,所述神经网络用于对经同态加密的密文数据进行推理,其特征在于,所述推理方法包括:获取经同态加密的密文数据;以及利用所述神经网络对所述密文数据进行推理,其中所述神经网络中激活层的激活函数为一元二次多项式,所述多项式至少包括二次项和一次项,所述激活函数在选定的输入区间内具有单调增、梯度为非负的特性,并且所述神经网络已按照本申请第一方面任一实施例的训练方法进行训练。
在第三方面中,本申请提供一种计算装置,包括:处理器,其配置用于执行程序指令;以及存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述处理器执行根据本申请第一方面任一实施例的训练方法或执行本申请第二方面任一实施例的推理方法。
在第四方面中,本申请提供一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行根据本申请第一方面任一实施例的训练方法或执行本申请第二方面任一实施例的推理方法。
通过如上所提供的神经网络的训练方案和推理方案,本申请实施例提供了一种同态加密友好的神经网络激活层方案,其可以适用于任意需要转换为同态加密实现的神经网络,并且适用于各种同态加密方案。进一步地,本申请实施例提出的激活层方案,只消耗一次密文乘法深度,完全满足同态加密的限制。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出采用同态加密方案在客户端与服务端之间的示例性交互方式;
图2示出了根据本申请一个实施例的激活函数的函数曲线图及其导数(梯度)图;
图3示出了根据本申请一个实施例的由计算机实施的神经网络的训练方法的示意性流程图;
图4进一步示出了根据本申请实施例的利用训练数据对神经网络进行训练的示例性流程图;以及
图5示出了根据本申请优选实施例的神经网络训练过程的示例性流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术中所提到的,同态加密具有广泛的应用价值。通常DES(数据加密标准)等加密算法产生的密文,不能进行有意义的运算。在代数中,同态性指两个同类型的代数结构(如群、环)保持结构不变的映射。同态加密保证了对密文进行的代数运算(通常是加法和乘法)结果保持不变。以Encrypt代表加密函数,Decrypt代表解密函数,同态性保证如下等价性:
Decrypt(Encrypt(a) + Encrypt(b)) = a + b
Decrypt(Encrypt(a) * Encrypt(b)) = a * b
机器学习和深度学习的算法基本都由加法和乘法构成,个别的非线性激活函数也可通过多项式近似来实现。所以,从原理上,同态加密对这些算法都适用。
同态加密最初提出时,支持的运算类型和乘法深度上均有限制。2009年Gentry提出了基于Bootstrapping的完全同态加密方案,让同态加密迈向实用性。
同态加密也是一种非对称加密,各方共享公钥来加密数据,但只有私钥的拥有者才能解密。在应用中,由数据拥有者生成公私秘钥对,将公钥和加密后的数据交由算法拥有者执行计算。
图1示出了采用同态加密方案在客户端与服务端之间的示例性交互方式。
如图所示,客户端110,也即数据拥有者,可以在步骤111处,生成公私钥对。例如通过预定算法Keygen,生成公私钥对(pk,sk)。然后,在步骤112处,客户端将其隐私数据x进行编码,得到明文数据xp,其中xp=Encode(x)。继而在步骤113处,客户端用公钥pk对明文数据xp进行加密,从而得到密文数据xc,其例如可以表示为xc=Encrypt(xp)。接着,在步骤114处,客户端110将公钥pk和密文数据xc发送到服务端120,也即算法拥有者,以对密文数据进行处理。
服务端120接收到公钥和密文数据之后,在步骤121处,执行算法f,返回加密的计算结果rc,其例如可以表示为rc=Eval(pk,xc,f)。算法f例如可以是神经网络中各个网络层的运算,包括但不限于卷积层、全连接层、激活层等。
客户端110接收到服务端120返回的加密计算结果rc后,在步骤115处,使用私钥对计算结果进行解密,得到明文结果rp,其例如可以表示为rp=Decrypt(rc)。最后,在步骤116处,对明文结果rp进行解码,得到期望的计算结果r,其例如可以表示为r=Decode(rp)。
从上述交互过程可以看出,同态加密方案需要一组完备的操作,这些操作涉及:编码/解码、加密/解密、明文加法和乘法、密文加法和乘法、以及旋转和位移等。同时,同态加密也要求神经网络中所有网络层的运算都支持在同态加密下的运行。
从原理上看,神经网络相当于拥有巨量参数空间的函数近似,因此可以拟合模式识别等各种人类擅长的认知任务。神经网络的基础部件如卷积层、全连接层等,都是朴素的线性变换。只有加入非线性,它才真正具备强大的函数近似能力,否则多个线性变换将约化为单一的线性变换,表达能力有限。这种“非线性”能力,在神经网络中通常由激活层的“非线性激活函数”来完成。
在神经网络发展过程中,出现了许多非线性激活函数,比如:
Figure 643615DEST_PATH_IMAGE009
其中erf(x)为高斯误差函数。
这些激活函数,背后都有各自的生物神经科学原理及数学分析,再结合一些模型训练的优化技巧,因此在适合的场景中都达到了优秀的性能。尤其RELU,因其简单高效,收敛快,应用最为普遍。
但是将神经网络模型迁移到同态加密下实现时,非线性激活函数却成为必须面对的难题。同态加密的方案中,只有加法和乘法是允许的,因此无法直接比较数字大小,这样RELU就不可用。进而只支持包含加法和乘法的多项式函数(或称为代数函数),那么超越函数如指数函数、对数函数等是不被允许的。因此涉及这些超越函数的非线性激活函数,也即上述所列除RELU之外的其它者,同样不可用。
为了让同态加密下的神经网络具有非线性,目前的解决途径分为两类:
第一类是用多项式逼近激活函数。由于神经网络模型的产生都包括模型的训练和推理两个阶段,因此这个途径又分为:以多项式近似的激活函数来训练模型;或者以通常的激活函数来训练模型,但在推理时用多项式逼近。
第二类是设计新的多项式激活函数,其中模型训练和推理都采用新的激活函数。
第一类途径在理论上可以的,所有函数都可用泰勒展开式来无穷逼近,RELU也可通过符号函数(sign function)的无穷逼近来实现。但第一类途径存在实用性上的局限。为了精确地逼近原先的激活函数,需要非常高阶的多项式,而通常实用的神经网络包含很多线性层,每层都有各自的激活函数。这会极大增加乘法的深度,而且密文乘的耗时也大。由于乘法深度是同态加密的主要紧缺资源,这让计算变得不可行。另外,任何多项式近似,只能保证在某个邻域内函数值接近(通常是[-1,1]),稍有偏离,误差反而急剧增加,从而造成模型训练及推理的不稳定性。再次,如果用多项式逼近作为激活函数进行模型训练,虽然函数值较接近,但其梯度常常缺乏单调性,导致梯度信号的传递紊乱,模型不容易收敛。
第二类途径不需做精确逼近传统的激活函数,改为设计新的函数形式,这处于初步探索阶段。最简单的非线性多项式是square平方函数
Figure 836699DEST_PATH_IMAGE010
,它在MNIST数据集上可以收敛。但因为它的数学特性不好,很容易放大函数值,当网络信息传递层数过多时会出现数值爆炸。当然也有提出其它形式的多项式激活函数,与传统的激活函数在性能上差异过大。
有鉴于此,本申请提出一种基于新的极简多项式激活函数的方案。在此方案中,神经网络模型的训练和推理均基于此新的激活函数。新的激活函数与传统的激活函数在性能上差异很小,可以普遍适用于任意需要转换为同态加密实现的神经网络,具有广泛的实用性。
为了适应同态加密,减少乘法深度和计算量,激活函数的形式必须足够简单。如前分析,考虑到Square平方函数行不通,因此设计另一种形式的激活函数,该激活函数的形式为一元二次多项式,并且至少包括二次项和一次项,其可以表示为:
Figure 54185DEST_PATH_IMAGE011
但是,直接将该函数形式加入神经网络训练,由于存在平方项,依然会出现数值爆炸。究其原因,激活函数不能改变网络的信息流和增益方向。换言之,正向增加的信号经过激活函数仍应是正向,负向仍应是负向。这就要求激活函数必须为单调增,其梯度不可为负。这也是RELU效果很好的原因,它在输入为正值的区间(x>0)中单调增且梯度不饱和,负值区间梯度为零,梯度信号被截取。
有鉴于此,本申请实施例中可以只截取此函数形式的部分输入区间,以满足上述特性。在此输入区间内,激活函数的值是单调递增,并且梯度值非负。
在一些优选实施例中,可以将激活函数设置为极简形式:
Figure 903192DEST_PATH_IMAGE012
下面将以这种极简形式为例,详细描述本申请实施例的实现。然而本领域技术人员可以理解,虽然下面的描述针对公式(2)这种形式的激活函数,但是根据本文描述的原理,这些实现可以类似地应用于公式(1)所表示的激活函数。
图2示出了根据本申请一个实施例的激活函数的函数曲线图及其导数(梯度)图。
如图所示,公式(2)的函数形式的图像是一条对称轴与y轴平行的抛物线,其对称轴为x=-1/2。从图中可以看出,此函数在以原点对称的区间[-1/2, 1/2],也满足函数值单调递增,并且梯度值非负的特性。图中将此区间标为灰底色。从左边的函数曲线图可以看出对应函数值为[-1/4, 3/4];从右边的梯度图可以看出,对应的梯度值为[0,2],梯度值大于零。由此可见,此函数形式在区间[-1/2, 1/2]的确为单调增函数,且梯度不饱和。这保证了正向增益传播。因此在本申请一些实施例中,当激活函数采用公式(2)的函数形式时,可以将其输入区间限制为[-1/2, 1/2]。基于同样的原理,可以类似地选择出公式(1)任一函数形式的输入区间,以满足激活函数的要求。
基于上面设计的激活函数,可以在神经网络的训练和推理过程中均采用该激活函数。
图3示出了根据本申请一个实施例的由计算机实施的神经网络的训练方法的示意性流程图。所训练的神经网络可以用于对经同态加密的密文数据进行推理,也即在同态加密下运行。根据所应用的场景,密文数据可以是客户端需要保密的各种信息,例如医疗图像数据。同态加密的方法例如可以采取BFV/BGV或CKKS加密方案,本申请实施例在此方面没有限制。
如图所示,在步骤310中,获取训练数据。根据所训练的神经网络的用途,可以采用不同的训练数据进行训练。例如,在针对用于基于医学眼底照片识别眼部疾病的神经网络,可以采用医学眼底照片数据集作为训练数据。训练数据可以是明文数据,也可以是加密数据。考虑到训练速度,可以直接采用明文数据进行训练。
接着,在步骤320中,利用训练数据对神经网络进行训练。神经网络可以具有各种已知的或未来设计的网络模型结构,但是其原有的激活层的激活函数被替换为本申请实施例设计的激活函数,也即一元二次多项式,该多项式至少包括二次项和一次项,并且激活函数具有选定的输入区间以使得激活函数在此输入区间内具有单调增、梯度非负的特性。
在神经网络进行训练的过程中,神经网络每经过一次信号的正向处理的前向传播过程以及对应一次误差的反向传播过程,神经网络中的参数(例如权值)利用梯度进行一次更新,此时称为一次迭代(iteration)。神经网络要经过非常多次的迭代训练,遍历完所有训练数据后,其参数逐步收敛到稳定值。训练过程可以将训练数据分为多个批次进行。在本披露实施例中,在训练过程中,与激活层关联的参数也可以随之确定。具体的参数类型和确定过程将在随后描述。
因此,在步骤330中,基于该训练确定与激活层关联的参数,以供神经网络在进行推理时使用。
基于本申请实施例中提供的新的激活函数,其替换神经网络激活层中原有的激活函数后,对神经网络重新进行训练。由此可以将训练后的神经网络迁移到同态加密下运行。由于新的激活函数满足单调增和梯度非负的特性,并且激活函数是多项式形式,因此对同态加密友好,可以适用于任意需要转换为同态加密实现的神经网络,并且可以适用于各种同态加密方案,如BFV、BGV和CKKS等。
如前面所提到,为了使得激活函数具有单调增、梯度非负的特性,只截取其部分输入区间,因此需要使得激活函数的输入值落入所截取的输入区间。
发明人注意到,当神经网络充分训练且收敛后,每个线性层的输出,也即激活函数的输入,会形成一个稳定的分布,特别是当线性层之后增加了批次归一化(batchnormalization,以下简称bn)的时候。因此,发明人受bn算法的启发,可以对激活函数的输入数据进行缩放,以满足输入区间的要求。
图4进一步示出了根据本申请实施例的利用训练数据对神经网络进行训练的示例性流程图。可以理解,由于神经网络中激活层的激活函数发生改变,因此相应的训练也需要调整。下面的描述中仅针对激活层的训练进行阐述,其余网络层的训练可以采用现有的各种训练方式,本申请实施例在此方面没有限制。
如图所示,在步骤410中,在执行神经网络的激活层的激活函数之前,对基于训练数据获得的该激活层的输入数据进行第一尺度缩放,使得第一尺度缩放后的输入数据的数值落入该激活函数的输入区间。
在一些实施例中,第一尺度缩放可以按照输入数据的通道,对各通道的输入数据分别进行相应的缩放。也即,对输入数据按通道执行第一尺度缩放。
本申请实施例中的这种“按通道缩放”,可以理解为神经网络相当于表示的学习,这个表示也称为特征图(feature map)。每层接受前序层输入的特征图,经过处理后,输出新的特征图。特征图为张量,视数据存放格式不同,其维度可为[B, W, H, C]或[B, C, W,C]。这里B为批次大小,W和H为空间维度的高和宽,C为通道数。在一些情况下,如果经过全局平均池化层(global average pooling),空间维度会约化,特征图的维度则为[B, C]。无论哪种情况,都可以对每个特征图按通道进行缩放。
接着,在步骤420中,对第一尺度缩放后的输入数据执行激活函数以获得输出数据。由于缩放后的输入数据的数值落在激活函数的输入区间,因此其输出数据也在对应的输出区间,不会出现数值爆炸。
最后,在步骤430中,对输出数据进行第二尺度缩放,其中第二尺度缩放是第一尺度缩放的反向操作。第二尺度缩放是为了保持数据的尺度一致性,以抵消第一尺度缩放带来的影响。例如,当第一尺度缩放对输入数据缩小了X倍,则第二尺度缩放对输出数据放大X倍,反之亦然。当第一尺度缩放是按通道执行时,第二尺寸缩放也相应地按通道执行,对各通道的输出数据进行相应的缩放。
通过在训练过程中引入第一尺度缩放和第二尺度缩放,可以将激活函数的输入数据控制在输入区间内,从而仅使用二项式函数的选定输入区间作为激活函数,满足函数值单调增、梯度非负的需求。
在执行第一尺度缩放时,需要确定要使用的缩放因子。缩放是按照通道执行的,各个通道具有各自的缩放因子。可以理解,缩放因子取决于所处理的输入数据的取值范围以及输入区间范围。
在一些实施例中,执行第一尺度缩放可以包括,针对输入数据的每个通道进行如下处理:确定通道的输入值的取值范围;根据取值范围及激活函数的输入区间,确定通道的缩放因子;以及基于所确定的缩放因子,对该通道的输入值进行缩放。
在一些实施例中,通道的取值范围可以使用通道中的输入值分布的最大幅度来表征,设其为S,称为缩放系数。
此处的“缩放系数”是指按通道统计的输入值分布的最大幅度,即其最大值和最小值二者绝对值的更大者,其可以表示为:
Figure 733001DEST_PATH_IMAGE013
其中
Figure 780592DEST_PATH_IMAGE014
表示求绝对值,/>
Figure 231296DEST_PATH_IMAGE015
为一个通道中的输入值。
在知晓通道的取值范围和激活函数的输入区间后,即可确定该通道对应的缩放因子,换言之,通过该缩放因子,可以将输入值从[-S,S]的取值范围映射到激活函数的输入区间。以公式(2)形式的激活函数为例,假设输入区间为[-1/2,1/2],则缩放因子可以确定为1/2S。相应地,对通道的输入值执行第一尺度缩放可以表示为:
Figure 348025DEST_PATH_IMAGE016
由于缩放后的输入值落入激活函数的输入区间[-1/2,1/2],因此可以执行激活函数,表示如下:
Figure 463749DEST_PATH_IMAGE017
计算完后,为了保证尺度的一致,可以再按照2S放大恢复如下:
Figure 116578DEST_PATH_IMAGE018
如前面所提到,神经网络要经过非常多次的迭代训练后,每层的输出才会呈现稳定分布。缩放系数S作为统计量,可以在模型训练时采用移动平均计算得到,从而会逐步收敛到稳定值。
在一些实施例中,确定通道输入值的取值范围可以包括:采用移动平均方式,按训练数据的批次,动态更新通道的取值范围。
具体地,可以针对当前批次的训练数据,统计各通道的当前批次取值范围。然后利用当前批次取值范围对在上一批次的训练中确定的取值范围进行更新,以确定在当前批次的训练中的取值范围。以下以通道的缩放系数S表征取值范围为例,来描述具体的动态更新示例。
在一个示例中,假设上一批次训练中确定的缩放系数为
Figure 659555DEST_PATH_IMAGE019
,移动平均的动量(momentum)为/>
Figure 621887DEST_PATH_IMAGE020
。神经网络通常都以minibatch方式训练,不妨假设当前批次的统计量为/>
Figure 478985DEST_PATH_IMAGE021
。则经过此批次训练,新的统计量为:
Figure 251900DEST_PATH_IMAGE022
参数m为固定参数,可以预先设定,例如在0.5~0.95间选择,缺省值例如可以设为0.75。
由此,通过多次的迭代后,可以得到稳定的缩放系数S,从而可以将在最后一批次的训练后更新的统计量确定为最终的缩放系数,以供在推理中使用。
从上面的描述可以看出,缩放系数S是一个统计量,其并没有参与神经网络的学习过程。因此,可选地或附加地,在一些实施例中,可以附加可学习的缩放系数和/或偏移,以使得方案具有更好的推广性。
在这些实施例中,训练过程还可以包括:对第二尺度缩放后的输出数据附加执行第三尺度缩放,该第三尺度缩放包括能够在训练中学习的附加缩放系数和/或附加偏移。相应地,基于训练确定与激活层关联的参数还包括:确定上述附加缩放系数和/或附加偏移。
上述第三尺度缩放可以与第二尺度缩放融合,融合执行可以将前述公式(6)替换为如下公式(7):
Figure 231357DEST_PATH_IMAGE023
其中
Figure 650575DEST_PATH_IMAGE024
是附加缩放系数,/>
Figure 124413DEST_PATH_IMAGE025
是附加偏移。在一个示例中,α和β的初始化值可分别为1.0和0.0。
由此,通过这种可学习的(例如利用梯度下降法进行学习)附加缩放系数和附加偏移,可以泛化本申请实施例的激活函数,以具备更好的推广性。
此外,从前面公式(2)形式的激活函数可以看出,采用该激活函数后,会将输入区间[-1/2,1/2]映射到输出区间[-1/4,3/4]。这发生了1/4的正偏移。这个固定偏移可以利用神经网络巨大的参数空间去调整。在本申请一些实施例中,这个偏移可以通过上述可学习的附加偏移
Figure 1102DEST_PATH_IMAGE025
来调整。
可选地或附加地,考虑到因为新的激活函数而引入的第一尺度缩放和第二尺度缩放(或融合了第三尺度缩放的第二尺度缩放)均属于线性变换(常量乘或常量加),因此可以将它们与神经网络中前后的线性层(例如卷积层、bn层)融合,从而进一步减少计算量。
例如,第一尺度缩放可以融合在神经网络中与激活层前向相邻的线性层中执行;而第二尺度缩放可以融合在神经网络中与激活层后向相邻的线性层中执行。
上文详细描述了本申请实施例的具有新设计的激活函数的神经网络的训练过程。通过在训练时动态地获得输入值的统计量,然后缩放到合适的尺度进行计算,为神经网络增加了必不可少的非线性。上述动态统计方式收敛很好,在若干流行的网络上(例如MobileNet, EfficientNet和类VGG Net)用医学眼底照片数据集测试均可适用。实验中的性能与通常采用RELU激活函数的性能的差异较小,性能可比较。而且,针对此激活函数有很多训练方法上的优化空间,例如附加可学习参数、融合计算等。所以,本申请实施例提出的方案能够铺平通常的神经网络迁移到同态加密下运行的道路,具有广泛的实用性和多样的研究前景。
图5示出了根据本申请优选实施例的神经网络训练过程的示例性流程图。在此示例中,以公式(2)形式的激活函数为例,截取其输入区间为[-1/2,1/2],针对激活层的训练进行描述。
如图所示,在步骤510中,针对当前minibatch的训练数据,按通道统计当前批次的缩放系数
Figure 138079DEST_PATH_IMAGE026
Figure 670691DEST_PATH_IMAGE027
接着,在步骤520中,判断当期批次的训练是否为首个批次,也即是不是刚开始训练。
若是,则前进到步骤530,初始化当前的缩放系数,也即:
Figure 682641DEST_PATH_IMAGE028
接着,在步骤540中,利用当前的缩放系数执行激活函数。具体地,包括执行第一尺度缩放、激活函数及第二尺度缩放(融合了第三尺度缩放),如下公式所示:
Figure 787738DEST_PATH_IMAGE029
由此,在步骤550中,输出结果
Figure 859730DEST_PATH_IMAGE030
,传递给神经网络中的下一层进行处理。
若在步骤520中的判断结果为否,也即非首个批次的数据,则可以前进到步骤560,更新当前的缩放系数。具体地,计算新的缩放系数,并将其作为当前缩放系数:
Figure 318786DEST_PATH_IMAGE031
继而,在步骤540中,基于更新后的当前缩放系数执行激活函数,此处不再重复。
经过训练后,可以确定神经网络中的各种参数,包括与激活层关联的参数,例如缩放系数。附加地,还可以包括前述附加缩放系数和附加偏移。
在训练好神经网络之后,可以利用该经过训练的神经网络来进行推理或预测,以实现期望的功能,诸如图像识别/分类等。在推理阶段,直接使用训练阶段确定的参数,例如
Figure 134427DEST_PATH_IMAGE032
,利用公式(10)-(12)执行激活函数。
由此,通过设计新的简洁形式的激活函数并基于此重新进行训练后发布模型,可以将任意神经网络模型转换为同态加密下实现。上述方案对同态加密方案没有限制,可以适用于诸如BFV、BGV和CKKS等的各种同态加密方案。此外,从上述计算过程可知,本申请实施例提供的激活函数,在同态加密下,仅需消耗一次密文乘,完全满足同态加密对乘法深度的要求。进一步地,公式(10)(常量乘)和公式(12)(常量乘和常量加)的计算可以融合在相邻线性层的计算中,进一步减少计算量。
本申请实施例的上述方案可以借助于程序指令来实现。由此,本申请还提供了一种计算装置,包括处理器,其配置用于执行程序指令;以及存储器,其配置用于存储程序指令,当这些程序指令由上述处理器加载并执行时,使得处理器执行根据前文任一实施例所述的对神经网络进行训练的方法或利用神经网络进行推理的方法。
计算装置可以对应于具有各种处理功能的计算设备。例如,计算装置可以被实现为各种类型的设备,包括但不限于个人计算机(PC)、服务器设备、移动设备等。
处理器配置用于执行程序指令以控制计算装置的所有功能。例如,处理器通过执行计算装置上的存储器中存储的程序,来控制计算装置的所有功能。处理器可以由计算装置中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)、人工智能处理器芯片(IPU)、现场可编程门阵列(FPGA)等来实现。然而,本申请不限于此。
存储器用于存储计算装置中处理的各种数据。例如,存储器可以存储计算装置中的处理过的数据和待处理的数据。存储器可存储处理器已处理或要处理的数据。此外,存储器可以存储要由计算装置驱动的应用、驱动程序等程序指令。例如:存储器可以存储与将由处理器执行的对加密数据进行运算处理等有关的各种程序。存储器可以是DRAM,但是本披露不限于此。存储器可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM (FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、 PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡、高速缓存(caches)或记忆棒中的至少一项。
综上,本说明书实施方式提供的计算装置的存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本披露实施例中,还提供一种计算机可读存储介质,其中存储有程序指令,当该程序指令由处理器加载并执行时,使得处理器执行本申请实施例中描述的对神经网络进行训练的方法或利用神经网络进行推理的方法。
计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种由计算机实施的神经网络的训练方法,所述神经网络用于对经同态加密的密文数据进行推理,其特征在于,所述训练方法包括:
获取训练数据;
利用所述训练数据对所述神经网络进行训练,其中所述神经网络中激活层的激活函数为一元二次多项式,所述多项式至少包括二次项和一次项,并且所述激活函数在选定的输入区间内具有单调增、梯度非负的特性,以使得在所述神经网络的推理过程中,所述激活层的运算与所述神经网络中的其他层的运算均在服务端执行而无需客户端参与;以及
基于所述训练确定与所述激活层关联的参数,以供所述推理使用;
其中利用所述训练数据对所述神经网络进行训练包括:
在执行所述激活函数之前,对基于所述训练数据获得的所述激活层的输入数据进行第一尺度缩放,使得第一尺度缩放后的所述输入数据的数值落入所述激活函数的输入区间;
对所述第一尺度缩放后的输入数据执行所述激活函数以获得输出数据;以及
对所述输出数据进行第二尺度缩放,其中所述第二尺度缩放是所述第一尺度缩放的反向操作。
2.根据权利要求1所述的训练方法,其中所述第一尺度缩放和所述第二尺度缩放均为按照数据的通道,对各通道的数据分别进行相应的缩放。
3.根据权利要求2所述的训练方法,其中对基于所述训练数据获得的所述激活层的输入数据进行第一尺度缩放包括,针对所述输入数据的每个通道:
确定所述通道的输入值的取值范围;
根据所述取值范围及所述激活函数的输入区间,确定所述通道的缩放因子;以及
基于所述缩放因子,对所述通道的输入值进行缩放。
4.根据权利要求3所述的训练方法,其中确定所述通道的输入值的取值范围包括:
针对当前批次的训练数据,统计所述通道的当前批次取值范围;以及
利用所述当前批次取值范围对在上一批次的训练中确定的所述取值范围进行更新,以确定在当前批次的训练中的取值范围。
5.根据权利要求4所述的训练方法,其中基于所述训练确定与所述激活层关联的参数包括:
将在最后一批次的训练中确定的取值范围作为最终的取值范围,以供在所述推理中使用。
6.根据权利要求5所述的训练方法,其中所述通道的取值范围使用所述通道中的输入值分布的最大幅度S表征,并按如下方式统计:
Figure 190815DEST_PATH_IMAGE001
其中
Figure 927827DEST_PATH_IMAGE002
表示求绝对值,
Figure 388895DEST_PATH_IMAGE003
为一个通道中的输入值。
7.根据权利要求6所述的训练方法,其中所述激活函数表示为:
Figure 818739DEST_PATH_IMAGE004
,并且所述 激活函数的输入区间为[-1/2, 1/2]。
8.根据权利要求7所述的训练方法,其中按如下公式进行所述第一尺度缩放、所述激活函数和所述第二尺度缩放:
Figure 247315DEST_PATH_IMAGE005
Figure 460122DEST_PATH_IMAGE006
Figure 103593DEST_PATH_IMAGE007
9.根据权利要求8所述的训练方法,其中利用所述训练数据对所述神经网络进行训练还包括:
对所述第二尺度缩放后的输出数据附加执行第三尺度缩放,所述第三尺度缩放包括能够在所述训练中学习的附加缩放系数和/或附加偏移;并且
基于所述训练确定与所述激活层关联的参数还包括:确定所述附加缩放系数和/或附加偏移。
10.根据权利要求9所述的训练方法,其中所述第三尺度缩放和所述第二尺度缩放按如下公式融合执行:
Figure 124245DEST_PATH_IMAGE008
其中
Figure 853167DEST_PATH_IMAGE009
是所述附加缩放系数,
Figure 869664DEST_PATH_IMAGE010
是所述附加偏移。
11.根据权利要求1-10任一所述的训练方法,其中:
所述第一尺度缩放融合在所述神经网络中与所述激活层前向相邻的线性层中执行;和/或
所述第二尺度缩放融合在所述神经网络中与所述激活层后向相邻的线性层中执行。
12.一种由服务端处的计算机实施的数据处理方法,其特征在于,所述数据处理方法包括:
接收客户端发送的密文数据,所述密文数据由所述客户端利用同态加密算法对目标数据进行加密后生成;
响应于接收到所述密文数据,利用预定的神经网络对所述密文数据进行推理以生成加密的计算结果,其中所述神经网络中激活层的激活函数为一元二次多项式,所述多项式至少包括二次项和一次项,所述激活函数在选定的输入区间内具有单调增、梯度非负的特性,并且所述神经网络已按照权利要求1-11任一所述的训练方法进行训练,在所述神经网络的推理过程中,所述激活层的运算与所述神经网络中的其他层的运算均在服务端执行而无需客户端参与;以及
向所述客户端返回所述加密的计算结果。
13.一种计算装置,包括:
处理器,其配置用于执行程序指令;以及
存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述处理器执行根据权利要求1-11任一所述的训练方法或执行权利要求12所述的数据处理方法。
14.一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行根据权利要求1-11任一所述的训练方法或执行权利要求12所述的数据处理方法。
CN202210528896.5A 2022-05-16 2022-05-16 神经网络的训练方法、推理方法及相关产品 Active CN114626511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210528896.5A CN114626511B (zh) 2022-05-16 2022-05-16 神经网络的训练方法、推理方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210528896.5A CN114626511B (zh) 2022-05-16 2022-05-16 神经网络的训练方法、推理方法及相关产品

Publications (2)

Publication Number Publication Date
CN114626511A CN114626511A (zh) 2022-06-14
CN114626511B true CN114626511B (zh) 2023-03-24

Family

ID=81907372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210528896.5A Active CN114626511B (zh) 2022-05-16 2022-05-16 神经网络的训练方法、推理方法及相关产品

Country Status (1)

Country Link
CN (1) CN114626511B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116232562B (zh) * 2023-05-10 2023-08-01 北京数牍科技有限公司 一种模型推理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543901A (zh) * 2019-08-22 2019-12-06 阿里巴巴集团控股有限公司 图像识别方法、装置及设备
CN112699384A (zh) * 2020-12-11 2021-04-23 山东大学 基于fpga的全同态加密深度学习推理方法及系统
CN113902089A (zh) * 2020-06-22 2022-01-07 富泰华工业(深圳)有限公司 加速激活函数运算的装置、方法及存储介质
CN113965313A (zh) * 2021-12-15 2022-01-21 北京百度网讯科技有限公司 基于同态加密的模型训练方法、装置、设备以及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946970B2 (en) * 2014-11-07 2018-04-17 Microsoft Technology Licensing, Llc Neural networks for encrypted data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543901A (zh) * 2019-08-22 2019-12-06 阿里巴巴集团控股有限公司 图像识别方法、装置及设备
CN113902089A (zh) * 2020-06-22 2022-01-07 富泰华工业(深圳)有限公司 加速激活函数运算的装置、方法及存储介质
CN112699384A (zh) * 2020-12-11 2021-04-23 山东大学 基于fpga的全同态加密深度学习推理方法及系统
CN113965313A (zh) * 2021-12-15 2022-01-21 北京百度网讯科技有限公司 基于同态加密的模型训练方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN114626511A (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
US11301571B2 (en) Neural-network training using secure data processing
Brutzkus et al. Low latency privacy preserving inference
Cheon et al. Ensemble method for privacy-preserving logistic regression based on homomorphic encryption
Kalyani et al. An efficient approach for enhancing security in Internet of Things using the optimum authentication key
Hu et al. Batch image encryption using generated deep features based on stacked autoencoder network
EP3863002B1 (en) Hidden sigmoid function calculation system, hidden logistic regression calculation system, hidden sigmoid function calculation device, hidden logistic regression calculation device, hidden sigmoid function calculation method, hidden logistic regression calculation method, and program
CN114168991B (zh) 对加密数据进行处理的方法、电路及相关产品
JP7361928B2 (ja) 勾配ブースティングを介したプライバシーを守る機械学習
Wang et al. Deep learning data privacy protection based on homomorphic encryption in AIoT
US20210042356A1 (en) Data generalization for predictive models
WO2020071187A1 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
CN114626511B (zh) 神经网络的训练方法、推理方法及相关产品
KR20230136950A (ko) 함수 암호 시스템 및 함수 암호 수행 방법
Ran et al. CryptoGCN: fast and scalable homomorphically encrypted graph convolutional network inference
CN117439731B (zh) 基于同态加密的隐私保护大数据主成分分析方法及系统
Panda Principal component analysis using CKKs homomorphic scheme
Xie et al. Che: Channel-wise homomorphic encryption for ciphertext inference in convolutional neural network
Agarwal et al. Communication-efficient secure logistic regression
Ameur et al. Application of homomorphic encryption in machine learning
US11700110B2 (en) Approximate algebraic operations for homomorphic encryption
CN115719092A (zh) 基于联邦学习的模型训练方法和联邦学习系统
Ma et al. A Survey on Secure Outsourced Deep Learning
Alsaedi et al. A comparative study of combining deep learning and homomorphic encryption techniques
Al-Janabi et al. Secure Data Computation Using Deep Learning and Homomorphic Encryption: A Survey.
CN111742269B (zh) 计算机实现的方法和实现所述方法的节点

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant