一种用于隐私保护机器学习的定点数编码及运算系统

文档序号:947428 发布日期:2020-10-30 浏览:20次 >En<

阅读说明:本技术 一种用于隐私保护机器学习的定点数编码及运算系统 (Fixed point number coding and operation system for privacy protection machine learning ) 是由 汤定一 韩伟力 于 2020-06-22 设计创作,主要内容包括:本发明属于网络空间安全技术领域,具体为一种用于隐私保护机器学习的定点数编码及运算系统。该系统包括定点数表示模块,定点数加法模块以及定点数乘法模块,本发明将有限域中定点数编码方式用于隐私保护机器学习中,以提供隐私保护机器学习中定点数编码与运算的整体解决方案为目标,实现了隐私保护机器学习中定点数编码方案及运算机制。使用本发明系统表示定点数的机器学习框架训练的模型(如线性回归,逻辑回归,BP神经网络和LSTM神经网络),与现有的机器学习框架相比,可以几乎相同的精度执行预测和分类任务。(The invention belongs to the technical field of network space security, and particularly relates to a fixed point number coding and operating system for privacy protection machine learning. The system comprises a fixed point number representation module, a fixed point number addition module and a fixed point number multiplication module, and the invention uses a fixed point number coding mode in a finite field in the privacy protection machine learning, aims at providing an integral solution of fixed point number coding and operation in the privacy protection machine learning, and realizes a fixed point number coding scheme and an operation mechanism in the privacy protection machine learning. Models (such as linear regression, logistic regression, BP neural network and LSTM neural network) trained using a machine learning framework that represents fixed-point numbers using the system of the present invention can perform prediction and classification tasks with nearly the same accuracy as existing machine learning frameworks.)

一种用于隐私保护机器学习的定点数编码及运算系统

技术领域

本发明属于网络空间安全技术领域,具体为一种用于隐私保护机器学习的定点数编码及运算系统。

背景技术

机器学习已广泛应用于各自实际场景。比如,互联网公司收集海量用户行为数据训练更精确的推荐模型。医院收集健康数据生成诊断模型。金融企业使用历史交易记录训练更准确的欺诈模型。

在机器学习中,数据规模对于模型准确率起着重要作用。然而,分布在多个数据源或个人中的数据不能简单合并。如GDPR之类与隐私问题相关的法规,企业保持竞争优势方面的考虑和数据主权相关的问题使得数据无法被公开共享。基于安全多方计算的隐私保护机器学习,允许不同主体在其联合数据上训练各自模型,而不会泄露除最终模型之外的任何信息。

隐私保护的机器学习在本发明中特指基于安全多方计算协议的隐私保护机器学习。它允许不同的主体在其联合数据上训练各种模型,而不会泄露最终模型(或加密版本)之外的任何信息。其中安全多方计算协议特指BGW协议。

在机器学习中,通常使用浮点数进行计算,训练数据经过归一化之后通常分布在[0,1]之间。训练模型中的参数,如神经网络的权重通常分布在[-1,1]之间,浮点数能表示的有效位数6到8位。综上,机器学习需要带符号小数,且至少能表示[-1,1]范围,且能表示的有效数字在小数点后6到8位的方案。而原本的BGW协议只支持有限域上元素的加减乘和逆元等基本运算。如何表示带符号小数成为BGW协议支持机器学习的挑战。

首先介绍Shamir秘密共享协议,BGW协议基于Shamir秘密共享协议。

Shamir秘密共享

Shamir的秘密共享(Shamir等人于1979年提出的基于密码学的一种秘密共享方式)是秘密共享的一种形式,其中将秘密分为多个部分,每个参与者得到自己的唯一部分,其中任何k方(称为阈值)都足以重建原始的秘密。目的是将秘密S划分为n份数据s1,s2,…,sn,其方式如下:

1.知道至少k份或更多的si,使得秘密S可以被还原。

2.知道任何k-1份或更少的si,将使S完全不确定。

该方案称为(k,n)阈值方案。在不失一般性的前提下,我们假设秘密S是有限域

Figure BDA0002549557490000011

中的元素,其中0<k≤n;S<p且p是素数。选择满足ai<P的随机k-1个正整数a1,a2,…,ak-1,然后让a0=S。建立多项式f(x)=a0+a1x+a2x2+a3x3+…+ak-1xk-1。让我们构造其中的任意n个点,例如,设置i=1,…,n来得到(i,f(i))。每个参与者都有一个点(i,f(i))以及素数p,其中素数p定义了使用的有限域。给定n中任意大小为k的子集,我们可以使用拉格朗日插值法来还原秘密。

BGW协议

BGW协议(Ben-Or等人于1988年提出的基于BGW的分布式计算协议,实现了三方及更多方之间的分布式加法和乘法计算)的计算模型是一个完整的同步网络,双方之间的成对通信通道是安全的。

假设v0,…,vn-1是域

Figure BDA0002549557490000021

中的n个不同的非零点。持有秘密输入

Figure BDA0002549557490000022

的参与方通过选择t个随机元素将输入s进行秘密共享,使得

f(x)=s+a1x+…+atxt

并且每一方Pi接收到值si=f(vi)

是分别使用多项式f(x),g(x)共享的两个秘密,并令c≠0为常数。线性运算(例如c×a和a+b)不需要参与方之间进行任何通信。

在计算两个共享秘密的乘积时,我们需要将h(x)的系数随机化,并且执行多项式降次操作,同时保持常数项h0不变。

h(x)=h0+h1x+…+h2tx2t

再令

si=h(αi)=f(αi)g(αi)

其中si(i=0,…,n-1)是每一方持有的h0的份额(shares)。将h(x)这个多项式的截断操作定义为

truncate(h(x))←k(x)=h0+h1x+…+htxt

其中ri=k(αi)(i=1,…,n-1)

令S=(S0,…,Sn-1)与R=(r0,…,rn-1),存在n*x的常数矩阵A使得

R=S·A

令B=(bi,j)为n×n阶范德蒙矩阵。令P为线性投影。我们有S×(B-1PB)=R

乘积多项式k(x)的截断系数可能不是完全随机的。为了使系数随机化,每个参与方Pi随机选择自由系数为零的2t阶多项式qi(x),并将其份额分配给各方。

我们可以在降次中使用

Figure BDA0002549557490000026

代替h(x)

满足

Figure BDA0002549557490000032

但是xi的其他系数1≤i≤t是完全随机的。

发明内容

本发明提出一种用于隐私保护机器学习的定点数编码及运算系统。本发明系统通过定点数表示及运算,能够在使用BGW协议的隐私保护机器学习中编码定点数和支持定点数运算。该方案能够提供为隐私保护机器学习提供安全高效的定点数表示和运算支持。

本发明将有限域中定点数编码方式用于隐私保护机器学习中,以提供隐私保护机器学习中定点数编码与运算的整体解决方案为目标,实现了隐私保护机器学习中定点数编码及运算系统。隐私保护机器学习中数据类型编码及运算系统包括定点数表示模块,定点数加法以及定点数乘法模块,编码和运算相结合,最终实现隐私保护机器学习对于定点数运算的支持。本发明可用于基于安全多方计算协议的机器学习框架,提供机器学习所需的定点数编码方案及运算机制。本发明的技术方案具体介绍如下。

本发明提出的一种用于隐私保护机器学习的定点数编码及运算系统,其包括如下三个部分,分别是定点数表示模块、定点数加法模块以及定点数乘法模块;其中:

所述定点数表示模块,用于在隐私保护机器学习中编码机器学习所需定点数;

所述定点数加法模块,用于在隐私保护机器学习中进行定点数加法运算;

所述定点数乘法模块,用于在隐私保护机器学习中进行定点数乘法运算。

本发明中,定点数表示模块中,使用表示定点小数,表示在范围[-2k-f-1,2k-f-1-2f]之间每隔2-f采样的有理数。定点数通过两个步骤在整数域中进行编码。首先,定点小数

Figure BDA0002549557490000035

通过函数int: 被映射到带符号整数其次,带符号整数

Figure BDA0002549557490000039

通过函数fld:

Figure BDA00025495574900000310

被编码在整数域

Figure BDA00025495574900000312

其中q>2k,通过类似于二进制补码的形式将带符号整数编码在整数域。

本发明中,定点数加法模块中,令与它们对应的整数表示

Figure BDA00025495574900000314

如果f1=f2,则这两个定点数在加法时使用与整数相同的协议进行运算。否则,需要缩放其中一个操作数,使得它们的小数位数相同。例如,当f2>f1时,先将的小数点与对齐得到

Figure BDA00025495574900000317

然后通过计算得到的值。无论秘密共享的定点数与常数或另一个秘密共享的定点数相加,都只需在每个参与方中独立进行加法操作,而无需进行通信。

本发明中,定点数乘法模块中,当秘密共享的定点数与常数进行乘法操作时,只需在每个参与方中独立进行乘法操作,无需进行通信。而当两秘密共享定点数相乘时,需要在乘法之后进行截断和降次操作,其中降次操作使用与整数相同的协议进行运算。令为两定点数。定点数乘法计算其中小数位数为f1+f2。由于直接将两定点数相乘会增加小数位数,而机器学习中,乘法的结果通常会作为操作数参与之后的乘法计算,因此需要通过截断操作减少小数部分位数。通过Div2mP操作进行乘法后的截断操作,使得对于两秘密共享的输入

Figure BDA0002549557490000044

经过乘法操作后得到其中

Figure BDA0002549557490000046

而截断操作的绝对误差上限为2-f,在机器学习中误差范围可以接受,且Div2mP操作只需1回合交互,适用于需要大量乘法操作的机器学习场景。

本发明中,Div2mP操作用下述函数表示,在本文中用中括号括起来的数表示秘密共享数;

[c]←Div2mP([a],k,m)

Div2mP的输入包含3个参数:

1)秘密共享的带符号整数

Figure BDA0002549557490000047

2)带符号整数在二进制中的有效位数k

3)公共常数m∈[1..k-1]

函数的功能是将秘密共享的带符号整数a右移m位,换句话说将a除以2m。函数名中的P表示除法结果按概率取整到相邻整数,可能向下取整也可能向上取整,具体概率为1-α,其中α是和相邻那个整数之间的距离。函数返回

Figure BDA0002549557490000049

的秘密共享,其中u∈{0,1}是1个随机位。

和现有技术相比,本发明的技术效果在于:

本发明提出用于隐私保护机器学习的定点数表示及运算系统。本发明使得基于BGW协议的安全多方计算支持定点数编码及运算,满足机器学习运算所需。根据我们的实验结果,使用该系统表示定点数的机器学习框架训练的模型(如线性回归,逻辑回归,BP神经网络和LSTM神经网络),与现有的机器学习框架相比,可以几乎相同的精度执行预测和分类任务。此外,通过实验说明,基于定点数方案的线性回归与基于浮点数方案的线性回归在准确率和损失函数基本一致。

附图说明

图1为隐私保护机器学习中定点数编码方案及运算机制设计图。

图2为带符号定点数在整数域中的编码方案。

图3为定点数乘法小数部分截断方法。

图4为基于定点数方案的线性回归与基于浮点数的线性回归在准确率上的比较。

图5为基于定点数方案的线性回归与基于浮点数的线性回归在损失函数上的比较。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

在本发明实施例中,定点数编码方案和运算机制用于隐私保护机器学习框架,主要体现在三个方面:机器学习框架的矩阵库使用定点数编码矩阵元素,训练开始前和完成后定点数与浮点数之间的类型转换,在机器学习框架中预定义运算符使用定点数加法和乘法的运算机制。

一、定点数表示模块设计说明

如图1,机器学习框架在训练过程中,通过矩阵库进行运算。矩阵库负责以矩阵形式存储数据以及提供矩阵之间的运算方法。同一个矩阵中所有元素的数据类型相同,即矩阵的数据类型与矩阵中每个元素的数据类型一致。在经典的机器学习框架,如Tensorflow中,矩阵的数据类型通常包括整型,32位浮点数和64位浮点数。在基于BGW协议的隐私保护的机器学习框架中,矩阵的数据类型使用定点数,即所有矩阵中的所有元素使用定点数编码方案。定点数在整数域中编码方案如图2所示。

矩阵中每个元素使用64位整型数存储,使用有限域进行安全计算。有限域大小p设置为1012+3。其中Div2mP协议依赖的随机位(PRandBit)生成协议要求素数p满足p mod 4=3。带符号定点数

Figure BDA0002549557490000052

中k为23,f为20,可以表示范围[-4,3]中以2-20间隔采样的带符号定点数。由于机器学习中经过归一化的数据和模型参数通常分布在[-1,1]中,因此满足基本训练需求。

使用定点数编码方案的数据类型,在矩阵库中进行降次运算时与整数协议相同。

二、训练前后定点数与浮点数之间的转换

在隐私保护机器学习中,在训练之前需要将数据文件中由浮点数表示的数据转换为矩阵库中存储的定点数,经过秘密共享过程后开始训练。在训练完成之后需要将由定点数表示的模型参数转为浮点数,假设训练完成后模型参数已在各参与方之间公开。

将浮点数转为定点数分为两步:首先将浮点数乘以2f,对结果取整。比如值为1的浮点数,在f为20的情况下,经过第一步变为220。其次将第一步结果对q取模,比如值为1的浮点数,在q为1012+3的情况下,经过第二步仍为220。而值为-1的浮点数,经过第一步变为-220,在第二步之后变为q-220。即变为有限域中的对应值。

将定点数转为浮点数同样分为两步:首先得到正负号,将整数域中小于

Figure BDA0002549557490000061

的数视为正数,大于的数视为负数。若为正数,则值不变,否则结果为q减该值。其次将第一步的结果除以2f,即得到定点数对应的浮点数。

三、定点数加法模块和定点数乘法模块设计说明

令a,b∈E为分别使用多项式f(x),g(x)共享的2个秘密,再令常数c∈E,c≠0。c·a,a+b这两个线性操作只需在各方Pi中独立运算,不需要在各方中进行通信。

秘密共享的定点数相乘需要交互,由于基于BGW协议,每次乘法之后都需要多项式截断。如图3,由于使用定点数,因此也需要缩放操作,即小数部分截断操作。在隐私保护机器学习框架中,乘法c=a*b需要改为[c]←Div2mPD([a]*b,k+f,f)。由于使用Div2mPD,因此只需1次交互就可以并行完成多项式截断与小数缩放操作。这极大提升了作为机器学习框架中重要基础运算乘法的效率。

四、实验对比使用定点数与浮点数在线性回归的Accuracy和Loss上的差异

本实施例通过实验说明,使用定点数方案的线性回归与使用浮点数方案的线性回归在准确度Accuracy和损失函数Loss上基本一致。

实验使用MNIST手写数据集。其中训练集包括60000张已标注为0-9的图片,测试集包括10000张已标注图片。每张图片大小28*28,包含784个由0-255的灰度表示的特征。

使用线性回归模型,衡量指标为测试集Accuracy和Loss。使用随机梯度下降训练线性回归参数w=w-α×xT(x×w-y)。其中w是需要训练的参数矩阵,大小784*1,α是学习率,采用0.001。x是小批量训练数据,大小128*784,每次迭代训练1个小批量,每个小批量包含128个训练样本。y是小批量样本对应的标签,大小128*1。训练阶段迭代30000次,保留准确率最高的迭代对应的权重矩阵。

将基于定点数方案的线性回归与基于浮点数的线性回归进行比较,结果如图4,5。使用完全相同的训练过程。换句话说,它们在训练前加载相同的权重矩阵初始值,并且训练数据会以相同顺序输入到模型。比较它们的准确率和损失函数曲线。图4,5中的实验代表基于定点数方案的线性回归,对照代表基于浮点数的线性回归。基于浮点数方案的最高准确率为98.75%,对应的损失函数为141.4。基于定点数方案的线性回归,最高准确率为98.75%,对应的损失函数为139.6。实验结果表明,使用定点数方案的线性回归与使用浮点数方案的线性回归在准确率和损失函数上基本一致。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类