一种非交互式隐私保护多方机器学习方法与流程

专利2022-06-29  112


本发明属于计算机安全领域,具体涉及一种非交互式隐私保护的多方机器学习方法。



背景技术:

隐私数据的多方机器学习技术与联邦学习技术在实际应用中取得了很好的效果。这些有关隐私保护机器学习的工作面向许多流行的机器学习模型,例如随机决策树、朴素贝叶斯分类、k-均值聚类、神经网络等。但是,这些解决方案中并未考虑数据属主和训练者的安全需求。尽管数据属主(如持有健康记录的患者)未必具有参与训练的需求与客观条件,这些方案还是要求数据属主以交互的方式参与训练,导致了数据属主必须面对频繁交互带来的高计算或通信开销的效率问题。

于2019年6月25日公开的发明专利cn109934004a,公开了一种机器学习服务系统中保护隐私的方法,包括:步骤1,学习和表达原始数据:将高维的原始数据用低维本征空间表达;步骤2,学习和表达攻击者数据:将所有具有高概率分类结果的查询数据用低维本征空间表达作为攻击者数据;步骤3,比较和判断是否回答当前查询:比较所述攻击者数据与原始数据的相似度,如果相似度大于预设的阈值,确认回答当前查询会泄露隐私,则拒绝回答当前查询,否则允许回答当前查询。该方法能保护由于多次查询带来的隐私问题,可以通过对攻击者的知识进行学习建模,进而决定回答或拒绝回答查询服务,解决了由于过度查询带来的机器学习查询服务隐私问题,由于该方法不改变模型本身,不影响服务质量。

总的来说,现有的隐私保护机器学习方法,虽然在一定程度上解决了相应的技术问题,但是需要数据属主的参与,方能完成多方机器学习任务,带来了过高的通信和计算开销问题。



技术实现要素:

为了解决现有技术在多方机器学习任务中需要数据属主参与因而产生过高的通信和计算开销的问题,本发明提出了一种非交互式隐私保护多方机器学习方法,该方法所设计的架构在保证数据属主的数据隐私的基础上,减少了数据属主因频繁交互产生的通信和计算开销。

本发明采用如下技术方案来实现:一种非交互式隐私保护多方机器学习方法,所述方法构建了非交互式隐私保护机器学习架构,所述架构包括三种实体:

数据属主,为拥有数据集,并为机器学习分类器的训练提供训练数据,且不需要获得训练结果的实体;

数据服务提供者,为不可信的辅助服务器,在训练期间承担加密和运算操作,包括发布公共参数,向数据属主颁发加密密钥,以及与训练者合作进行训练;

训练者,从数据属主处收集数据作为训练数据集,利用该训练数据集训练并建立机器学习分类器模型;

所述方法包括以下步骤:

s1、数据服务提供者生成公共参数,并初始化具有安全参数的公钥加密方案,然后为每个数据属主生成私钥与公钥密钥对,并将公钥分发给该数据属主;每一个训练者生成加密密钥对,并公布自己的加密公钥;

s2、数据属主对自己数据集中的每一个记录使用公钥加密方案进行加密,数据属主将加密的数据集上传给训练者,训练者收集后将其作为训练数据集的一部分;

s3、在训练者与数据服务提供者之间运行若干训练轮隐私保护训练协议,最终训练者得到训练完成的机器学习分类器模型,同时数据服务提供者无法以明文的形式揭示机器学习分类器模型的内容。

与现有技术相比,本发明取得了如下有益效果:

本发明所设计的架构支持隐私保护的多方机器学习任务,而无需数据属主的参与。利用该架构所构造隐私保护的多方机器学习方法,在无需数据属主的参与的情况下,训练者可以在加密数据上联合训练得到机器学习模型,从而使得多方机器学习系统具有更高的通信效率和更可靠的安全性。本发明还给出了基于多方机器学习的多层神经网络。通过本发明所提出的非交互式隐私保护多方机器学习的架构,可以有效解决在多方机器学习过程中面临的敏感数据隐私安全问题,并在此基础上以非交互的形式减少数据属主的通信和计算开销。

附图说明

图1是本发明的系统架构图;

图2是本发明的方案流程图。

具体实施方式

为使本发明的目的、技术方案更加清楚明白,以下结合附图及实施例对本发明进行详细说明;所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例

本发明非交互式隐私保护多方机器学习方法构建了非交互式隐私保护机器学习架构,如图1所示。该架构中包括三种实体,分别为数据属主、训练者和密码服务提供者(也叫数据服务提供者,如服务器):

(1)数据属主是拥有数据集,并为机器学习分类器的训练提供训练数据,且不需要获得训练结果的实体。也就是说,数据属主指数据的拥有者。为了保护其数据隐私,数据属主需要将数据加密为受保护形式。数据属主在上传数据后离线,并不参加机器学习分类器的训练。

(2)数据服务提供者是不可信的辅助服务器,在训练期间承担一些必要的加密和运算操作,包括发布公共参数,向数据属主颁发加密密钥,以及与训练者合作进行训练。

(3)与数据属主不同,训练者没有数据。训练者从数据属主处收集数据作为训练数据集,利用该数据集训练并建立机器学习分类器模型。在与数据服务提供者合作训练若干训练轮后,训练者将获得最终模型。考虑到该模型可能具有商业价值,训练者需要该模型的隐私性被保护。

也就是说,数据属主为机器学习分类器的训练提供训练数据,训练者使用数据进行训练得到机器学习分类器模型,密码服务提供者为训练提供辅助。该架构中训练者可以在数据属主的加密数据上训练得到机器学习分类器模型,在此期间无需与数据属主进行在线交互。因此,对于数据属主而言,基于该架构的隐私保护多方机器学习系统比基于一般架构的隐私保护多方机器学习系统更具通信和计算效率。

如图2所示,本发明非交互式隐私保护多方机器学习方法的实现过程包括以下步骤:

s1、初始化。密码服务提供者首先生成公共参数n,并初始化具有安全参数λ的公钥加密方案pke,然后为每个数据属主生成密钥对{pk,sk},并将公钥pk分发给该数据属主;每一个训练者生成paillier加密密钥对{pkp,skp},并公布自己的加密公钥pkp。

公钥加密方案pke具有特殊格式,用于数据属主在上传数据前对数据进行加密,在架构中起到了保护数据属主的数据隐私的作用。该公钥加密方案为基于cca-2安全的公钥加密方案pke={gen,enc,dec},其模数为n;当需要加密一个训练样本实例x与其对应的标签y时,数据属主需要使用公钥pk进行加密:

(1)随机选择一对互逆的a阶非奇异矩阵a,其中每个元素均在以n为阶的循环群上,并将a设置为z(1)

(2)将a-1*x加密为pke.encpk(a-1*x)并设置为z(2)

(3)将z=z(1)||z(2)作为密文。

其中,paillier加密为加同态加密方案,是可以在加法群上实现的同态加密方案。同态加密是基于数学难题的计算复杂性理论的密码学技术,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一致的。

s2、数据加密与收集。数据属主对自己数据集中的每一个记录使用公钥加密方案pke进行加密,数据属主将加密的数据集上传给训练者,训练者收集后将其作为训练数据集的一部分。例如,数据大小为m,在对数据集{{x1,y1},...,{xm,ym}}进行加密之后,数据属主通过安全信道将加密后的数据集{{z1,y1},...,{zm,ym}}上传给相应的训练者。

本步骤采用公钥加密方案pke来保护数据属主的数据机密性,加密方案所用的密钥对由密码服务提供者生成并分发给每个数据属主。也就是说,在数据加密阶段,数据属主将其数据上传给训练者前,使用公钥加密方案pke对其数据集中每个数据记录进行加密。

s3、隐私保护训练。在训练者与密码服务提供者之间运行若干训练轮隐私保护训练协议,最终训练者得到训练完成的机器学习分类器模型,同时密码服务提供者无法以明文的形式揭示机器学习分类器模型的内容。

所述隐私保护训练协议在非交互式隐私保护机器学习架构中用于完成机器学习分类器的训练。该协议由训练者与密码服务提供者共同执行若干训练轮,最终训练者会得到训练完成的机器学习分类器模型,同时密码服务提供者无法以明文的形式揭示机器学习分类器模型的内容。

在本实施例中,训练者收集到训练数据的加密形式{{z1,y1},...}后,与密码服务提供者共同运行隐私保护训练协议。训练者初始化分类器模型θ0,开始与密码服务提供者进行若干训练轮的交互。

本发明设计了一种盲化算法,使得在每个训练轮中,训练者使用随机梯度下降法选择收集得到的部分训练集,使用盲化算法隐藏当前模型得到盲化模型,并向密码服务提供者发送训练请求;密码服务提供者接收到请求后,在盲化模型和加密训练集上进行梯度计算,之后把结果返回给训练者;训练者对返回结果进行去盲化后得到当前梯度,利用当前梯度对当前机器学习分类器模型进行更新,一旦达到最大的训练轮数或机器学习分类器模型收敛,则隐私保护训练协议结束,并得到最终的机器学习分类器模型。具体在每个训练轮t中,执行以下步骤:

(1)训练者将当前分类器模型θt-1盲化为盲化模型θt-1’以保护其隐私性,并用随机梯度下降法选择一个小批次的加密数据集{z},之后将其中的一部分加密数据集{z(2)}与盲化模型θt-1’传输给密码服务提供者作为请求;

(2)数据服务提供者利用训练者上传的请求,以隐私保护的形式完成梯度计算,得到被盲化的梯度g’并返回给训练者,这里数据服务提供者并无法解盲;

(3)训练者对被盲化的梯度g’进行解盲,得到当前训练轮的梯度g,并利用梯度下降法更新得到当前训练轮的模型θt=θt-1-ηg,其中η为学习率。

一旦达到最大的训练轮数或机器学习分类器模型收敛,则训练协议结束,训练者并得到最终的分类器模型θ。

其中,随机梯度下降指模型参数的梯度可以根据训练数据逐渐下降。常见的梯度下降算法有批次梯度下降、随机梯度下降。批次梯度下降在较大数据集训练中,效率过低。随机梯度下降算法仅需要数据集的一小部分就可以完成梯度下降。定义es为训练批次s后的损失函数,θ为多层感知机的权重集合,η为学习率,θt-1为第t轮训练权重集合。随机梯度更新的定义为:

基于神经网络的深度学习是当前最流行的机器学习技术之一,本实施例采用面向多层感知器神经网络的架构来实现,分类器模型为神经网络模型。神经网络学习致力于从高维数据中提取特征并使用其生成一个从输入映射输出的模型。多层感知机是最常见的神经网络模型。在多层感知机里,每个隐藏层节点的输入是前一层网络的输出(加上了偏置)。各个隐藏节点计算它的带权输入均值。隐藏节点的输出是非线性激活函数的运算结果。对神经网络的权重学习是一个非线性优化问题。在监督学习中,目标函数是训练例子正向传播的错误输出。梯度下降算法常被用于解决该优化问题。在用户的每一轮训练里,训练者借助训练数据计算非线性目标函数的梯度并更新权重来减小梯度。经过多轮训练,模型将达到本地最优。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。


技术特征:

1.一种非交互式隐私保护多方机器学习方法,其特征在于,所述方法构建了非交互式隐私保护机器学习架构,所述架构包括三种实体:

数据属主,为拥有数据集,并为机器学习分类器的训练提供训练数据,且不需要获得训练结果的实体;

数据服务提供者,为不可信的辅助服务器,在训练期间承担加密和运算操作,包括发布公共参数,向数据属主颁发加密密钥,以及与训练者合作进行训练;

训练者,从数据属主处收集数据作为训练数据集,利用该训练数据集训练并建立机器学习分类器模型;

所述方法包括以下步骤:

s1、数据服务提供者生成公共参数,并初始化具有安全参数的公钥加密方案,然后为每个数据属主生成私钥与公钥密钥对,并将公钥分发给该数据属主;每一个训练者生成加密密钥对,并公布自己的加密公钥;

s2、数据属主对自己数据集中的每一个记录使用公钥加密方案进行加密,数据属主将加密的数据集上传给训练者,训练者收集后将其作为训练数据集的一部分;

s3、在训练者与数据服务提供者之间运行若干训练轮隐私保护训练协议,最终训练者得到训练完成的机器学习分类器模型,同时数据服务提供者无法以明文的形式揭示机器学习分类器模型的内容。

2.根据权利要求1所述的非交互式隐私保护多方机器学习方法,其特征在于,步骤s1中,公钥加密方案为基于cca-2安全的公钥加密方案pke={gen,enc,dec},其模数为n;当需要加密一个训练样本实例x与其对应的标签y时,数据属主需要使用公钥pk进行加密:

(1)随机选择一对互逆的a阶非奇异矩阵a,其中每个元素均在以n为阶的循环群上,并将a设置为z(1)

(2)将a-1*x加密为pke.encpk(a-1*x)并设置为z(2)

(3)将z=z(1)||z(2)作为密文。

3.根据权利要求1所述的非交互式隐私保护多方机器学习方法,其特征在于,步骤s1中每一个训练者生成的加密密钥对为paillier加密密钥对。

4.根据权利要求3所述的非交互式隐私保护多方机器学习方法,其特征在于,所述paillier加密为加同态加密方案,为在加法群上实现的同态加密方案。

5.根据权利要求1所述的非交互式隐私保护多方机器学习方法,其特征在于,步骤s3在每个训练轮中,训练者使用随机梯度下降法选择收集得到的部分训练集,使用盲化算法隐藏当前模型得到盲化模型,并向数据服务提供者发送训练请求;数据服务提供者接收到请求后,在盲化模型和加密训练集上进行梯度计算,之后把结果返回给训练者;训练者对返回结果进行去盲化后得到当前梯度,利用当前梯度对当前机器学习分类器模型进行更新,一旦达到最大的训练轮数或机器学习分类器模型收敛,则隐私保护训练协议结束,并得到最终的机器学习分类器模型。

6.根据权利要求5所述的非交互式隐私保护多方机器学习方法,其特征在于,在每个训练轮t中,执行以下步骤:

(1)训练者将当前分类器模型θt-1盲化为盲化模型θt-1’以保护其隐私性,并用随机梯度下降法选择一个小批次的加密数据集{z},之后将其中的一部分加密数据集{z(2)}与盲化模型θt-1’传输给数据服务提供者作为请求;

(2)数据服务提供者利用训练者上传的请求,以隐私保护的形式完成梯度计算,得到被盲化的梯度g’并返回给训练者;

(3)训练者对被盲化的梯度g’进行解盲,得到当前训练轮的梯度g,并利用梯度下降法更新得到当前训练轮的模型θt=θt-1-ηg,其中η为学习率。

技术总结
本发明属于计算机安全领域,为非交互式隐私保护的多方机器学习方法,构建了包括数据属主、数据服务提供者和训练者的架构;数据服务提供者生成公共参数,并初始化具有安全参数的公钥加密方案,为每个数据属主生成私钥与公钥密钥对,每一个训练者生成加密密钥对;数据属主对其数据集中的每一个记录使用公钥加密方案进行加密,数据属主将加密的数据集上传给训练者;在训练者与数据服务提供者之间运行若干训练轮隐私保护训练协议,得到训练完成的机器学习分类器模型,数据服务提供者无法以明文的形式揭示机器学习分类器模型的内容。本发明在保证数据属主的数据隐私的基础上,减少数据属主因为频繁交互产生的通信和计算开销。

技术研发人员:李进;李同;向晓宇
受保护的技术使用者:广州大学
技术研发日:2020.02.14
技术公布日:2020.06.09

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

最新回复(0)