买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明公开了一种基于函数秘密共享的隐私保护神经网络训练方法及装置,来支持实用的安全神经网络训练,该框架具有较小的常数轮在线通信复杂度,在不降低模型精度的情况下降低离线通信成本,同时离线阶段通过使用安全两方计算友好的伪随机生成器,采用分布式比较函数密钥生成方案来取代可信第三方。本发明通过提出了具有最小密钥大小的通信优化的分布式比较函数,无需较大函数秘密共享密钥量;通过设计离线阶段,在离线阶段生成相关随机性用于在线阶段函数计算,使得在线阶段只需1轮通信即可,从而大大减少通信量。
主权项:1.基于函数秘密共享的隐私保护神经网络训练方法,其特征在于,包括下述步骤:给定训练集D={x1,y1,…,xN,yN},其中xi=xi1,xi2,…,xidT,yi=yi1,yi2,…,yimT,其中N表示训练样本的数量,上标T表示矩阵或者向量的转置,对于拥有d个输入神经元、m个输出神经元和L’-1个隐含层的多层前馈神经网络,训练具体流程如下:S1、参与方P0和P1确定批量大小|B|,并基于各自数据将训练数据D={x1,y1,…,xN,yN}划分成t个批量训练数据,记作XB1,YB1,XB2,YB2,…,XBt,YBt,其中N=|B|·t;随后,P0将自己持有的批量训练数据通过加性算术秘密共享分发给P1,P1将自己持有的批量训练数据通过加性算术秘密共享分发给P0,使得P0和P1分别持有训练数据秘密份额[XB1]0,[YB1]0,[XB2]0,[YB2]0,…,[XBt]0,YBt]0和[XB1]1,[YB1]1,[XB2]1,[YB2]1,…,[XBt]1,YBt]1,其中[XBj]b,[YBj]b,j=1,2,…,t表示批量训练数据的秘密份额,秘密份额用符号[·]b表示,b表示参与方索引,b=0代表是P0的秘密份额,b=1代表是P1的秘密份额,当省略下标时,表示需要同时使用的秘密份额;S2、参与方P0和P1首先将各自的神经网络权重参数[W]0和[W]1初始化为0,并根据步骤S1中的约定共同选取一个批量训练数据[XBj],[YBj],j=1,2,…,t,从批量训练数据[XBj],[YBj]中选取一个样本[xi],[yi],执行下面步骤设定轮次:S21、前向传播阶段:对于b=0,1,参与方Pb将初始输入设为[x0]b=[xi]b,对l=1,2,…,L’,L’为神经网络总层数,迭代计算[zl]b=MatMulWl,xl-1,和[xl]b=ReLUzl;其中Wl为第l层的神经网络权重参数,其中MatMul·为安全乘法子协议,其计算两个秘密份额形式的矩阵或者向量的乘积;ReLU•为安全ReLU子协议,其计算秘密份额形式的矩阵或者向量中所有元素的ReLU值,元素x的ReLU值等于max0,x,其中max0,x表示0和x的最大值;所述安全乘法子协议具体为:对于b=0,1,参与方Pb持有秘密份额[X]b,[Y1]b,…,[Yk]b,离线阶段生成的相关三元组{Aj’,{Bj’,Cj’}j’=1,…,k},其中Aj’为d1×d2矩阵,Bj’为d2×d3矩阵,Cj’为d1×d3矩阵,且满足Cj’=Aj’×Bj’;随后,参与方Pb本地计算秘密份额[X-A]b,[Y1-B1]b,…,[Yk-Bk]b,并将其发送给参与方P1-b,参与方P0和P1重构得到X-Aj’,Y1-B1,…,Yk-Bk;最后,对于j’=1到k,Pb本地计算[Zj’]b=b•X-Aj’Yj’-Bj’+X-Aj’[Bj’]b+[Aj’]bYj’-Bj’+[Cj’]b得到秘密份额[Zj’]b,…,[Zk]b;S22、反向传播阶段:对于b=0,1,参与方Pb令预测输出[]=[xL’],计算输出层误差[δL’]b←Hadamard-yi,DReLUzL’,然后计算隐含层误差:[δil’]b←HadamProdMatMulWl’+1T,δil’+1,DReLUzl’;其中l’=L’-1,…,1,Hadamard•为安全Hadamard积子协议,其计算两个秘密份额形式的矩阵或者向量的逐元素乘积,也即对应元素直接相乘;DReLU•为安全DReLU子协议,其计算秘密份额形式的矩阵或者向量中所有元素的DReLU值,元素x的DReLU值等于1{x≥0},其中1{x≥0}表示x≥0时输出值为1,否则为0;所述安全Hadamard积子协议具体为:定义比特整数乘法协议BitXA•,BitXAy,x的具体计算流程如下:给定n比特长的输入x∈{0,1}n和1比特长的输入y∈{0,1},参与方P0和P1分别持有秘密份额[x]0,[y]0和[x]1,[y]1,并执行下述的离线阶段和在线阶段;H1、离线阶段:P0,P1生成相关随机性,步骤如下:H11、Pb随机采样,然后P0和P1按照下面步骤将其转换成对应秘密份额[δy]b∈{0,1}n:H111、P0令,[f]0=0,P1令[e]1=0,;H112、P0和P1调用安全乘法子协议计算[ef]0,[ef]1←MatMul[e]b,[f]b,其中MatMul[e]b,[f]b表示P0和P1分别以[e]0,[f]0和[e]1,[f]1作为安全乘法子协议MatMul•的输入,最后P0,P1分别获得输出[ef]0,[ef]1;H113、Pb计算[δy]b=[e]b+[f]b-2•[ef]b;H12、Pb随机采样[δx]b∈{0,1}n,并计算[δz]0,[δz]1←MatMul[δx],[δy];H13、经过上述步骤,P0和P1分别持有,[δx]0,[δy]0,[δz]0和,[δx]1,[δy]1,[δz]1;H2、在线阶段:P0,P1基于离线阶段的相关随机性进行比特-整数乘法运算,步骤如下:H21、Pb在本地计算[x]b+[δx]b,,其中⊕表示异或运算,并将其发送给P1-b;H22、Pb重构Δx=x+δx,,并设Δy’=Δy,其中Δy’∈{0,1}n;H23、Pb在本地计算[z]b=b•Δy’•Δx+[δy]b•Δx-2•Δy’•Δx•[δy]b-Δy’•[δx]b-[δz]b+2•Δy’•[δz]b;将针对标量输入的比特整数乘法协议BitXA•转换成向量形式,即得到安全Hadamard积子协议Hadamard•;所述安全DReLU子协议具体计算步骤如下:假设有参与方P0和P1分别持有秘密份额[x]0和[x]1,其计算得到秘密份额[v]0,[v]1满足[v]0⊕[v]1=1{x≥0},其中1{x≥0}表示x≥0其值为1,否则为0,具体如下:D1、在离线阶段,可信第三方生成函数秘密共享密钥,并发送给P0和P1,步骤如下:D11、计算k01,k11←GennComp1λ,r1in,r2in,rout,其中上标Comp表示比较函数,下标n表示输入长度,1λ为安全参数,r1in,r2in分别表示两条输入值的掩码,rout表示一条输出值的掩码,用于在不泄露x的情况下对元素x和0进行比较,输出值为x和0的比较结果;D12、将k01,[r1in]0,[r2in]0,[rout]0和k11,[r1in]1,[r2in]1,[rout]1分别发送给P0和P1;D2、在在线阶段,P0和P1计算得到输出,步骤如下:D21、Pb本地计算[x+r1in]b=[x]b+[r1in]b,并将其发送给P1-b;D22、Pb本地重构得到x+r1in;D23、Pb本地计算vb←b⊕EvalnCompb,kb1,x+r1in,r2in⊕[rout]b;其中b表示参与方索引,kb1表示GennComp1λ,r1in,r2in,rout的输出值,EvalnComp利用参与方索引b和对应的函数秘密共享密钥kb1来计算元素x和0进行比较的结果,在计算过程中,以x和0的掩蔽值x+r1in,r2in作为输入来产生x和0的比较结果且保证计算过程中不会泄露的值,并采用[rout]b和比较结果进行异或的方式以保证输出vb的隐私;S23、梯度下降阶段,对l=1,2,…,L’,b=0,1,参与方Pb计算;S3、最后,P0将神经网络权重参数[W]0=[W1]0,[W2]0,…,[WL’]0发送给P1,将神经网络权重参数[W]1=[W1]1,[W2]1,…,[WL’]1发送给P1,然后P0和P1各自在本地计算W=[W]0+[W]1,重构神经网络权重参数W。
全文数据:
权利要求:
百度查询: 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于函数秘密共享的隐私保护神经网络训练方法及装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。