一种轻量级隐私保护生成对抗网络系统的制作方法

专利2022-06-29  86


本发明涉及机器学习领域,特别是一种轻量级隐私保护生成对抗网络系统。



背景技术:

深度学习在多种计算机视觉任务上实现了重要的突破,例如图像识别,图像翻译和医学图像诊断等。为了模型的提高准确性,深度学习算法通常需要大量的训练样本。但是,由于隐私和法律的限制,在许多数据敏感领域(例如医疗、军事领域)并没有足够的训练数据,数据缺失使得构建模型更为困难。

生成对抗网络(gan)具有学习真实数据(例如图像,文本,视频)分布的能力,并可以生成难以与真实样本区分的生成样本,特别是在生成合成图像方面优于许多传统框架,因此,gan在计算机视觉领域得到了广泛的应用,同时提供了一种缓解训练数据稀缺问题的方法。2014年,goodfellow等人提出了gan的概念,通过对抗性过程来训练生成模型。随后,radford等人结合卷积神经网络提出了深度卷积gan(dcgan),该网络能够产生高质量的假图像样本,其统计特性与真实图像相似。等人提出分层递归gan(lr-gan),该模型利用不同的生成器来生成前景和背景,从而获得更清晰的图像。denton等人提出了laplacianpyramidgan(lapgan),该方法利用迭代从粗到细生成图像,进一步提高了gan合成图像的质量。

尽管在gan在生成合成图像任务上有着显著优势,但是在模型训练阶段仍然需要消耗大量的计算和存储资源,为了解决该问题,许多的用户选择将其数据和密集计算外包给云平台。但是,传统的集中式云架构可能会导致处理和传输海量数据时出现不可预料的延迟,这使得该方案不适用于时间敏感型的应用程序。因此,采用边缘计算来优化云计算的性能。边缘计算在靠近用户数据源的网络边缘处理计算,减少了用户与数据中心之间的等待时间和带宽消耗。安全和隐私仍然是边缘计算处理gan任务时的主要问题,用于外包计算的数据通常是未加密的,并且第三方边缘计算服务器并不是完全可信的,因此很多敏感图像数据(例如人脸图像,医学图像)面临着被窃听和滥用的风险。此外,从gan生成的数据样本的分布和训练样本相似,这可能导致隐式的隐私泄露。arjovsky等人通过从模型中反复采样,能够恢复训练样本。因此,gan中训练数据和模型的隐私都需要被保护。

同态加密(he)是一种隐私保护计算方案,支持对加密数据进行灵活的计算。xie等人提出cryptonets实现了基于同态加密的神经网络预测。zhang等人提出了一种基于同态加密的隐私保护深度计算模型,该模型将复杂的计算任务分配到云平台执行。hesamifard等人提出cryptodl,使用多层同态加密执行卷积神经网络中的训练和预测计算。但是,现有的基于同态加密的框架时间复杂度高,并且存储消耗大,不适合用于实际应用中。

另一种高效的隐私保护方案是差分隐私(dp),它通过增加随机噪声来保护数据。2017年,abadi等人提出了一种基于差分隐私的梯度剪枝方案,在机器学习训练过程中保护了数据隐私。shokri等人提出了一种基于差分隐私技术的深度神经网络分布式训练方案。xie等人提出了一种差分隐私wgan模型(dpgan),该模型通过在训练过程中给梯度添加噪声来实现差分隐私。尽管差分隐私技术的性能优于同态加密技术,由于算法需要加入基于拉普拉斯分布或高斯分布的随机噪声,在隐私要求较高时,基于差分隐私的方案会产生更多的误差,基于差分隐私的方法必须在精确性和隐私性之间进行权衡。



技术实现要素:

有鉴于此,本发明的目的是提出一种轻量级隐私保护生成对抗网络系统,能够保证用户的数据和模型的双重隐私。

本发明采用以下方案实现:一种轻量级隐私保护生成对抗网络系统,实体包括数据提供者ds、服务提供者sp、第一边缘服务器s1以及第二边缘服务器s2,软件包括lp-gan安全计算框架;所述lp-gan安全计算框架包括安全生成模型sg以及安全判别模型sd;

所述数据提供者ds拥有训练图像数据,并为dcgan神经网络的训练提供初始参数;为了保护图像数据i和模型参数p的隐私,ds在本地将其随机拆分为两组秘密共享数据i′,i″和p′,p″,然后,ds将其分别发送给第一边缘服务器s1和第二边缘服务器s2;同时,ds负责生成随机值以满足交互式安全协议的需求;

所述第一边缘服务器s1与第二边缘服务器s2负责执行交互式的安全计算协议;s1和s2分别从数据提供者处获得秘密共享i′,p′和i″,p″作为输入,并运行具有隐私保护的训练、生成过程,之后s1和s2分别返回训练后的隐私保护参数p′,p″和生成的图像o′,o″,并发送给服务提供者sp;

服务提供者sp接收s1和s2产生的秘密共享,并恢复dcgan的明文训练参数p和明文的生成图像o。

进一步地,所述生成模型sg包括反卷积层、批处理归一化层、relu层和全连接层;所述判别模型sd包括卷积层,批处理归一化层,leakyrelu层和全连接层;每个层中均包括安全计算协议,具体如下:

其中,在卷积层中,假设xij是卷积计算输入矩阵x第i行、第j列的元素;ω和b分别是n×n大小的卷积核的权重和偏移量;为了保护训练数据的隐私,首先将x随机分为两个随机秘密分享x′和x″,x=x′ x″,其中xij被分为两个随机值x′ij和x″ij,同时,将权重和偏移量分为两组随机秘密分享(ω′lm,ω″lm)和(b′,b″),其中ωlm=ω′lm ω″lm,b=b′ b″;安全卷积协议secconv计算如下:s1和s2共同计算:(a′lm,a″lm)←secmul(ωlm,xi l,j m);s1计算c′ij,s2计算c″ij:

其中,在反卷积层中,安全反卷积协议secdeconv的计算和secconv相同,不同点在于反卷积计算的输入图像中需要填充多个0以满足输出矩阵大小;

其中,在批处理归一化层中采用安全批量规范化协议secbn,设输入为xi,xi=x′i x″i,批量大小为m,协议流程如下:s1和s2分别计算批量均值:s1和s2共同计算批量方差:(a′i,a″i)←ssq(xi-μb),s1和s2共同计算规范化值首先调用sisqrt协议计算其中,ε是常数,用于确保数值稳定性,用ti=xi-μb表示标准差,调用安全乘法协议secmul计算出假设缩放、偏移参数γ,β为全局参数公开可知,前向传播时为定值,反向传播时更新,s1和s2分别计算规范化输出为:

其中,在relu层中,采用sr协议,其流程如下:s1和s2分别计算sr(xi′j)和sr(x″ij):

其中,在leakyrelu层中,采用slr协议,其流程如下:s1和s2分别计算slr(x′ij)和slr(x″ij):其中α∈(0,1)为非零常量;

其中,在全连接层中,采用安全全连接协议secfc,设全连接层的输入为第k层的输出xk,ωik表示当前层第i个神经元和前一层第k个神经元的连接权重,bi表示当前层第i个神经元的偏移量,secfc协议流程如下:s1和s2共同计算:(a′ik,a″ik)←secmul(ωik,xk),f′i=∑ka′ik bi′,fi″=∑ka″ik bi″。

上述上标’与”分别表示由无上标的数据拆分得到的两个数据。

进一步地,所述运行具有隐私保护的训练、生成过程具体包括以下步骤:

步骤s1:数据提供者ds生成sd和sg的模型参数θd和θg,并分别将其预处理拆分成两组秘密分享数据,分别发送给第一边缘服务器s1和第二边缘服务器s2;

步骤s2:训练判别模型sd:ds分别取m个随机噪声样本z和真实图像样本x,分别预处理拆分成两组数据秘密分享发送给s1和s2;对于输入的噪声样本,s1和s2执行安全生成模型前向传播协议sg-fp生成图像对于每个输入数据,s1和s2执行安全前向传播协议sd-fp和sg-fp,计算sd的损失函数s1和s2执行安全反向传播协议sd-bp更新sd的参数;

步骤s3:训练生成模型sg:ds取m个随机噪声样本z做预处理拆分成两组数据并分别秘密分享发送给s1和s2;对于输入的噪声样本,s1和s2执行生成模型前向传播协议sg-fp生成图像对于每张生成图像,s1和s2执行安全前向传播协议sg-fp,用于计算sg的损失函数s1和s2执行安全反向传播协议sg-bp更新sg的参数;

步骤s4:第一边缘服务器s1和第二边缘服务器s2分别返回训练后的模型参数的秘密共享给服务提供者sp。

进一步地,所述sd-fp为判别模型的前向传播协议,具体为:设判别模型的输入为图像的秘密分享i′,i″,其中,第一边缘服务器s1输入i′,第二边缘服务器s2输入i″,模型的第i层中,安全卷积计算协议secconv的结果为c′(i),c″(i),安全批量规范化协议secbn的计算结果为y′(i),y″(i),安全leakyrelu函数计算结果为slr′(i),slr″(i),最后,协议调用安全全连接协议secfc输出对图像的判别结果f′,f″。

进一步地,所述sg-fp为生成模型的前向传播协议,具体为:设生成模型的输入为噪声图像的秘密分享z′,z″,第一边缘服务器s1输入z′,第二边缘服务器s2输入z″,模型的第i层中,安全反卷积协议secdeconv计算结果为c′(i),c″(i),安全批量规范化协议secbn计算结果为y′(i),y″(i),安全relu协议sr计算结果为sr′(i),sr″(i),协议迭代计算输出生成图像f′,f″。

进一步地,所述sd-bp为判别模型反向传播协议,具体为:

步骤s11:安全损失函数反向传播:假设生成模型sg的参数固定,使用随机梯度下降算法sgd计算判别模型sd损失函数的梯度;分别从真实数据和随机噪声数据中取m个样本,其中,样本的秘密分享x′(i),z′(i)和x″(i),z″(i),分别发送给第一边缘服务器s1和第二边缘服务器s2,i=1,...,m;损失函数的偏导数由表示,则sd通过使用安全倒数协议secinv安全地计算损失函数的偏导数,公式如下:

步骤s12:安全激活层反向传播:判别模型sd中,设安全激活函数slr的偏导数由δslr表示,则slr的偏导数使用安全比较协议seccmp计算,α为非零参数,如下:

步骤s13:安全批量规范化层反向传播:设分别为的偏导数,分别为安全批量规范化协议secbn计算的中间结果,设梯度的符号为则参数γ和β的安全梯度计算如下:

其中,由于参数γ和β为公开参数,计算梯度之后,s1将发送给s2,同时,s2将发送给s1,用于恢复公开参数;假设学习率为ηb,γ和β使用如下算法更新:协议主要计算规范化中输入参数xi的偏导数ti=x-μb是安全前向计算的中间结果,安全反向传播协议利用中间变量ii=i′i ii″,i=1,...,m简化反向计算过程,计算过程如下:(b′i,b″i)←ssq(φ′i,φ″i);(c′i,c″i)←secmul(bi,φi);之后,输入xi的偏导数由以下算法计算:

步骤s14:安全卷积层反向传播:假设卷积层的学习率为ηc,表示网络模型中第(i,j)个神经元的偏导数,s1和s2协同执行以下协议计算权重ω和偏置值b的梯度并且更新原始参数:

进一步地,所述sg-bp为生成模型反向传播协议,因部分协议和sd-bp基本相同,故此处只给出生成模型中不同的两种安全反向传播计算,具体为:

步骤s21:安全损失函数反向传播:sg-bp中,安全损失函数的反向传播协议如下:

步骤s22:安全激活层反向传播:设δsr表示安全relu算法sr的偏导数,sr的安全偏导数计算算法如下:

与现有技术相比,本发明有以下有益效果:

1、本发明采用边缘计算,设计了一系列基于秘密共享的协议,用于保护dcgan模型训练和图像生成过程中数据和关键模型参数的隐私,该安全计算由两个边缘服务器交互执行,系统无需第三方完全可信的实体,并且协议执行期间,用户不需要与服务器交互。

2、针对隐私保护机器学习计算效率低和通信开销大的问题,本发明提供了更高效,通信开销更低的隐私保护基础计算协议。同时,基于秘密分享设计,完全避免了差分隐私方案引起的误差问题,提供了高精度的计算,缓解了深度网络模型中的误差传递问题。

3、本发明针对复杂的dcgan结构,提出了安全生成模型(sg)和安全鉴别模型(sd),并构建了安全前向传播协议,用于安全地判断图像的真假和生成图像;设计了安全反向传播协议,用于安全地训练、更新模型参数,整个过程中能够保证用户的数据和模型的双重隐私。

附图说明

图1为本发明实施例的系统架构示意图。

图2为本发明实施例的dcgan结构。

图3为本发明实施例的软件框架示意图

图4为本发明实施例的安全判别模型、安全生成模型架构。

图5为本发明实施例的安全比较协议计算逻辑示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1以及图3所示,本实施例提供了一种轻量级隐私保护生成对抗网络系统,实体包括数据提供者ds、服务提供者sp、第一边缘服务器s1以及第二边缘服务器s2,软件包括dcgan神经网络;所述dcgan神经网络包括生成模型sg以及判别模型sd;

所述数据提供者ds拥有训练图像数据(可能包含敏感信息),并为dcgan神经网络的训练提供初始参数;为了保护图像数据i和模型参数p的隐私,ds在本地将其随机拆分为两组秘密共享数据i′,i″和p′,p″,然后,ds将其分别发送给第一边缘服务器s1和第二边缘服务器s2;同时,ds负责生成随机值以满足交互式安全协议的需求,这些随机值可以离线生成,之后在在线计算阶段使用;

所述第一边缘服务器s1与第二边缘服务器s2负责执行交互式的安全计算协议;s1和s2分别从数据提供者处获得秘密共享i′,p′和i″,p″作为输入,并运行具有隐私保护的训练、生成过程,之后s1和s2分别返回训练后的隐私保护参数p′,p″和生成的图像o′,o″,并发送给服务提供者sp;

服务提供者sp接收s1和s2产生的秘密共享,并恢复dcgan的明文训练参数p和明文的生成图像o。

本发明提出的方法,即使恶意敌手能够攻击一台服务器s1(无法同时成功攻击两台服务器),依旧不能恢复原始明文数据,因为s1持有的数据均为无意义的随机秘密分享。训练过程完成后,服务提供者(sp)可以从s1和s2获得训练后的模型参数和合成图像的秘密分享,并使用加法恢复出原始数据。如图3所示,本发明的软件系统由两个模型组成:安全判别模型(securediscriminator,sd)和安全生成模型(securegenerator,sg)。通过提供真实图像或生成图像,sd用于预测输入数据是真实的还是生成的。输入随机噪声,sg能够生成图像。为了生成接近真实的图像,lp-gan采用dcgan的结构来构建sd和sg。如图4所示:为了训练sd和sg,本实施例提出了安全前向传播算法(sd-fp协议8,sg-fp协议9)和安全反向传播算法(sd-bp、sg-bp)用于保护前向、反向传播计算中的数据和模型隐私。

在本实施例中,如图2以及图4所示,所述生成模型sg包括反卷积层、批处理归一化层、relu层和全连接层;所述判别模型sd包括卷积层,批处理归一化层,leakyrelu层和全连接层;

其中,卷积层、反卷积层:卷积神经网络中,卷积运算通常用于从输入数据中提取特征。假设输入数据(矩阵)为卷积核的大小为n×n。神经元具有相同的权重wlm(l,m=0,1,...,n-1)和偏置值b,模型中第(i,j)个神经元的卷积输出为反卷积的计算类似于卷积,不同之处在于,输入矩阵x的大小需要通过填充多个0值来满足输出矩阵的需求。批处理归一化层:批量归一化操作通过调整和缩放对输入数据进行归一化处理,将神经元的激活值分布稳定为正态分布。假设输入数据为{xi}i∈[1,m],批量大小为m,可以通过以下几个步骤计算批量归一化。首先,计算输入的平均值和方差然后,将输入数据归一化为其中ε是极小量用于防止分母为0。最后,计算其中γ和β是缩放和移位参数。激活层:激活函数将非线性单元引入神经网络。在生成模型g中,神经元利用relu函数(f(x)=max(0,x))作为激活函数。在判别模型d中,使用leakyrelu(f(x)=max(x,αx),α∈(0,1))作为激活函数。全连接层:全连接的层中的神经元将前一层中的所有神经元连接起来,用于合并上层神经元中提取的特征。假设xk为上一层中第k个神经元的输入数据,ωik表示连接上一层第k个神经元和当前层第i个神经元的权重,bi表示当前层中第i个神经元的偏置值。全连接层中第i个神经元的输出为

较佳的,本实施例还提供了基于秘密分享的协议以及安全基础计算协议。具体如下:

基于秘密分享的协议采用秘密分享方案执行安全基础计算,本实施例的系统模型基于两方计算(2pc),协议由两台服务器s1和s2共同运行,同时需要预先生成多组随机数用于协议计算。符号a′和a″表示分配给两台服务器s1和s2的秘密分享(其中,a=a′ a″)。

安全加法协议:给定输入安全加法协议secadd在s1输出f1,在s2输出f2,其中f1 f2=u v。在此过程中,两台服务器仅在本地执行计算,无需交互。

安全乘法协议:安全乘法协议secmul基于beaver’striplet方案。给定输入secmul在s1输出f1,在s2输出f2,并且f1 f2=u·v。在此过程中,将生成三个随机数(a,b,c)用于保证在计算过程中没有信息泄漏。

安全自然对数协议:安全自然对数协议seclog基于麦克劳林公式,迭代地自然对数f(u)=ln(u)的近似结果。给定输入seclog在s1输出f1,在s2输出f2,当迭代达到预定义精度时,计算结果满足f1 f2≈ln(u)。

安全倒数协议:安全倒数协议secinv基于牛顿-拉普拉斯计算方案。给定输入中secinv输出f(u)=1/u的近似结果。当达到预定义的精度时,secinv终止迭代过程并在s1输出f1,在s2输出f2,其中f1 f2≈1/u。

基于秘密分享的协议仅适用于整数范围,但是机器学习过程中涉及的实数计算不能直接采用秘密共享的协议进行处理,因此,本发明的计算中首先将实数转换为整数形式,再执行安全协议。实数可以用定点数形式表示为其中是整数部分,是小数部分。本发明中,仅整数部分x参与协议计算,同时将ε固定为一个合适的值,以满足精度要求,通过选择较大ε的可以实现更高的精度管理。

安全异或协议(securexor,secxor),用于计算比特数据的异或运算结果。输入(u=u1 u2,v=v1 v2),其中s1输入u1,v1,s2输入u2,v2。执行secxor协议后,s1输出s2输出并保证协议中,si(i∈(1,2))分别计算fi=(ui vi)mod2,经推导可得:

安全或协议(secureor,secor),用于计算比特的或运算结果。输入(u=u1 u2,v=v1 v2),执行secor协议(如协议1)后,s1输出s2输出并且其中s1和s2使用安全乘法协议secmul联合计算-u·v。

安全最重要比特协议(securemostsignificantbit,secmsb)是安全比较协议的子协议。输入二进制比特序列[ul-1,...,u0]的秘密分享,secmsb协议(如协议2)输出一个序列[fl-1,...,f0],用于定位输入序列中最高的比特数字“1”的位置。假设j表示最高位的uj=1的索引,则输出中fj=1,其余位的值都为0。此外,secmsb额外输出一个比特位ζ,若输入[ul-1,...,u0]中所有的比特均为0,则ζ=0,否则ζ=1。

secmsb的算法流程如下:首先数据提供者ds生成两个随机数t′l和t″l(满足t′l t″l=1),并将随机数发送给边缘服务器s1和s2;然后,s1和s2执行安全乘法协议secmul计算一个序列[t′l,...,t′0],[t″l,...,t″0](ti=t′i t″i),此序列定位了输入[ul-1,...,u0]的最高比特位为1的比特位置j,其中[tl,...,tj 1]=[1,....,1],且[tj,...,t0]=[0,....,0];然后s1和s2分别计算fi′=t′i 1-t′i,fi″=t″i 1-t″i,序列[fl-1,...,f0]中,除了最高位j位置为1的fj=1,其余所有比特位均为0。为了确定输入的序列是否全为0,s1和s2额外计算一个标志位ζ,并且当输入全为0时,ζ=0,否则,ζ=1。

例如,若输入[ul-1,...,u0]=[00011010],secmsb计算得j=4,[tl,...,t0]=[11100000],并输出[fl-1,...,f0]=[00000000]和ζ=1。若输入[ul-1,...,u0]=[00000000],secmsb计算得[tl,...,t0]=[11111111],并输出[fl-1,...,f0]=[00000000]和ζ=0。

安全比较协议(securecomparison,seccmp)比较两个输入的大小,若u>v,seccmp协议(如协议3)输出1,若u≤v,协议输出0。由于s1和s2分别输入u1,v1和u2,v2,为了方便比较,此处将问题转换为比较a=u1-v1和b=u2-v2,可以推得,若a>b,则u>v,否则u≤v。

由于seccmp协议采用基于比特位的比较方法,协议首先使用一种比特分解方法dfc(dataformatconversion),该方法将整数分解为l位长度的二进制比特序列格式[ul-1,...,u0]。将|u|=[0,2l-1-1]分解为比特序列[ul-2,...,u0],最高比特位ul-1表示符号位,若u<0,ul-1=1,否则,ul-1=0。定义是u的无符号整数值。

seccmp协议流程如下:

(1)协议首先计算a=u1-v1和b=u2-v2的二进制比特序列表示。然后协议比较两个无符号整数

(2)为了实现比较计算,s1和s2首先调用secxor协议计算[al-1,...,a0]和[bl-1,...,b0]中不同的比特位,输出

(3)为了定位[cl-1,...,c0]中最高位为1的比特的位置,s1和s2交互运行secmsb协议计算序列[d′l-1,...,d′0]和序列[d″l-1,...,d″0](di=d′i d′i)。若a*≠b*,[dl-1,...,d0]中只有一个比特dj=1,j表示两个数从高位到低位第一个不同比特的标识;若a*=b*,[dl-1,...,d0]中所有比特均为0。

(4)s1和s2执行安全乘法协议secmul计算ei=ai·di,并分别计算用于比较a*和b*的大小,若a*>b*,则ξ=1,否则ξ=0。secmsb额外计算标识符ζ,用于确定a*是否等于b*,若a*=b*,则ζ=0,否则ζ=1。

(5)然后,s1和s2执行secor协议计算ι=al-1∨bl-1,用于判断a,b的正负,若a≥0,b≥0,则ι=0,否则ι=1。

(6)当a≠b时,s1和s2计算的结果可以比较a,b的大小。

(7)当a=b<0时,ν的结果不符合预期,边缘服务器需要进一步计算f=ν·ζ以获取正确的比较结果。

seccmp协议的计算逻辑如图5所示。假设seccmp的输入为u1=-1030,u2=583,v1=-929,v2=551(其中,u=u1 u2=-447,v=v1 v2=-378),可得a=u1-v1=-101,b=v2-u2=-32;根据dfc协议,a,b的有符号数二进制表示分别为[al-1,...,a0]=[11100101],[bl-1,...,b0]=[10100000];由于a<0,b<0,且a*>b*,可以推导出ι=1,ξ=1,算法引入变量ζ片段a=b的情况,由上可得a≠b,因此ζ=1。最终结果计算为f=ν·ζ=0·1=0,结果表示a≤b,即u≤v,这和明文数据比较结果相同。

安全平方根协议(securesquarerootprotocol,ssqrt),用于计算协议基于一种快速平方根计算方法——goldschmidt算法,和牛顿-辛普森算法相比,该方案收敛更快并且可以在相同时间内达到更高的精度。goldschmidt算法流程如下:

(1)初始化阶段:算法初始化g和h两个迭代参数,g表示的近似迭代值,h表示的近似迭代值,其中g0=uy0,h0=1/2y0,y0是的初始近似值,y0可以使用线性公式y0=αu β计算近似值,其中α=-0.8099868542和β=1.787727479是常数。

(2)迭代计算阶段:算法根据以下迭代公式计算平方根:

安全范围转换协议(securerangeconversion,src)是安全平方根协议的子协议,用于将整数转换成底数和指数的形式,并将底数转换到特定的范围中。为了快速计算平方根,输入数据需要被转换到区间[1/2,1)当中。假设2p-1≤u<2p,src协议(协议4)将u转换到区间1/2≤u·2-p<1;输入s1和s2协同计算将其转换为u1=m1·2p,u2=m2·2p。src协议流程入下:

(1)s1和s2分别在本地计算并将ai随机分成两个随机秘密分享ai′和a″i,并且保证ai∈[1/4,1/2)(i∈{1,2})。

(2)s1和将a″1和p1发送给s2,s2将a′2和p2发送给s1。

(3)s1和s2分别取p1,p2中大的值,并分别计算

可以推导出,u=m1·2p m2·2p=m·2p

安全平方根协议(improvedsecuresquareroot,ssqrt),对比现有方案,该协议在相同安全性的前提下,提高了收敛速度,在相同时间消耗条件下,可以得到更高的计算精度。协议分为三个阶段,初始化阶段,迭代阶段,结果转换阶段。ssqrt协议(协议5)流程如下:

(1)初始化阶段:s1和s2交互生成初始参数g0和h0。首先s1和s2执行src协议计算m1,m2,p,保证u1=m1·2p,u2=m2·2p;然后,s1和s2分别计算y′0′←αm1 β,h′0←1/2(αm1 β),y″0←αm2,h″0←1/2(αm2)初始化参数y0和g0;最后,s1和s2调用secmul协议计算g0←my0。

(2)迭代阶段:给定u=m·2p,此阶段中,s1和s2交互地迭代计算当迭代参数i<τ时,s1和s2共同计算3/2-gihi;第10行中,边缘服务器执行secmul协议计算迭代结果gi 1=gi(3/2-gihi)和hi 1=hi(3/2-gihi),其中,gi 1和hi 1的计算可以并行执行;迭代结束后,输出值gi为的近似值,hi为的近似值。

(3)结果转换阶段:协议的目标是计算的计算关系如下:

若p为偶数,设置a=1;若p为奇数,设置并计算最终可以计算出

安全平方根倒数协议:由于gan框架中批量规范化操作需要计算本发明设计一种安全平方根倒数协议(secureinversesquarerootcomputation,sisqrt)。在ssqrt协议(协议5)中,hi迭代计算的值,sisqrt协议基于ssqrt构造,只需要将协议5中的第14-15行替换为通过推导可得:

安全平方协议(securesquareprotocol,ssq):输入ssq(协议6)计算f(u)=u2。ssq计算流程如下:

(1)输入s1和s2调用secmul协议计算2u1v1。

(2)si计算

每个层中均包括安全计算协议,具体如下:

其中,在卷积层中,假设xij是卷积计算输入矩阵x第i行、第j列的元素;ω和b分别是n×n大小的卷积核的权重和偏移量;为了保护训练数据的隐私,首先将x随机分为两个随机秘密分享x′和x″,x=x′ x″,其中xij被分为两个随机值x′ij和x″ij,同时,将权重和偏移量分为两组随机秘密分享(ω′lm,ω″lm)和(b′,b″),其中ωlm=ω′lm ω″lm,b=b′ b″;安全卷积协议secconv计算如下:s1和s2共同计算:(a′lm,a″lm)←secmul(ωlm,xi l,j m);s1计算c′ij,s2计算c″ij:

其中,在反卷积层中,安全反卷积协议secdeconv的计算和secconv相同,不同点在于反卷积计算的输入图像中需要填充多个0以满足输出矩阵大小;

其中,在批处理归一化层中采用安全批量规范化协议secbn,设输入为xi,xi=x′i x″i,批量大小为m,协议流程如下:s1和s2分别计算批量均值:s1和s2共同计算批量方差:(a′i,a″i)←ssq(xi-μb),s1和s2共同计算规范化值首先调用sisqrt协议计算其中,ε是常数,用于确保数值稳定性,用ti=xi-μb表示标准差,调用安全乘法协议secmul计算出假设缩放、偏移参数γ,β为全局参数公开可知,前向传播时为定值,反向传播时更新,s1和s2分别计算规范化输出为:

其中,在relu层中,采用sr协议,激活层为神经网络提供非线性计算,本发明设计两种安全激活协议,分别为安全relu协议(securerelu,sr)和安全leakyrelu协议(secureleakyrelu,slr)。设输入为x,s1和s2共同执行安全比较协议seccmp判断x是否大于0,若seccmp(x,0)=1,即x>0,则sr(x)=x,否则sr(x)=0。对于第(i,j)个神经元,sr流程如下:s1和s2分别计算sr(x′ij)和sr(x″ij):

relu函数的缺点是函数只能在x>0时学习到梯度,为解决这个问题,leakyrelu在计算x≤0的情况时引入非零常量α∈(0,1),对于第(i,j)个神经元,采用slr协议,其流程如下:s1和s2分别计算slr(x′ij)和slr(x″ij):其中α∈(0,1)为非零常量;

其中,在全连接层中,全连接层中的神经元和上一层的所有神经元相连,采用安全全连接协议secfc,设全连接层的输入为第k层的输出xk,ωik表示当前层第i个神经元和前一层第k个神经元的连接权重,bi表示当前层第i个神经元的偏移量,secfc协议流程如下:s1和s2共同计算:(a′ik,a″ik)←secmul(ωik,xk),f′i=∑ka′ik bi′,fi″=∑ka″ik bi″。

上述上标’与”分别表示由无上标的数据拆分得到的两个数据。

在本实施例中,所述运行具有隐私保护的训练、生成过程具体包括以下步骤:

步骤s1:数据提供者ds生成sd和sg的模型参数θd和θg,并分别将其预处理拆分成两组秘密分享数据,分别发送给第一边缘服务器s1和第二边缘服务器s2;

步骤s2:训练判别模型sd:ds分别取m个随机噪声样本z和真实图像样本x,分别预处理拆分成两组数据秘密分享发送给s1和s2;对于输入的噪声样本,s1和s2执行安全生成模型前向传播协议sg-fp生成图像对于每个输入数据,s1和s2执行安全前向传播协议sd-fp和sg-fp,计算sd的损失函数s1和s2执行安全反向传播协议sd-bp更新sd的参数;

步骤s3:训练生成模型sg:ds取m个随机噪声样本z做预处理拆分成两组数据并分别秘密分享发送给s1和s2;对于输入的噪声样本,s1和s2执行生成模型前向传播协议sg-fp生成图像对于每张生成图像,s1和s2执行安全前向传播协议sg-fp,用于计算sg的损失函数s1和s2执行安全反向传播协议sg-bp更新sg的参数;

步骤s4:第一边缘服务器s1和第二边缘服务器s2分别返回训练后的模型参数的秘密共享给服务提供者sp。

其中,上述训练步骤的具体算法如协议7,设判别模型的参数为θd,生成模型的参数为θg;随机噪声样本为z,真实图像样本为x,生成图像为安全判别模型sd的学习率为ηd,安全生成模型sg的学习率为ηg,批量大小为m,训练样本总量为m,模型训练轮数分别为nd和ng,安全判别模型sd的前向传播和反向传播协议分别为sd-fp,sd-bp,安全生成模型sg前向传播和反向传播协议分别为sg-fp,sg-bp。

本实施例提出两种安全前向传播协议:安全判别模型前向传播协议(securesdforwardpropagation,sd-fp),安全生成模型前向传播协议(securesgforwardpropagation,sg-fp),用于完成模型前向传播的安全计算。同时,本发明为模型中不同层分别设计了安全计算协议,包括卷积层,激活层,批量规范化层,全连接层等(如上文中描述)。协议中,超参数和常数是明文形式,其他数据均为随机秘密共享,用于保护训练图像和模型的隐私。

在本实施例中,所述sd-fp为判别模型的前向传播协议,具体为:设判别模型的输入为图像的秘密分享i′,i″,其中,第一边缘服务器s1输入i′,第二边缘服务器s2输入i″,模型的第i层中,安全卷积计算协议secconv的结果为c′(i),c″(i),安全批量规范化协议secbn的计算结果为y′(i),y″(i),安全leakyrelu函数计算结果为slr′(i),slr″(i),最后,协议调用安全全连接协议secfc输出对图像的判别结果f′,f″。如协议8所示。

在本实施例中,所述sg-fp为生成模型的前向传播协议,具体为:设生成模型的输入为噪声图像的秘密分享z′,z″,第一边缘服务器s1输入z′,第二边缘服务器s2输入z″,模型的第i层中,安全反卷积协议secdeconv计算结果为c′(i),c″(i),安全批量规范化协议secbn计算结果为y′(i),y″(i),安全relu协议sr计算结果为sr′(i),sr″(i),协议迭代计算输出生成图像f′,f″。如协议9所示。

在本实施例中,所述sd-bp为判别模型反向传播协议,具体为:

步骤s11:安全损失函数反向传播:假设生成模型sg的参数固定,使用随机梯度下降算法sgd计算判别模型sd损失函数的梯度;分别从真实数据和随机噪声数据中取m个样本,其中,样本的秘密分享x′(i),z′(i)和x″(i),z″(i),分别发送给第一边缘服务器s1和第二边缘服务器s2,i=1,...,m;损失函数的偏导数由表示,则sd通过使用安全倒数协议secinv安全地计算损失函数的偏导数,公式如下:

步骤s12:安全激活层反向传播:判别模型sd中,设安全激活函数slr的偏导数由δslr表示,则slr的偏导数使用安全比较协议seccmp计算,α为非零参数,如下:

步骤s13:安全批量规范化层反向传播:设分别为的偏导数,分别为安全批量规范化协议secbn计算的中间结果,设梯度的符号为则参数γ和β的安全梯度计算如下:

其中,由于参数γ和β为公开参数,计算梯度之后,s1将发送给s2,同时,s2将发送给s1,用于恢复公开参数;假设学习率为ηb,γ和β使用如下算法更新:协议主要计算规范化中输入参数xi的偏导数ti=x-μb是安全前向计算的中间结果,安全反向传播协议利用中间变量ii=i′i i″i,i=1,...,m简化反向计算过程,计算过程如下:(b′i,b″i)←ssq(φ′i,φ″i);(c′i,c″i)←secmul(bi,φi);之后,输入xi的偏导数由以下算法计算:

步骤s14:安全卷积层反向传播:假设卷积层的学习率为ηc,表示网络模型中第(i,j)个神经元的偏导数,s1和s2协同执行以下协议计算权重ω和偏置值b的梯度并且更新原始参数:

在本实施例中,所述sg-bp为生成模型反向传播协议,因部分协议和sd-bp基本相同,故此处只给出生成模型中不同的两种安全反向传播计算,具体为:

步骤s21:安全损失函数反向传播:sg-bp中,安全损失函数的反向传播协议如下:

步骤s22:安全激活层反向传播:设δsr表示安全relu算法sr的偏导数,sr的安全偏导数计算算法如下:

综上,本实施例支持采用边缘服务器交互执行安全计算协议,并且无需完全可信的第三方实体,系统保证用于在不泄露训练数据、模型参数的条件下安全地完成机器学习计算,并且协议执行期间,用户不需要与服务器交互。其次,本框架提供高效、低通信消耗、高精度的基础计算协议,降低了复杂gan模型训练、预测计算的执行时间和数据传输量,并缓解了误差传递问题,在保护数据隐私同时提高了系统的实用性。第三,本框架支持gan网络的安全图像生成,安全图像真伪预测等功能。第四,本框架提供gan模型的安全训练方案,能够在边缘服务器完成隐私保护下的模型参数更新。最后,用于机器学习的训练数据集和模型参数均对边缘服务器保密,实现了更好的隐私保护。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。


技术特征:

1.一种轻量级隐私保护生成对抗网络系统,其特征在于,实体包括数据提供者ds、服务提供者sp、第一边缘服务器s1以及第二边缘服务器s2,软件包括lp-gan安全计算框架;所述lp-gan安全计算框架包括安全生成模型sg以及安全判别模型sd;

所述数据提供者ds拥有训练图像数据,并为dcgan神经网络的训练提供初始参数;为了保护图像数据i和模型参数p的隐私,ds在本地将其随机拆分为两组秘密共享数据i′,i″和p′,p″,然后,ds将其分别发送给第一边缘服务器s1和第二边缘服务器s2;同时,ds负责生成随机值以满足交互式安全协议的需求;

所述第一边缘服务器s1与第二边缘服务器s2负责执行交互式的安全计算协议;s1和s2分别从数据提供者处获得秘密共享i′,p′和i″,p″作为输入,并运行具有隐私保护的训练、生成协议,之后s1和s2分别返回训练后的隐私保护参数p′,p″和生成的图像o′,o″,并发送给服务提供者sp;

服务提供者sp接收s1和s2产生的秘密共享,并恢复dcgan的明文训练参数p和明文的生成图像o。

2.根据权利要求1所述的一种轻量级隐私保护生成对抗网络系统,其特征在于,所述安全生成模型sg包括反卷积层、批处理归一化层、relu层和全连接层;所述安全判别模型sd包括卷积层,批处理归一化层,leakyrelu层和全连接层;每个层中均包括安全计算协议,具体如下:

其中,在卷积层中,假设xij是卷积计算输入矩阵x第i行、第j列的元素;ω和b分别是n×n大小的卷积核的权重和偏移量;为了保护训练数据的隐私,首先将x随机分为两个随机秘密分享x′和x″,x=x′ x″,其中xij被分为两个随机值x′ij和x″ij,同时,将权重和偏移量分为两组随机秘密分享(ω′lm,ω″lm)和(b′,b″),其中ωlm=ω′lm ω″lm,b=b′ b″;安全卷积协议secconv计算如下:s1和s2共同计算:(a′lm,a″lm)←secmul(ωlm,xi l,j m);s1计算c′ij,s2计算c″ij:

其中,在反卷积层中,安全反卷积协议secdeconv的计算和secconv相同,不同点在于反卷积计算的输入图像中需要填充多个0以满足输出矩阵大小;

其中,在批处理归一化层中采用安全批量规范化协议secbn,设输入为xi,xi=x′i x″i,批量大小为m,协议流程如下:s1和s2分别计算批量均值:s1和s2共同计算批量方差:(a′i,a″i)←ssq(xi-μb),s1和s2共同计算规范化值首先调用sisqrt协议计算其中,ε是常数,用于确保数值稳定性,用ti=xi-μb表示标准差,调用安全乘法协议secmul计算出假设缩放、偏移参数γ,β为全局参数公开可知,前向传播时为定值,反向传播时更新,s1和s2分别计算规范化输出为:

其中,在relu层中,采用sr协议,其流程如下:s1和s2分别计算sr(x′ij)和sr(x″ij):

其中,在leakyrelu层中,采用slr协议,其流程如下:s1和s2分别计算slr(x′ij)和slr(x″ij):其中α∈(0,1)为非零常量;

其中,在全连接层中,采用安全全连接协议secfc,设全连接层的输入为第k层的输出xk,ωik表示当前层第i个神经元和前一层第k个神经元的连接权重,bi表示当前层第i个神经元的偏移量,secfc协议流程如下:s1和s2共同计算:(a′ik,a″ik)←secmul(ωik,xk),fi′=∑ka′ik bi′,fi″=∑ka″ik bi″。

上述上标’与”分别表示由无上标的数据拆分得到的两个数据。

3.根据权利要求2所述的一种轻量级隐私保护生成对抗网络系统,其特征在于,所述运行具有隐私保护的训练、生成过程具体包括以下步骤:

步骤s1:数据提供者ds生成sd和sg的模型参数θd和θg,并分别将其预处理拆分成两组秘密分享数据,分别发送给第一边缘服务器s1和第二边缘服务器s2;

步骤s2:训练判别模型sd:ds分别取m个随机噪声样本z和真实图像样本x,分别预处理拆分成两组数据秘密分享发送给s1和s2;对于输入的噪声样本,s1和s2执行安全生成模型前向传播协议sg-fp生成图像对于每个输入数据,s1和s2执行安全前向传播协议sd-fp和sg-fp,计算sd的损失函数s1和s2执行安全反向传播协议sd-bp更新sd的参数;

步骤s3:训练生成模型sg:ds取m个随机噪声样本z做预处理拆分成两组数据并分别秘密分享发送给s1和s2;对于输入的噪声样本,s1和s2执行生成模型前向传播协议sg-fp生成图像对于每张生成图像,s1和s2执行安全前向传播协议sg-fp,用于计算sg的损失函数s1和s2执行安全反向传播协议sg-bp更新sg的参数;

步骤s4:第一边缘服务器s1和第二边缘服务器s2分别返回训练后的模型参数的秘密共享给服务提供者sp。

4.根据权利要求3所述的一种轻量级隐私保护生成对抗网络系统,其特征在于,所述sd-fp为判别模型的前向传播协议,具体为:设判别模型的输入为图像的秘密分享i′,i″,其中,第一边缘服务器s1输入i′,第二边缘服务器s2输入i″,模型的第i层中,安全卷积计算协议secconv的结果为c′(i),c″(i),安全批量规范化协议secbn的计算结果为y′(i),y″(i),安全leakyrelu函数计算结果为slr′(i),slr″(i),最后,协议调用安全全连接协议secfc输出对图像的判别结果f′,f″。

5.根据权利要求3所述的一种轻量级隐私保护生成对抗网络系统,其特征在于,所述sg-fp为生成模型的前向传播协议,具体为:设生成模型的输入为噪声图像的秘密分享z′,z″,第一边缘服务器s1输入z′,第二边缘服务器s2输入z″,模型的第i层中,安全反卷积协议secdeconv计算结果为c′(i),c″(i),安全批量规范化协议secbn计算结果为y′(i),y″(i),安全relu协议sr计算结果为sr′(i),sr″(i),协议迭代计算输出生成图像f′,f″。

6.根据权利要求3所述的一种轻量级隐私保护生成对抗网络系统,其特征在于,所述sd-bp为判别模型反向传播协议,具体为:

步骤s11:安全损失函数反向传播:假设生成模型sg的参数固定,使用随机梯度下降算法sgd计算判别模型sd损失函数的梯度;分别从真实数据和随机噪声数据中取m个样本,其中,样本的秘密分享x′(i),z′(i)和x″(i),z″(i),分别发送给第一边缘服务器s1和第二边缘服务器s2,i=1,...,m;损失函数的偏导数由表示,则sd通过使用安全倒数协议secinv安全地计算损失函数的偏导数,公式如下:

步骤s12:安全激活层反向传播:判别模型sd中,设安全激活函数slr的偏导数由δslr表示,则slr的偏导数使用安全比较协议seccmp计算,α为非零参数,如下:

步骤s13:安全批量规范化层反向传播:设分别为xi,yi,的偏导数,xi,yi,分别为安全批量规范化协议secbn计算的中间结果,设梯度的符号为▽,则参数γ和β的安全梯度计算如下:

其中,由于参数γ和β为公开参数,计算梯度之后,s1将▽γ′,▽β′发送给s2,同时,s2将▽γ″,▽β″发送给s1,用于恢复公开参数;假设学习率为ηb,γ和β使用如下算法更新:γnew=γ-ηb·▽γ,βnew=β-ηb·▽β;协议主要计算规范化中输入参数xi的偏导数ti=x-μb是安全前向计算的中间结果,安全反向传播协议利用中间变量ii=ii′ ii″,i=1,...,m简化反向计算过程,计算过程如下:(bi′,b″i)←ssq(φ′i,φ″i);(c′i,c″i)←secmul(bi,φi);之后,输入xi的偏导数由以下算法计算:

步骤s14:安全卷积层反向传播:假设卷积层的学习率为ηc,表示网络模型中第(i,j)个神经元的偏导数,s1和s2协同执行以下协议计算权重ω和偏置值b的梯度▽ω=▽ω′ ▽ω″,▽b=▽b′ ▽b″,并且更新原始参数:ω′lm(new)=ω′lm-ηc·▽ω′lm;ω″lm(new)=ω″lm-ηc·▽ω″lm;b′(new)=b′-ηc·▽b′;b″(new)=b″-ηc·▽b″。

7.根据权利要求3所述的一种轻量级隐私保护生成对抗网络系统,其特征在于,所述sg-bp为生成模型反向传播协议,因部分协议和sd-bp基本相同,故此处只给出生成模型中不同的两种安全反向传播计算,具体为:

步骤s21:安全损失函数反向传播:sg-bp中,安全损失函数的反向传播协议如下:

步骤s22:安全激活层反向传播:设δsr表示安全relu算法sr的偏导数,sr的安全偏导数计算算法如下:

技术总结
本发明涉及一种轻量级隐私保护生成对抗网络系统,实体包括数据提供者DS、服务提供者SP、第一边缘服务器S1以及第二边缘服务器S2,软件包括LP‑GAN安全计算框架;所述LP‑GAN安全计算框架包括安全生成模型SG以及安全判别模型SD。本发明能够保证用户的数据和模型的双重隐私。

技术研发人员:杨旸;穆轲;郭文忠;刘西蒙;程红举;刘耿耿
受保护的技术使用者:福州大学
技术研发日:2020.01.20
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-52616.html

最新回复(0)