CN113591942B - 大规模数据的密文机器学习模型训练方法 - Google Patents
大规模数据的密文机器学习模型训练方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000012549 training Methods 0.000 title claims abstract description 45
- 238000010801 machine learning Methods 0.000 title claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims abstract description 58
- 230000006870 function Effects 0.000 claims abstract description 23
- 238000007477 logistic regression Methods 0.000 claims abstract description 19
- 238000005457 optimization Methods 0.000 claims abstract description 16
- 238000011478 gradient descent method Methods 0.000 claims abstract description 11
- 238000012856 packing Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 9
- 230000004913 activation Effects 0.000 claims abstract description 8
- 230000001133 acceleration Effects 0.000 claims abstract description 4
- 239000013598 vector Substances 0.000 claims description 81
- 239000011159 matrix material Substances 0.000 claims description 38
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 3
- 101100001674 Emericella variicolor andI gene Proteins 0.000 claims 6
- 238000000638 solvent extraction Methods 0.000 claims 1
- 208000025174 PANDAS Diseases 0.000 description 2
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 2
- 240000004718 Panda Species 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning 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},其中m为小批量处理块的大小,f为特征数;训练集{Zi}的样本zi被构造为其中yi′=2yi-1∈{-1,1},xi和yi分别是原始输入样本和标签值;
S103.使用最小二乘拟合方法来近似sigmoid函数:令a=Zi·ν,bj=σ′(aj),其中σ′为sigmoid函数的多项式近似,j∈[1,...,m];
S104.使用NAG方法作为梯度下降优化方法进行优化:
ω+=ν-γ·Δ
ν+=(1-η)·ω++η·ω
其中,γ和η为参数,并令ω=ω+,ν=ν+;
S105.循环迭代并输出最终的权重向量:重复步骤S102~S104,迭代K次后输出权重向量ω和ν。
进一步的,训练集的分割和加密方法包括以下步骤:
S201.假设训练集{xi,j}由n个样本和f个特征数组成,将这些数据视为一个包括目标{yi}的n×f矩阵Z包括目标,如下所示:
其中,Z[i][0]=yi并且Z[i][j+1]=yi·xi,j,0≤i<n,0≤j<f–1;
S202.将矩阵Z分成多个m×g子矩阵Zi,j,如下所示:
其中,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:
再将向量pi,j加密为:
encZ[i][j]=encrypt(pi,j;Δz)。
进一步的,对权重向量进行划分和加密,包括以下步骤:
S301.将权重向量ω和ν分成多个子向量ωi和νi,以实现bootstrapping并行化;
S302.构造矩阵Wi和Vi,每个矩阵由m个重复的子向量ωi和νi组成,如下所示:
S303.用encW[i]和encV[i]分别来表示矩阵Wi和Vi的加密,并初始化为零向量的加密。
进一步的,通过向量的迭代循环方法,对逻辑回归基线方法进行优化,所述向量的迭代循环方法包括以下步骤:
S401.输入矩阵Zj,Wj和Vj,其中0≤j<f/g;
S403.计算Mj的列向量的和:Mj=SumColVec(Mj);
S406.计算Sj的行向量的和:Δj=SumRolVec(Sj);
S408.输出矩阵Wj +和Vj +,其中0≤j<f/g。
进一步的,计算行向量的和方法包括以下步骤:
进一步的,计算列向量的和方法包括以下步骤:
S602.初始化R=A,递归计算下面的循环:
进一步的,通过最小化乘法深度优化向量的迭代循环方法,包括以下步骤:
S702.计算M=∑j(SumColVec(Mj));
进一步的,通过对同态运算的顺序进行重新排序,进一步优化向量的迭代循环方法,使噪声最小:
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函数因为在全同态计算中使用非线性计算是非常昂贵的,我们用它的低阶多项式近似算法σ′作为替代,使用最小二乘拟合方法来近似sigmoid函数。最小二乘拟合多项式在给定的区间内提供了一个充分的逼近。例如,图1绘制了原始的sigmoid函数即曲线A,它在区间[-8,8]内的最小二乘拟合多项式(3阶)即曲线B,以及它在x=0处的泰勒展开式(3阶)即曲线C。注意,泰勒多项式只在给定的点附近提供精确的近似,而最小二乘拟合多项式在更大的范围内提供了良好的近似。
实施例2
本实施例在实施例1的基础上:
本实施例提供了一种大规模数据的密文机器学习模型训练方法,其具有适合于全同态加密的逻辑回归基线方法,包括以下步骤:
S101.初始化权重向量:初始化权重向量ω和ν为零向量;
S102.使用小批量梯度下降法进行分块:按顺序或随机选择一个小批量训练集{Zi},其中m为小批量处理块的大小,f为特征数;训练集{Zi}的样本zi被构造为其中yi′=2yi-1∈{-1,1},xi和yi分别是原始输入样本和标签值;
S103.使用最小二乘拟合方法来近似sigmoid函数:令a=Zi·ν,bj=σ′(aj),其中σ′为sigmoid函数的多项式近似,j∈[1,...,m];
S104.使用NAG方法作为梯度下降优化方法进行优化:
ω+=ν-γ·Δ
ν+=(1-η)·ω++η·ω
其中,γ和η为参数,并令ω=ω+,ν=ν+;
S105.循环迭代并输出最终的权重向量:重复步骤S102~S104,迭代K次后输出权重向量ω和ν。
实施例3
本实施例在实施例2的基础上:
本实施例提供的一种大规模数据的密文机器学习模型训练方法,对实施例2的逻辑回归基线方法进行了优化,使其能够在同态加密中针对大量加密数据进行计算。具体来说,优化了主迭代循环的主体。从概念上讲,使用了同态SIMD操作的向量化。
(1)训练集的分割和加密,包括以下步骤:
S201.假设训练集{xi,j}由n个样本和f个特征数组成,将这些数据视为一个包括目标{yi}的n×f矩阵Z包括目标,如下所示:
其中,Z[i][0]=yi并且Z[i][j+1]=yi·xi,j,0≤i<n,0≤j<f–1;
S202.将矩阵Z分成多个m×g子矩阵Zi,j,如下所示:
其中,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:
再将向量pi,j加密为:
encZ[i][j]=encrypt(pi,j;Δz)。
(2)权重向量的划分和加密,包括以下步骤:
S301.由于NAG优化,逻辑回归基线方法中有两个大小为f的权重向量ω和ν,将权重向量ω和ν分成多个子向量ωi和νi,以实现bootstrapping并行化;
S302.构造矩阵Wi和Vi,每个矩阵由m个重复的子向量ωi和νi组成,如下所示:
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操作可以在不增加成本的情况下提供高吞吐量,因此这种批处理方法在打包的同态计算中非常有效。
具体的,计算行向量的和方法包括以下步骤:
具体的,计算列向量的和方法包括以下步骤:
S602.初始化R=A,递归计算下面的循环:
(4)矢量化算法
使用sigmoid的最小二乘拟合多项式逼近,具体为y=0.5+0.15x-0.0015x3。
下面将展示本实施例对实施例2的逻辑回归基线方法进行优化所得到的向量迭代循环方法,包括以下步骤:
S401.输入矩阵Zj,Wj和Vj,其中0≤j<f/g;
S403.计算Mj的列向量的和:Mj=sumColVec(Mj);
S406.计算Sj的行向量的和:Δj=SumRolVec(Sj);
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)操作。实线箭头表示输入连接,虚线箭头表示值传播。由于只按乘法深度分层,加法运算的输入放在同一层(如第四层所示)。
具体的,通过最小化乘法深度优化向量的迭代循环方法,包括以下步骤:
S702.第2层计算M=∑j(SumColVec(Mj));
注意,SumRowVec(G)在第4层中更有效的计算也要注意,SumRowVec(G)仅仅需要3层乘法深度,然而需要5层乘法深度。通常,如果使用n次多项式近似,本实施例的深度最小化方法将把乘法深度从O(n)减少到O(log2n)。
(2)最小化近似噪声
由于近似同态为每个同态操作引入了额外的噪声,甚至同态旋转和rescaling(重缩放)操作也引入了噪声。通过对同态运算的顺序进行重新排序,进一步优化,使噪声最小。例如,rescaling操作具有降低先前引入的噪声的效果。因此,调整rescaling操作的顺序,可以减少整体积累的噪音。现在来举例说明这种方法。
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即内斯特罗夫加速梯度作为梯度下降优化方法进行优化;
在进行逻辑回归时,使用最小二乘拟合方法来近似激活函数,从而把非线性的计算转为线性的计算;
具有适合于全同态加密的逻辑回归基线方法,包括以下步骤:
S104. 使用NAG方法作为梯度下降优化方法进行优化:
训练集的分割和加密方法包括以下步骤:
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116844642B (zh) * | 2023-07-03 | 2024-03-29 | 燕山大学 | 基于dna杂交反应技术的新型线性机器学习方法 |
Citations (5)
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)
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 |
-
2021
- 2021-07-13 CN CN202110787099.4A patent/CN113591942B/zh active Active
Patent Citations (5)
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)
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 |