CN113591942B - 大规模数据的密文机器学习模型训练方法 - Google Patents

大规模数据的密文机器学习模型训练方法 Download PDF

Info

Publication number
CN113591942B
CN113591942B CN202110787099.4A CN202110787099A CN113591942B CN 113591942 B CN113591942 B CN 113591942B CN 202110787099 A CN202110787099 A CN 202110787099A CN 113591942 B CN113591942 B CN 113591942B
Authority
CN
China
Prior art keywords
ciphertext
matrix
calculation
training
scale data
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
CN202110787099.4A
Other languages
English (en)
Other versions
CN113591942A (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.)
CETC 30 Research Institute
Original Assignee
CETC 30 Research Institute
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 CETC 30 Research Institute filed Critical CETC 30 Research Institute
Priority to CN202110787099.4A priority Critical patent/CN113591942B/zh
Publication of CN113591942A publication Critical patent/CN113591942A/zh
Application granted granted Critical
Publication of CN113591942B publication Critical patent/CN113591942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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
    • 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 Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种大规模数据的密文机器学习模型训练方法,在基于全同态加密的训练中使用大规模数据,对大规模数据集进行分块加密,并对分块的密文进行bootstrapping使密文噪音下降;所述分块加密的方法包括小批量梯度下降法,根据打包密文中的槽数来设置小批量处理块的大小,从而最大限度地利用打包密文的容量;并采用NAG即内斯特罗夫加速梯度作为梯度下降优化方法进行优化;在进行逻辑回归时,使用最小二乘拟合方法来近似激活函数,从而把非线性的计算转为线性的计算。本发明避免了使用在同态加密计算中昂贵的某些计算类型,该模型训练方法是适合于全同态计算的明文算法。

Description

大规模数据的密文机器学习模型训练方法
技术领域
本发明涉及电数字数据处理技术领域,尤其涉及一种大规模数据的密文机器学习模型训练方法。
背景技术
基于全同态加密数据的机器学习是一种分析私有和敏感数据的加密方法,同时保持隐私。在训练阶段,它输入一个加密的训练数据并输出一个加密的模型,而不需要解密。在预测阶段,采用加密模型对新的加密数据进行预测。在每个阶段都不需要解密密钥,因此最终保证了数据隐私。它在金融、教育、基因组学和医学等领域有着广泛的应用,这些领域都有敏感的私人数据。
现有的基于全同态加密数据的机器学习库有基于小规模的和大规模的数据集的,存在以下的不足。比如在小规模数据集上运行的库只能做有限次的迭代训练,所以不能达到有效的学习率精度。而在大规模的上运行的库可以做足够多次的模型训练,到达一定的学习率,但往往需要很久的训练时间。而且由于他们是基于C++编写的库,所以在数据集处理方面存在灵活性差的问题,对于一些程序员来说入门比较困难。
发明内容
为了解决上述问题,本发明提出一种大规模数据的密文机器学习模型训练方法,通过避免使用在同态加密计算中昂贵的某些计算类型,设计了适合于全同态计算的明文算法。
本发明采用的技术方案如下:
一种大规模数据的密文机器学习模型训练方法,包括:
在基于全同态加密的训练中使用大规模数据,对大规模数据集进行分块加密,并对分块的密文进行bootstrapping使密文噪音下降;所述分块加密的方法包括小批量梯度下降法,根据打包密文中的槽数来设置小批量处理块的大小,从而最大限度地利用打包密文的容量;并采用NAG即内斯特罗夫加速梯度作为梯度下降优化方法进行优化;
在进行逻辑回归时,使用最小二乘拟合方法来近似激活函数,从而把非线性的计算转为线性的计算。
进一步的,具有适合于全同态加密的逻辑回归基线方法,包括以下步骤:
S101.初始化权重向量:初始化权重向量ω和ν为零向量;
S102.使用小批量梯度下降法进行分块:按顺序或随机选择一个小批量训练集{Zi},其中
Figure BDA0003159430400000021
m为小批量处理块的大小,f为特征数;训练集{Zi}的样本zi被构造为
Figure BDA0003159430400000022
其中yi′=2yi-1∈{-1,1},xi和yi分别是原始输入样本和标签值;
S103.使用最小二乘拟合方法来近似sigmoid函数:令a=Zi·ν,bj=σ′(aj),其中σ′为sigmoid函数的多项式近似,j∈[1,...,m];
S104.使用NAG方法作为梯度下降优化方法进行优化:
Figure BDA0003159430400000023
ω+=ν-γ·Δ
ν+=(1-η)·ω++η·ω
其中,γ和η为参数,并令ω=ω+,ν=ν+
S105.循环迭代并输出最终的权重向量:重复步骤S102~S104,迭代K次后输出权重向量ω和ν。
进一步的,训练集的分割和加密方法包括以下步骤:
S201.假设训练集{xi,j}由n个样本和f个特征数组成,将这些数据视为一个包括目标{yi}的n×f矩阵Z包括目标,如下所示:
Figure BDA0003159430400000031
其中,Z[i][0]=yi并且Z[i][j+1]=yi·xi,j,0≤i<n,0≤j<f–1;
S202.将矩阵Z分成多个m×g子矩阵Zi,j,如下所示:
Figure BDA0003159430400000032
其中,0≤i<n/m,0≤j<f/g;
S203.将子矩阵Zi,j打包成一个单个密文:利用最大的密文槽N/2来设置m和g,即m×g=N/2,并将g设置为与bootstrapping并行化的权重向量的分割大小相同;
S204.去加密Zi,j成一个单独的密文:先将Zi,j表示成一个向量pi,j
Figure BDA0003159430400000033
再将向量pi,j加密为:
encZ[i][j]=encrypt(pi,j;Δz)。
进一步的,对权重向量进行划分和加密,包括以下步骤:
S301.将权重向量ω和ν分成多个子向量ωi和νi,以实现bootstrapping并行化;
S302.构造矩阵Wi和Vi,每个矩阵由m个重复的子向量ωi和νi组成,如下所示:
Figure BDA0003159430400000041
Figure BDA0003159430400000042
S303.用encW[i]和encV[i]分别来表示矩阵Wi和Vi的加密,并初始化为零向量的加密。
进一步的,通过向量的迭代循环方法,对逻辑回归基线方法进行优化,所述向量的迭代循环方法包括以下步骤:
S401.输入矩阵Zj,Wj和Vj,其中0≤j<f/g;
S402.计算Zj和Vj的哈达玛积:
Figure BDA0003159430400000043
S403.计算Mj的列向量的和:Mj=SumColVec(Mj);
S404.使用sigmoid函数的最小二乘拟合多项式逼近:令
Figure BDA0003159430400000044
计算
Figure BDA0003159430400000045
其中C1,C2,C3表示分别由0.5、0.15和0.0015重复组成的m×g矩阵,M°3表示按位取幂;
S405.计算S和Zj的哈达玛积:
Figure BDA0003159430400000046
S406.计算Sj的行向量的和:Δj=SumRolVec(Sj);
S407.使用NAG方法进行优化:
Figure BDA0003159430400000047
Figure BDA0003159430400000048
其中γ和η为参数;
S408.输出矩阵Wj +和Vj +,其中0≤j<f/g。
进一步的,计算行向量的和方法包括以下步骤:
S501.对于
Figure BDA0003159430400000051
令Lroti(A)为将A的每个元素向左旋转i位得到的矩阵;
S502.初始化R=A,递归log2g次计算
Figure BDA0003159430400000052
即A的行向量之和SumRolVec(A)为:
Figure BDA0003159430400000053
进一步的,计算列向量的和方法包括以下步骤:
S601.对于
Figure BDA0003159430400000054
令Lroti(A)为将A的每个元素向左旋转i位得到的矩阵;
S602.初始化R=A,递归计算下面的循环:
Figure BDA0003159430400000055
等式右侧的矩阵的第一列是A的列向量之和,即递归log2g次计算
Figure BDA0003159430400000056
S603.计算
Figure BDA0003159430400000058
来清除垃圾列,即除了第一列外其他列都不要,其中D={Di,j}中若j=0,则Di,j=1,否则Di,j=0;
S604.通过rotation-and-addition操作来复制第一列,即递归log2g次计算
Figure BDA0003159430400000057
便得到列向量的和SumColVec(A):
Figure BDA0003159430400000061
进一步的,通过最小化乘法深度优化向量的迭代循环方法,包括以下步骤:
S701.输入矩阵Zj,Wj和Vj,其中0≤j<f/g,计算
Figure BDA0003159430400000062
Figure BDA0003159430400000063
以及
Figure BDA0003159430400000064
其中c1=0.5,c2=0.15,c3=0.0015均为最小二乘拟合多项式系数;
S702.计算M=∑j(SumColVec(Mj));
S703.计算
Figure BDA0003159430400000065
Figure BDA0003159430400000066
S704.计算
Figure BDA0003159430400000067
和Wj +=Vj+SumRowVec(G);
S705.计算
Figure BDA0003159430400000068
输出矩阵Wj +和Vj +
进一步的,通过对同态运算的顺序进行重新排序,进一步优化向量的迭代循环方法,使噪声最小:
假设要将两个密文c1=Enc(m1)和c2=Enc(m2)相乘,并旋转相乘结果;令
Figure BDA0003159430400000069
一种普通的计算方法将有以下计算顺序:
c3=Mult(Enc(m1),Enc(m2))=Enc(m3·Δ+∈1)
c4=Rescale(c3,Δ)=Enc(m3+∈1/Δ+∈2)
c5=Rotate(c4,i)=Enc(Lroti(m3)+∈1/Δ+∈2+∈3)
其中Δ为比例因素,∈1,∈2,∈3为噪音,Rescale为重缩放操作,Rotate为旋转操作;
通过调整计算顺序来降低最终的噪声,即交换Rescale操作和Rotate操作,计算顺序如下:
c3=Mult(Enc(m1),Enc(m2))=Enc(m3·Δ+∈1)
c′4=Rotate(c3,i)=Enc(Lroti(m3)·Δ+∈1+∈2)
c′5=Rescale(c′4,Δ)=Enc(Lroti(m3)+(∈1+∈2)/Δ+∈3)
最后噪音从∈1/Δ+∈2+∈3降低为(∈1+∈2)/Δ+∈3,由于∈2<<Δ,这个优化有效移除了∈2
本发明的有益效果在于:
(1)全同态加密在生成密钥、公钥、加密明文、密文计算相对用时较长,在大规模训练时,需要迭代的次数很多才能到达一定的准确率,而传统的全同态加密的密文计算次数有限。为了增加密文计算的次数从而增加训练的次数,本发明使用了bootstrapping技术。
(2)由于对密文不断进行计算时,会产生噪音,当噪音积累到一定程度时,会导致解密失败,所以要对密文进行bootstrapping使密文噪音下降。但是bootstrapping是耗时很久的操作,在大规模数据集上使用时间就变得更久。本发明对大规模数据集进行了分块加密,对分块的密文进行bootstrapping,具体使用小批量梯度下降法,根据打包密文中的槽数来设置小型批处理的大小,从而最大限度地利用打包密文的容量。
(3)本发明采用Nesterov Accelerated Gradient(NAG)作为梯度下降优化方法。在各种优化方法中选择NAG,因为它提供了良好的优化性能,而不使用在同态加密中昂贵的除法操作。
(4)逻辑回归中需要用到激活函数,它是一种非线性的计算,而在全同态加密的密文计算使用非线性计算是非常昂贵的。本发明使用最小二乘拟合方法来近似激活函数,从而把非线性的计算转为线性的计算。
(5)本发明对包含196个特征的990,000个样本的大规模数据进行了测试。实验表明,在一台机器上可以在约为5小时获得一个具有足够准确率(99.96%)和AUC的加密模型。本发明还在公共MNIST数据集上测试了算法,学习一个加密模型需要大约1小时,准确率为96.4%。此外在HHCP的论文中,测试了样本数为42万的训练集和82万的验证集上经过200次迭代用时约为17.6个小时。而本发明在总样本数为99万的训练集和1万的验证集上经过170次迭代用时约为5.3个小时。
附图说明
图1是Sigmoid函数及其最小二乘拟合多项式和泰勒展开;
图2是实施例4中利用深度最小化方法优化向量迭代循环方法的示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
全同态加密在生成密钥、公钥、加密明文、密文计算相对用时较长,如何在此基础上对大规模数据集进行逻辑回归,并且能保证一定的效率,无疑是一大难题。在大规模训练时,需要迭代的次数很多才能到达一定的准确率,而传统的全同态加密的密文计算次数有限。为了增加密文计算的次数从而增加训练的次数,所以需要使用bootstrapping技术。
然而对密文不断进行计算时,会产生噪音,当噪音积累到一定程度时,会导致解密失败,所以要对密文进行bootstrapping使密文噪音下降。但是bootstrapping是耗时很久的操作,在大规模数据集上使用时间就变得更久。
因此,本实施例提供了一种大规模数据的密文机器学习模型训练方法,对大规模数据集进行了分块加密,对分块的密文进行bootstrapping。具体的,由于随机梯度下降法(Stochastic Gradient Descent)不能充分利用密文的最大容量,因此不考虑随机梯度下降法。此外,不考虑批量梯度下降法(Batch Gradient Descent),因为当训练数据集很大时,每次迭代需要太多的密文。所以本实施例使用小批量梯度下降法,根据打包密文中的槽数来设置小型批处理的大小,从而最大限度地利用打包密文的容量。
优选的,本实施例采用NAG(Nesterov Accelerated Gradient,内斯特罗夫加速梯度)作为梯度下降优化方法。在各种优化方法中选择NAG,因为它提供了良好的优化性能,而不使用在同态加密中昂贵的除法操作。NAG的表达式如下:
ωi+1=νi-γ·Δωl(νi)
νi+1=(1-η)·ωi+1+η·ωi
其中ωj和νi代表两个权重向量,在每次迭代i中更新,Δωl(νi)是对数似然函数的梯度,γ和η是参数。
此外,由于逻辑回归中需要用到激活函数,它是一种非线性的计算,而在全同态加密的密文计算使用非线性计算是非常昂贵的。因此,本实施例选择使用最小二乘拟合方法来近似激活函数,从而把非线性的计算转为线性的计算。
逻辑回归训练的基本步骤是应用激活函数,比如sigmoid函数
Figure BDA0003159430400000101
因为在全同态计算中使用非线性计算是非常昂贵的,我们用它的低阶多项式近似算法σ′作为替代,使用最小二乘拟合方法来近似sigmoid函数。最小二乘拟合多项式在给定的区间内提供了一个充分的逼近。例如,图1绘制了原始的sigmoid函数即曲线A,它在区间[-8,8]内的最小二乘拟合多项式(3阶)即曲线B,以及它在x=0处的泰勒展开式(3阶)即曲线C。注意,泰勒多项式只在给定的点附近提供精确的近似,而最小二乘拟合多项式在更大的范围内提供了良好的近似。
实施例2
本实施例在实施例1的基础上:
本实施例提供了一种大规模数据的密文机器学习模型训练方法,其具有适合于全同态加密的逻辑回归基线方法,包括以下步骤:
S101.初始化权重向量:初始化权重向量ω和ν为零向量;
S102.使用小批量梯度下降法进行分块:按顺序或随机选择一个小批量训练集{Zi},其中
Figure BDA0003159430400000102
m为小批量处理块的大小,f为特征数;训练集{Zi}的样本zi被构造为
Figure BDA0003159430400000103
其中yi′=2yi-1∈{-1,1},xi和yi分别是原始输入样本和标签值;
S103.使用最小二乘拟合方法来近似sigmoid函数:令a=Zi·ν,bj=σ′(aj),其中σ′为sigmoid函数的多项式近似,j∈[1,...,m];
S104.使用NAG方法作为梯度下降优化方法进行优化:
Figure BDA0003159430400000104
ω+=ν-γ·Δ
ν+=(1-η)·ω++η·ω
其中,γ和η为参数,并令ω=ω+,ν=ν+
S105.循环迭代并输出最终的权重向量:重复步骤S102~S104,迭代K次后输出权重向量ω和ν。
实施例3
本实施例在实施例2的基础上:
本实施例提供的一种大规模数据的密文机器学习模型训练方法,对实施例2的逻辑回归基线方法进行了优化,使其能够在同态加密中针对大量加密数据进行计算。具体来说,优化了主迭代循环的主体。从概念上讲,使用了同态SIMD操作的向量化。
首先定义一些符号,对于两个矩阵A和B,用A+B和
Figure BDA0003159430400000113
分别表示相加和按位相乘(例如:哈达玛积),用A°k表示按位取幂。
(1)训练集的分割和加密,包括以下步骤:
S201.假设训练集{xi,j}由n个样本和f个特征数组成,将这些数据视为一个包括目标{yi}的n×f矩阵Z包括目标,如下所示:
Figure BDA0003159430400000111
其中,Z[i][0]=yi并且Z[i][j+1]=yi·xi,j,0≤i<n,0≤j<f–1;
S202.将矩阵Z分成多个m×g子矩阵Zi,j,如下所示:
Figure BDA0003159430400000112
其中,0≤i<n/m,0≤j<f/g;
S203.将子矩阵Zi,j打包成一个单个密文:利用最大的密文槽N/2来设置m和g,即m×g=N/2,并将g设置为与bootstrapping并行化的权重向量的分割大小相同;
S204.去加密Zi,j成一个单独的密文:先将Zi,j表示成一个向量pi,j
Figure BDA0003159430400000121
再将向量pi,j加密为:
encZ[i][j]=encrypt(pi,j;Δz)。
(2)权重向量的划分和加密,包括以下步骤:
S301.由于NAG优化,逻辑回归基线方法中有两个大小为f的权重向量ω和ν,将权重向量ω和ν分成多个子向量ωi和νi,以实现bootstrapping并行化;
S302.构造矩阵Wi和Vi,每个矩阵由m个重复的子向量ωi和νi组成,如下所示:
Figure BDA0003159430400000122
Figure BDA0003159430400000123
S303.用encW[i]和encV[i]分别来表示矩阵Wi和Vi的加密,并初始化为零向量的加密。
(3)内积的同态计算方式
逻辑回归的基本运算之一是内积。如果有m个样本和g个特征,那么对于每一次迭代,都要计算大小为g的向量上的m个内积,其中每个内积都需要进行g2次乘法和g-1次加法运算,即m·(g2·mult+g·add)次运算。现在将展示一个优化后的,批内积方法使用SIMD-addition,SIMD-multiplication和旋转操作,只需要两个SIMD-multiplication操作和2log2grotation-and-SIMD-addition操作计算m个内积,即总共2·SIMDmult+2log2g·(rot+SIMDadd)次。与非SIMD操作相比,SIMD操作可以在不增加成本的情况下提供高吞吐量,因此这种批处理方法在打包的同态计算中非常有效。
批内积方法如下:假设要计算Z·ν,其中
Figure BDA0003159430400000131
假设g是2的幂指数。首先,构造一个矩阵V,它由m个重复行向量ν组成。然后可以计算出哈达玛积
Figure BDA0003159430400000132
进行单个SIMD-multiplication如下:
Figure BDA0003159430400000133
具体的,计算行向量的和方法包括以下步骤:
S501.对于
Figure BDA0003159430400000134
令Lroti(A)为将A的每个元素向左旋转i位得到的矩阵;
S502.初始化R=A,递归log2g次计算
Figure BDA0003159430400000135
即A的行向量之和SumRolVec(A)为:
Figure BDA0003159430400000141
具体的,计算列向量的和方法包括以下步骤:
S601.对于
Figure BDA0003159430400000142
令Lroti(A)为将A的每个元素向左旋转i位得到的矩阵;
S602.初始化R=A,递归计算下面的循环:
Figure BDA0003159430400000143
等式右侧的矩阵的第一列是A的列向量之和,即递归log2g次计算
Figure BDA0003159430400000144
S603.计算
Figure BDA0003159430400000147
来清除垃圾列,即除了第一列外其他列都不要,其中D={Di,j}中若j=0,则Di,j=1,否则Di,j=0;
S604.通过rotation-and-addition操作来复制第一列,即递归log2g次计算
Figure BDA0003159430400000145
便得到列向量的和SumColVec(A):
Figure BDA0003159430400000146
(4)矢量化算法
使用sigmoid的最小二乘拟合多项式逼近,具体为y=0.5+0.15x-0.0015x3
下面将展示本实施例对实施例2的逻辑回归基线方法进行优化所得到的向量迭代循环方法,包括以下步骤:
S401.输入矩阵Zj,Wj和Vj,其中0≤j<f/g;
S402.计算Zj和Vj的哈达玛积:
Figure BDA0003159430400000151
S403.计算Mj的列向量的和:Mj=sumColVec(Mj);
S404.使用sigmoid函数的最小二乘拟合多项式逼近:令
Figure BDA0003159430400000152
计算
Figure BDA0003159430400000153
其中C1,C2,C3表示分别由0.5、0.15和0.0015重复组成的m×g矩阵,M°3表示按位取幂;
S405.计算S和Zj的哈达玛积:
Figure BDA0003159430400000154
S406.计算Sj的行向量的和:Δj=SumRolVec(Sj);
S407.使用NAG方法进行优化:
Figure BDA0003159430400000155
Figure BDA0003159430400000156
其中γ和η为参数;
S408.输出矩阵Wj +和Vj +,其中0≤j<f/g。
注意,即使使用分割的权重向量,近似的sigmoid函数每次迭代也只计算一次。另外,请注意,在分割的权重向量上迭代的两个循环可以并行运行。
实施例4
本实施例在实施例3的基础上:
本实施例提供了一种大规模数据的密文机器学习模型训练方法,通过微调计算顺序来最小化乘法的深度和噪声。
(1)减少乘法深度
在同态计算中,最小化嵌套乘法的深度是优化性能的关键。乘法深度越大,密文模量越大,或者越需要执行bootstrapping操作。较大的密文模极大地增加了计算开销,而且bootstrapping操作非常昂贵。例如,在计算xn时,一种简单的方法需要深度n-1的乘法,而一种优化的方法,如平方乘法,只需要log2n的乘法深度
通过最小化乘法深度,进一步优化实施例3的向量迭代循环方法。该向量迭代循环方法要求乘法深度为7。现在将深度减少到5,通过使用square-and-multiply的方法,进一步调整计算顺序。这种深度约简能够减小密文模量的大小,提高性能。
图2展示了使用深度最小化方法对该向量迭代循环方法进行优化,它给出了优化后的计算,图2的上方给出了输入,下方给出了输出。乘法深度(在左侧)分层,其中每一层由普通乘法(mult)或常数乘法(cMult)组成,包含0个或多个加法(add)操作。实线箭头表示输入连接,虚线箭头表示值传播。由于只按乘法深度分层,加法运算的输入放在同一层(如第四层所示)。
具体的,通过最小化乘法深度优化向量的迭代循环方法,包括以下步骤:
S701.输入矩阵Zj,Wj和Vj,其中0≤j<f/g,第1层计算
Figure BDA0003159430400000161
以及
Figure BDA0003159430400000162
其中c1=0.5,c2=0.15,c3=0.0015均为最小二乘拟合多项式系数;
S702.第2层计算M=∑j(SumColVec(Mj));
S703.第3层计算
Figure BDA0003159430400000163
Figure BDA0003159430400000164
S704.第4层计算
Figure BDA0003159430400000165
和Wj +=Vj+SumRowVec(G);
S705.第5层计算
Figure BDA0003159430400000166
输出矩阵Wj +和Vj +
注意,SumRowVec(G)在第4层中更有效的计算
Figure BDA0003159430400000167
也要注意,SumRowVec(G)仅仅需要3层乘法深度,然而
Figure BDA0003159430400000168
需要5层乘法深度。通常,如果使用n次多项式近似,本实施例的深度最小化方法将把乘法深度从O(n)减少到O(log2n)。
(2)最小化近似噪声
由于近似同态为每个同态操作引入了额外的噪声,甚至同态旋转和rescaling(重缩放)操作也引入了噪声。通过对同态运算的顺序进行重新排序,进一步优化,使噪声最小。例如,rescaling操作具有降低先前引入的噪声的效果。因此,调整rescaling操作的顺序,可以减少整体积累的噪音。现在来举例说明这种方法。
假设要将两个密文c1=Enc(m1)和c2=Enc(m2)相乘,并旋转相乘结果;令
Figure BDA0003159430400000171
一种普通的计算方法将有以下计算顺序:
c3=Mult(Enc(m1),Enc(m2))=Enc(m3·Δ+∈1)
c4=Rescale(c3,Δ)=Enc(m3+∈1/Δ+∈2)
c5=Rotate(c4,i)=Enc(Lroti(m3)+∈1/Δ+∈2+∈3)
其中Δ为比例因素,∈1,∈2,∈3为噪音,Rescale为重缩放操作,Rotate为旋转操作。
本实施例通过调整计算顺序来降低最终的噪声,即交换Rescale操作和Rotate操作,计算顺序如下:
c3=Mult(Enc(m1),Enc(m2))=Enc(m3·Δ+∈1)
c′4=Rotate(c3,i)=Enc(Lroti(m3)·Δ+∈1+∈2)
c′5=Rescale(c′4,Δ)=Enc(Lroti(m3)+(∈1+∈2)/Δ+∈3)
最后噪音从∈1/Δ+∈2+∈3降低为(∈1+∈2)/Δ+∈3,由于∈2<<Δ,这个优化有效移除了∈2
实施例5
本实施例在实施例1~4任一例的基础上:
本实施例提供了一种大规模数据的密文机器学习模型训练方法,利用pybind11建立了c++与python的接口,接下来将说明提供了哪些接口与接口的拓展。
(1)STL接口
在wrapper.cpp里面首先先建立二维vector的接口,从而避免了使用双重指针数组接口不好处理的问题。在二维vector对象中,本实施例还提供了vector元素的个数“size”与指定坐标得到元素“getitem”方法。
(2)NTL库接口
由于需要用到NTL库里面的多线程,所以需要建立“BasicThreadPool”接口。
(3)HEAAN库接口
为了在python里建立scheme环境、密文、私钥等,还需建立HEAAN库的部分功能的接口。
(4)Large-scale-FHE-LR库接口
建立以下三个接口:明文内积,数据集标签为0取负,对Vector类型的数据集归一化。用python的pandas读取数据集、预处理更方便,所以没有提供C++的读数据集接口,可以直接用pandas的。在LR类里面提供如下函数的接口:整个逻辑回归的密文训练,明文的逻辑回归训练,解密权重向量并保存在本地,加密数据集。
需要说明的是,对于前述的方法实施例,为了简便描述,故将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

Claims (7)

1.一种大规模数据的密文机器学习模型训练方法,其特征在于,包括:
在基于全同态加密的训练中使用大规模数据,对大规模数据集进行分块加密,并对分块的密文进行bootstrapping使密文噪音下降;所述分块加密的方法包括小批量梯度下降法,根据打包密文中的槽数来设置小批量处理块的大小,从而最大限度地利用打包密文的容量;并采用NAG即内斯特罗夫加速梯度作为梯度下降优化方法进行优化;
在进行逻辑回归时,使用最小二乘拟合方法来近似激活函数,从而把非线性的计算转为线性的计算;
具有适合于全同态加密的逻辑回归基线方法,包括以下步骤:
S101. 初始化权重向量:初始化权重向量
Figure QLYQS_1
Figure QLYQS_2
为零向量;
S102. 使用小批量梯度下降法进行分块:按顺序或随机选择一个小批量训练集{Z i},其中
Figure QLYQS_3
Figure QLYQS_4
为小批量处理块的大小,f为特征数;训练集{Z i}的样本
Figure QLYQS_5
被构造为
Figure QLYQS_6
,其中
Figure QLYQS_7
Figure QLYQS_8
Figure QLYQS_9
分别是原始输入样本和标签值;
S103. 使用最小二乘拟合方法来近似sigmoid函数:令
Figure QLYQS_10
Figure QLYQS_11
,其中
Figure QLYQS_12
为sigmoid函数的多项式近似,j
Figure QLYQS_13
[1,...,m];
S104. 使用NAG方法作为梯度下降优化方法进行优化:
Figure QLYQS_14
Figure QLYQS_15
Figure QLYQS_16
其中,
Figure QLYQS_17
Figure QLYQS_18
为参数,并令
Figure QLYQS_19
Figure QLYQS_20
S105. 循环迭代并输出最终的权重向量:重复步骤S102~S104,迭代K次后输出权重向量
Figure QLYQS_21
Figure QLYQS_22
训练集的分割和加密方法包括以下步骤:
S201. 假设训练集
Figure QLYQS_23
Figure QLYQS_24
个样本和
Figure QLYQS_25
个特征数组成,将这些数据视为一个包括目标
Figure QLYQS_26
Figure QLYQS_27
矩阵
Figure QLYQS_28
包括目标,如下所示:
Figure QLYQS_29
其中,
Figure QLYQS_30
并且
Figure QLYQS_31
Figure QLYQS_32
Figure QLYQS_33
S202. 将矩阵
Figure QLYQS_34
分成多个
Figure QLYQS_35
子矩阵
Figure QLYQS_36
,如下所示:
Figure QLYQS_37
其中,
Figure QLYQS_38
Figure QLYQS_39
S203. 将子矩阵
Figure QLYQS_40
应该被打包成一个单个密文:利用最大的密文槽
Figure QLYQS_41
来设置
Figure QLYQS_42
Figure QLYQS_43
,即
Figure QLYQS_44
,并将
Figure QLYQS_45
设置为与bootstrapping并行化的权重向量的分割大小相同;
S204. 去加密
Figure QLYQS_46
成一个单独的密文:先将
Figure QLYQS_47
表示成一个向量
Figure QLYQS_48
Figure QLYQS_49
再将向量
Figure QLYQS_50
加密为:
Figure QLYQS_51
2.根据权利要求1所述的一种大规模数据的密文机器学习模型训练方法,其特征在于,对权重向量进行划分和加密,包括以下步骤:
S301. 将权重向量
Figure QLYQS_52
Figure QLYQS_53
分成多个子向量
Figure QLYQS_54
Figure QLYQS_55
,以实现bootstrapping并行化;
S302. 构造矩阵
Figure QLYQS_56
Figure QLYQS_57
,每个矩阵由
Figure QLYQS_58
个重复的子向量
Figure QLYQS_59
Figure QLYQS_60
组成,如下所示:
Figure QLYQS_61
Figure QLYQS_62
S303. 用
Figure QLYQS_63
Figure QLYQS_64
分别来表示矩阵
Figure QLYQS_65
Figure QLYQS_66
的加密,并初始化为零向量的加密。
3.根据权利要求2所述的一种大规模数据的密文机器学习模型训练方法,其特征在于,通过向量的迭代循环方法,对逻辑回归基线方法进行优化,所述向量的迭代循环方法包括以下步骤:
S401. 输入矩阵
Figure QLYQS_67
Figure QLYQS_68
,其中
Figure QLYQS_69
S402. 计算
Figure QLYQS_70
Figure QLYQS_71
的哈达玛积:
Figure QLYQS_72
S403. 计算
Figure QLYQS_73
的列向量的和:
Figure QLYQS_74
S404. 使用sigmoid函数的最小二乘拟合多项式逼近:令
Figure QLYQS_75
,计算
Figure QLYQS_76
,其中
Figure QLYQS_77
表示分别由0.5、0.15和0.0015重复组成的
Figure QLYQS_78
矩阵,
Figure QLYQS_79
表示按位取幂;
S405. 计算
Figure QLYQS_80
Figure QLYQS_81
的哈达玛积:
Figure QLYQS_82
S406. 计算
Figure QLYQS_83
的行向量的和:
Figure QLYQS_84
S407. 使用NAG方法进行优化:
Figure QLYQS_85
Figure QLYQS_86
,其中
Figure QLYQS_87
Figure QLYQS_88
为参数;
S408. 输出矩阵
Figure QLYQS_89
Figure QLYQS_90
,其中
Figure QLYQS_91
4.根据权利要求3所述的一种大规模数据的密文机器学习模型训练方法,其特征在于,计算行向量的和方法包括以下步骤:
S501. 对于
Figure QLYQS_92
,令
Figure QLYQS_93
为将
Figure QLYQS_94
的每个元素向左旋转
Figure QLYQS_95
位得到的矩阵;
S502. 初始化
Figure QLYQS_96
,递归
Figure QLYQS_97
次计算
Figure QLYQS_98
,即
Figure QLYQS_99
的行向量之和
Figure QLYQS_100
为:
Figure QLYQS_101
5.根据权利要求3所述的一种大规模数据的密文机器学习模型训练方法,其特征在于,计算列向量的和方法包括以下步骤:
S601. 对于
Figure QLYQS_102
,令
Figure QLYQS_103
为将
Figure QLYQS_104
的每个元素向左旋转
Figure QLYQS_105
位得到的矩阵;
S602. 初始化
Figure QLYQS_106
,递归计算下面的循环:
Figure QLYQS_107
等式右侧的矩阵的第一列是
Figure QLYQS_108
的列向量之和,即递归
Figure QLYQS_109
次计算
Figure QLYQS_110
S603. 计算
Figure QLYQS_111
来清除垃圾列,即除了第一列外其他列都不要,其中
Figure QLYQS_112
中若
Figure QLYQS_113
,则
Figure QLYQS_114
,否则
Figure QLYQS_115
S604. 通过
Figure QLYQS_116
操作来复制第一列,即递归
Figure QLYQS_117
次计算
Figure QLYQS_118
便得到列向量的和
Figure QLYQS_119
Figure QLYQS_120
6.根据权利要求4所述的一种大规模数据的密文机器学习模型训练方法,其特征在于,通过最小化乘法深度优化向量的迭代循环方法,包括以下步骤:
S701. 输入矩阵
Figure QLYQS_122
Figure QLYQS_125
,其中
Figure QLYQS_128
,计算
Figure QLYQS_123
Figure QLYQS_126
,以及
Figure QLYQS_127
,其中
Figure QLYQS_129
Figure QLYQS_121
Figure QLYQS_124
均为最小二乘拟合多项式系数;
S702. 计算
Figure QLYQS_130
S703. 计算
Figure QLYQS_131
Figure QLYQS_132
S704. 计算
Figure QLYQS_133
Figure QLYQS_134
S705. 计算
Figure QLYQS_135
,输出矩阵
Figure QLYQS_136
Figure QLYQS_137
7.根据权利要求6所述的一种大规模数据的密文机器学习模型训练方法,其特征在于,通过对同态运算的顺序进行重新排序,进一步优化向量的迭代循环方法,使噪声最小:
假设要将两个密文
Figure QLYQS_138
Figure QLYQS_139
相乘,并旋转相乘结果;令
Figure QLYQS_140
,一种普通的计算方法将有以下计算顺序:
Figure QLYQS_141
其中∆为比例因素,
Figure QLYQS_142
为噪音,
Figure QLYQS_143
为重缩放操作,
Figure QLYQS_144
为旋转操作;
通过调整计算顺序来降低最终的噪声,即交换
Figure QLYQS_145
操作和
Figure QLYQS_146
操作,计算顺序如下:
Figure QLYQS_147
最后噪音从
Figure QLYQS_148
降低为
Figure QLYQS_149
,由于
Figure QLYQS_150
,这个优化有效移除了
Figure QLYQS_151
CN202110787099.4A 2021-07-13 2021-07-13 大规模数据的密文机器学习模型训练方法 Active CN113591942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110787099.4A CN113591942B (zh) 2021-07-13 2021-07-13 大规模数据的密文机器学习模型训练方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110787099.4A CN113591942B (zh) 2021-07-13 2021-07-13 大规模数据的密文机器学习模型训练方法

Publications (2)

Publication Number Publication Date
CN113591942A CN113591942A (zh) 2021-11-02
CN113591942B true CN113591942B (zh) 2023-05-09

Family

ID=78247576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110787099.4A Active CN113591942B (zh) 2021-07-13 2021-07-13 大规模数据的密文机器学习模型训练方法

Country Status (1)

Country Link
CN (1) CN113591942B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116844642B (zh) * 2023-07-03 2024-03-29 燕山大学 基于dna杂交反应技术的新型线性机器学习方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294697A (zh) * 2017-07-21 2017-10-24 西安电子科技大学 基于明文相似矩阵的对称全同态加密方法
CN109726567A (zh) * 2018-11-27 2019-05-07 南京邮电大学 一种基于全同态加密的移动目标加密方法
CN111291401A (zh) * 2020-05-09 2020-06-16 支付宝(杭州)信息技术有限公司 基于隐私保护的业务预测模型训练方法和装置
CN112104446A (zh) * 2020-09-03 2020-12-18 哈尔滨工业大学 一种基于同态加密的多方联合机器学习方法和系统
CN112511555A (zh) * 2020-12-15 2021-03-16 中国电子科技集团公司第三十研究所 基于稀疏表示和卷积神经网络的私有加密协议报文分类法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201610883D0 (en) * 2016-06-22 2016-08-03 Microsoft Technology Licensing Llc Privacy-preserving machine learning
US10805281B2 (en) * 2017-09-25 2020-10-13 Palo Alto Research Center Incorporated System and method for secure two-party evaluation of utility of sharing data
WO2020145503A1 (en) * 2019-01-10 2020-07-16 Crypto Lab Inc. Apparatus for processing approximately encrypted messages and methods thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294697A (zh) * 2017-07-21 2017-10-24 西安电子科技大学 基于明文相似矩阵的对称全同态加密方法
CN109726567A (zh) * 2018-11-27 2019-05-07 南京邮电大学 一种基于全同态加密的移动目标加密方法
CN111291401A (zh) * 2020-05-09 2020-06-16 支付宝(杭州)信息技术有限公司 基于隐私保护的业务预测模型训练方法和装置
CN112104446A (zh) * 2020-09-03 2020-12-18 哈尔滨工业大学 一种基于同态加密的多方联合机器学习方法和系统
CN112511555A (zh) * 2020-12-15 2021-03-16 中国电子科技集团公司第三十研究所 基于稀疏表示和卷积神经网络的私有加密协议报文分类法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HEBenchmark: 全同态加密测试系统设计与实现;陈智罡等;《密码学报》;第7卷(第6期);第853-863页 *
基于同态加密系统的图像鲁棒可逆水印算法;项世军等;《软件学报》;第29卷(第4期);第957-972页 *

Also Published As

Publication number Publication date
CN113591942A (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
Nandakumar et al. Towards deep neural network training on encrypted data
US11087223B2 (en) Learning and inferring insights from encrypted data
Jiang et al. Secure outsourced matrix computation and application to neural networks
US11354539B2 (en) Encrypted data model verification
Wagh et al. SecureNN: 3-party secure computation for neural network training
Wagh et al. Securenn: Efficient and private neural network training
Dwarakanath et al. Sampling from discrete Gaussians for lattice-based cryptography on a constrained device
US20200252198A1 (en) Secure Multi-Party Learning and Inferring Insights Based on Encrypted Data
Ran et al. A quantum color image encryption scheme based on coupled hyper-chaotic Lorenz system with three impulse injections
Han et al. Efficient logistic regression on large encrypted data
Bini et al. Semi-infinite quasi-Toeplitz matrices with applications to QBD stochastic processes
CN114245917B (zh) 秘密归一化指数函数计算系统、装置、方法以及记录介质
KR102075848B1 (ko) 다항식 연산 최적화 처리 장치, 다항식 연산 최적화 처리 방법 및 기록매체
CN113591942B (zh) 大规模数据的密文机器学习模型训练方法
CN117439731B (zh) 基于同态加密的隐私保护大数据主成分分析方法及系统
Ran et al. CryptoGCN: Fast and scalable homomorphically encrypted graph convolutional network inference
JP2023026751A (ja) システム、コンピュータ実装方法、コンピュータプログラム(タイルを強制する環境での効率的な畳み込み)
Song et al. A Bitwise Design and Implementation for Privacy‐Preserving Data Mining: From Atomic Operations to Advanced Algorithms
Fan et al. Ppca: Privacy-preserving principal component analysis using secure multiparty computation (mpc)
Chiang Privacy-preserving cnn training with transfer learning
van der Hagen et al. Practical encrypted computing for iot clients
JP2023064757A (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
Chiang Volley revolver: A novel matrix-encoding method for privacy-preserving neural networks (inference)
CN111788584A (zh) 一种神经网络计算方法和装置
US20240061955A1 (en) Method and system for privacy-preserving logistic regression training based on homomorphically encrypted ciphertexts

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