技术领域
[0001] 本发明属于机器学习安全技术领域,涉及一种基于多攻击模型的成员推理攻击方法。
相关背景技术
[0002] 近年来机器学习成为全世界计算机科学家门研究的重点之一,机器学习技术也因此得到不断的发展。随着一些机器学习技术的成熟,机器学习技术不再只是理论的研究而是被广泛地投入到各个领域的实际使用当中,垃圾邮件分类系统、人脸识别系统、新闻分类系统这些系统中都使用了机器学习模型。然而,机器学习模型与信息处理密不可分,所以在机器学习技术迅猛发展并被广泛应用的同时,人们也开始关注起机器学习模型的信息安全问题。
[0003] 由于机器学习模型自身的缺陷,在训练模型的过程中会对训练数据进行记忆,攻击者可以通过单个数据点或多个数据点来判断这些数据是否属于训练目标模型的数据,从而识别数据中包含的一些敏感信息,这种攻击被称为成员推理攻击。成员推理攻击对用户的隐私造成了巨大的威胁,增加了隐私泄露的风险,与对网络安全造成了影响。
[0004] 尽管当前已有的一些可以判断是否为模型训练数据的成员推理攻击,他们可以成功获取到用户的隐私,但这些方法仍然存在一些局限性。攻击模型的攻击效果会受到各种因素的影响,与此同时,不同的攻击模型之间也存在攻击效果的差异,目前的成员推理攻击方法大多使用单个攻击模型,这使得成员推理攻击的攻击效果不稳定。因此,需要设计攻击成本更低,且稳定性更高的成员推理攻击方案,进一步探究模型的原理,以攻促防,提高模型的安全性能。
具体实施方式
[0048] 下面结合附图和具体实施方式对本发明进行详细说明。
[0049] 基于多攻击模型的成员推理攻击方法,如图1~图3,包括如下步骤:
[0050] 步骤一,训练成员推理目标模型MT,其中目标模型是惩罚参数为5的支持向量机模型(Support Vector Machine,SVM)。进行成员推理攻击需要寻找一个攻击目标,所以训练一个目标模型是进行成员推理攻击的第一步。为了训练目标模型,需要创建目标模型数据集D,数据集D由n条数据(x1,y1)、(x2,y2)、…、(xn,yn)组成。创建好目标模型数据集D之后,将目标模型数据集D等分为两个不相交的数据集,分别为目标模型训练集Dtrain和目标模型测试集Dtest。其中目标模型训练集Dtrain中的数据用来训练目标模型MT,目标模型测试集 Dtest中的数据用来测试目标模型MT的分类效果。为了进一步描述目标模型,我们定义目标模型m kMT:R→R ,以特征向量已知的数据对 (xi,yi)作为训练数据。其中m是输入数据的维度,k是类别的数目。其中xi的数据维度为m。影子模型的输出是一个概率向量PT= (p1,p2,…,pk)。
pc指的是目标模型预测输入数据属于类别c的概率大小。
[0051] 步骤二,训练影子模型数据集。在给定目标模型MT:训练数据集D和黑盒对抗知识* *的情况下,建立影子模型数据集D 是训练影子模型的第一步。数据集D 由n条数据组成,其中每条数据都包含与目标模型数据集D中数据
* *
相当的的m个特征,并且每个(x ,y)都是预测类标签。目标模型输入和输出的格式是已知的,并且还假设目标模型数据集D的数据分布是已知的,所以在创建影子模型数据集的时*
候,要令目标模型数据集D和影子模型数据集D 在格式和数据分布上一致。但是,目标模型*
数据集D的基数未知,所以目标模型数据集D和影子模型数据集D在数据基数上表现出不一致。
[0052] 步 骤三 ,建 立 多个 影 子数 据集 子 数据 集*
在本发明中,需要训练N个不同的影子模型,所以借助影子模型数据集D 生
成N个不同的影子模型子数据集。具体地,在影子数据集中随机抽取ni(ni的影子模型子数据集 通过从影子数据集D 中随机抽取指定数量
的数据的方法形成影子模型子数据集,这种方法允许不同的影子模型子数据集的数据之间*
存在交集,这样做削弱了对影子模型数据集D基数大小的限制。但在实际操作中,考虑到训练的影子模型之间应有的差异性,影子模型子数据集基数和影子模型数据集基数的比值不宜过于接近1。
[0053] 步骤四,训练多个成员推理影子模型 在开发完影子模型子数据集后。攻击者将利用多个影子模型子数据集来训练多个影子模型。考虑到目标模型的训练集对于攻击者未知,所以不能直接用目标模型来生成攻击模型的数据中应该包含的目标模型训练集中包含的成员样本。而影子模型的训练集和测试集对于攻击者已知,所以影子模型的作用在于代替目标模型并开发攻击模型的训练集和测试集。具体地,攻击者将每个影子数据集子数据集 分为 和 两个不相交的数据集。
用 来 训 练 影 子 模 型 敌 手 定 义 影 子 模 型
以特征向量已知的数据对 作为训练数据。其中m是输入数据的维
度, k是类别的数目。其中 的数据维度为m。影子模型的输出是一个概率向量PS=(p1,p2,…,pk)。pc指的是影子模型预测输入数据属于类别 c的概率大小。考虑到影子模型的主要作用是在只能获取到目标模型黑盒权限的情况下模仿目标模型为攻击者提供对于影子模型训练集的先验知识,影子模型和目标模型的相似性对于最终的攻击结果有很大的影响。影子模型和目标模型的相似性应指影子模型和目标模型决策边界之间的逼近程度。为了提高影子模型和目标模型的相似性,攻击者可以利用黑盒的模型萃取技术来获取影子模型。 参与所有影子模型的训练,是所有的影子模型的公共训练子集,而 中的数据不被任何一个影子模型的训练集包含。这样做是为了在后面的步骤中生成所有攻击模型共有的测试数据集,从而公平地比较和评价不同的攻击模型攻击效果的好坏。
[0054] 步骤五,生成多个攻击模型数据集子数据集D′1、D′2、…、D′N。影子模型的主要功能是模仿目标模型并生成攻击模型的数据集,所以训练好影子模型之后,紧接着应该利用影子模型 及其 数据集 生成攻 击模 型的 训练数 据集。攻击者 用 和*
中的数据x 查询影子模型 相应的输出x′i根
*
据查询数据x 来源于 还是来源于 被分别打上标签’in’和’out’。所有
中的数据查询影子模型 得到的查询结果和标签形成的数据对(x′i,y
′i)形成攻击模型训练数据集子数据集 D′i(i=1,2,…,N)。攻击者对影子数据集子数据集都执行上述步骤,得到多个攻击模型训练数据集子数据集D′1、D
′2、…、 D′N。
[0055] 步骤六,训练多个成员推理攻击模型 如图2 所示。攻击模型训练数据集子数据集D′1、D′2、…、D′N包含了影子模型 的
输出。攻击模型训练数据集子数据集 D′i(i=1,2,…,N)由n个数据(x′1,y′1)、(x′2,y′2)、…、(x′n,y′n) 组成,并且每个数据都是影子模型 对某个数据
的输出。然后利用这些攻击模型训练数据集子数据集D′1、 D′2、…、D′N分别生成不
2
同的攻击模型 其中k是类别的数目,R代表着成员推理
攻击的预测向量。每个攻击模型 都能以,用数据x查询目标模型和影子模型得到的输出,即概率向量PT=(p1,p2,…,pk)为输入,输出预测向量,PA=(pin,pout)。pin为对应的样本x被包含在模型训练集中的概率,pout为x不被包含在模型训练集中的概率,并且pin+pin=1。我们不对攻击模型的训练过程进行假设,我们只假设在训练攻击模型 的过程中数据集D′i是可用的。无论攻击模型是如何被训练的,这个阶段都会产生N不同的攻击模型这些攻击模型最终将协同进行成员推理攻击。
[0056] 步骤七,生成攻击模型测试数据集子数据集D″i(i=1,2,…,N)。攻击者希望生成一个数据集用来测试所有攻击模型的攻击效果,并利用测试得到的结果对攻击模型输出的结果进行赋权操作从而实现多攻击模型协同进行成员推理攻击。从步骤四中,得知影子模型子数据集 参与所有影子模型的训练,而 不参与任何影子模型的训练。所以 中的数据是所有影子模型的成员数据,而 中的大部分数据都是所有影子模型的非成员数据。同样地,影子模型子数据集 和 都没有参与攻击模型训练子数据集的生成和攻击模型的训练。所以攻击者用影子模型子数据集 和 生成攻击模型的测试数据集。攻击者用 和 中的数据查询不同的影子模型 相应的输出根据查询数据来源于 还是来源于 被分别打上标签’in’和’out’。所有 和 中的数据查询影子模型 得到的查询结果和标签形成的数据对(x″,y″)形成N个不同的攻击模型测试数据集子数据集D″i(i=1,2,…,N)。
[0057] 步骤八,计算每个攻击模型的权重,构建成员推理攻击判决式,进行成员推理攻击,如图3所示。攻击者训练了多个攻击模型,但是攻击模型的效果因为训练数据和过程不完全相同导致攻击效果也不尽相同,为了保证攻击效果和攻击效果的稳定性,攻击者用攻击模型测试集来评估不同的攻击模型的攻击效果,之后对不同模型的评估结果进行归一化处理作为对应攻击模型的权重。基于多攻击模型的成员推理攻击的最终攻击结果通过不同攻击模型预测的结果加权求和得出。具体地,攻击者首先分别用攻击模型测试子数据集D″i(i=1 ,2 ,…,N)中的数据查询攻击模型 得到攻击模型对于D″i(i=1,2,…,N)中的数据得到的预测向量。如果预测向量PA=
(pin,pout)中pin>pout,那么令攻击模型预测的标签为’in’,否则为’out’。将攻击模型预测的标签与D″i中数据对应的标签进行比较,得到攻击模型 对于D″i(i=1,
2,…,N)的分类准确度 攻击者令
并对ACCA进行归一化处理得到攻击模型的权重向量
其中 为攻击模型 对应的权重。得到攻击模型对应的权重
之后,攻击者就可以对目标模型进行实时的成员推理攻击。攻击者首先用指定的数据x查询目标模型得到目标模型输出的概率向量PT,之后将PT作为输入查询每一个攻击模型得到N个不同的预测向量 并令
最后攻击者通过公式
得到攻击得到的指定数据x被包含在目标模型训
练集中的概率ScoreM,如果ScoreM>0.5,攻击者认为 x被包含在目标模型训练集中;否则攻击者认为x不被包含在目标模型训练集中。
[0058] 实施例1:
[0059] 本实施例1将本发明方法用于门诊自动分检系统的安全保护,实现挖掘门诊自动分检系统安全漏洞的目的,进一步提高人工智能医疗模型的安全性。
[0060] 步骤1:训练门诊自动分检模型MT,患者通过输入自己的症状由MT分配到合适的科室;
[0061] 步骤1.1:对不同科室的患者隐私进行整理统计创建门诊自动分检模型数据集D;
[0062] 步骤1.2:对门诊自动分检模型数据集D划分为Dtrain和Dtest,用于训练和测试门诊自动分检模型MT;
[0063] 步骤2:构建患者症状描述的数据集D*,其中D*与D的数据分布相同;
[0064] 步骤3:对数据集D*进行划分,每次随机抽取ni(ni
[0065] 步骤4:根据门诊自动分检模型MT的结构进行模型,构建多个门诊分检系统影子模型
[0066] 步骤4.1:将构建的患者症状描述数据集子数据集 分为和 两个不相交的数据集, 用来训练门诊分检系统影子模型
[0067] 步骤4.2:门诊分检系统影子模型的输出是一个概率向量 PS=(p1,p2,…,pk)。pc指的是影子模型预测输入数据属于类别c的概率大小;
[0068] 步骤5:生成多个门诊分检系统攻击模型数据集的子数据集D′1、 D′2、…、D′N,以攻击门诊自动分检模型MT;
[0069] 步骤5.1:对门诊分检系统影子模型的输出根据查询数据来源于 还是来源于 被分别打上标签’in’和’out’,所有 中的数据查询门诊分检系统影子模型得到的查询结果和标签形成的数据对(x′i,y′i)形成门诊分检系统攻击模型训练数据集子数据集D′i(i=1,2,…,N);
[0070] 步骤6:训练多个成员推理攻击模型
[0071] 步骤6.1:针对每一个门诊分检系统攻击模型训练集D′i(i= 1,2,…,N),,训练一个门诊分检系统攻击模型
[0072] 步骤7:生成攻击模型测试数据集子数据集D″;
[0073] 步骤7 .1 :用 和 中的数 据查询门 诊分检 系统 影子模 型相应的输出根据查询数据来源于 还是来源于 被分别打上标
签’in’和’out’。所有 和 中的数据查询门诊分检系统影子模型 得到的查询结果和标签形成的数据对 (x″,y″)形成门诊分检系统攻击模型测试数据集子数据集 D″i(i=
1,2,…,N);
[0074] 步骤8:计算每个攻击模型的权重,构建成员推理攻击判决式,进行成员推理攻击。
[0075] 步骤8.1:用门诊分检系统攻击模型测试数据集子数据集 D″i(i=1,2,…,N)中的数据查询门诊分检系统攻击模型 得到不同门诊分检系统攻击模型对于数据x″的预测标签y″A。将每个模型得到的预测标签y″A与D″i(i=1,2,…,N)中数据x″对应的标签y″,进行比较计算出每个门诊分检系统攻击模型对攻击模型测试数据集子数据集D″中数据的分类准确率
[0076] 步 骤 8 .2 :令门 诊 分 检 系 统 攻 击 模 型 攻 击效 果 向 量对ACCA进行softmax运算得到门诊分检系统攻击模型的权重向
量
[0077] 步骤8.3:对任意患者症状描述样本x,查询门诊自动分检模型得到预测向量PT=(p1,p2,…,pk);
[0078] 步骤8.4:对PT=(p1,p2,…,pk)查询不同的门诊分检系统攻击模型得到预测向量用 组成门诊分检系统攻击模型预测分数向量
[0079] 步骤8.5:计算患者症状描述样本x为门诊自动分检模型训练集中的数据的概率如果ScoreM>0.5,认为患者症状描述样本x被包含在门诊自动分检模型训练集中,为真实的患者病例,可以通过其相关信息推断患者隐私;否则认为患者症状描述样本x没有包含在门诊自动分检模型训练集中,不存在患者隐私的泄露。
[0080] 实验数据:
[0081] 如表1,将本实施例1和不同的攻击模型在不同数据集下对成员推理的攻击效果进行了对比,其中攻击模型1~5分别为不同数据集训练的单影子模型攻击,ASR是攻击成功率,1‑Precision为攻击的精确度,1‑Recall为召回率,1‑F1为F值。分别在Dbpedia话题分类, Yahoo问答数据分类,以及AG和Newsgroups新闻分类数据集上进行实验验证,从表可知本发明基于多攻击模型攻击效果在不同的指标中都优于单攻击模型。
[0082] 表1不同实验数据下的攻击效果
[0083]