成员推断攻击:Membership Inference Attacks Again Machine Learning Models[通俗易懂]

成员推断攻击:Membership Inference Attacks Again Machine Learning Models[通俗易懂]成员推断攻击MembershipInferenceAttacksAgainMachineLearningModels看了成员推断攻击笔记经典的论文,做一点记录概念成员推断攻击的定义:判断某一个数据记录是否在模型的训练

成员推断攻击:Membership Inference Attacks Again Machine Learning Models

image-20220503170023685
看了成员推断攻击笔记经典的论文,做一点记录

概念

成员推断攻击的定义:
判断某一个数据记录是否在模型的训练集中的

核心问题:给定数据记录,和黑盒模型查询的权限,判断数据是否在训练集中

指标的选择

Precision:
推断是训练数据的数据占实际的(what fraction of records inferred as members are indeed members of the training dataset)

Recall:
训练集中的数据有多少被判断为成员(what fraction of the training dataset’s members are correctly inferred as members by the attackers)

方法论概述:
1、Shadow models 的训练
1.1 Synthesis data generation

作者提出三种方式构造Synthesis data,从(1)到(3)攻击者所获取得到的关于原来训练集的信息越多

(1)基于模型:

主要的思想:直观上,如果目标模型以很高的概率给出了某条record的类别,那么该record与目标模型训练集中的数据应该是十分相似的。所以,可以用目标模型本身来构建影子模型的训练数据。

生成一条c类别的数据:先随机初始化 x x x, 若目标模型在 x x x上的输出为类别c的 y c y_{c} yc大于其他类且大于阈值(条件1),则进行一个采样随机数采样s=rand(),如何s< y c y_{c} yc则接受,反之则不接受(类似于Metropilc)。如果不满足条件1则继续修改k个特征的值继续上述步骤。

作者表示当模型是输入十分复杂的时候,这种方法会失效。例如当输入是高精度图像且任务为复杂的分类任务时。

image-20220503161825330

(2)基于统计信息:

只知道训练集采样的原集合(population)的一些分布信息,原文的实验是通过从每个特征的边际分布中单独采样构建数据集用于Shadow model的训练。

(3)基于带噪声的真实数据:

攻击者有一些与用于模型训练集相似的数据。原文中的作者说这种情况对应于Shadow model和target model的训练集不是从同一个分布中(the same population)采用得到或者采样方式不同。

构建好Synthetic data之后就可以训练不同shadow model了,如果shadow mode和target model的结构相同固然效果会好,但是我们不清楚所要攻击的目标的结构,这使得问题变得更加更加有挑战性。但是作者说可以采用与target model用的相同的服务来训练。

个人对于这里的理解是我们要进行成员攻击的很多target model是通过机器学习服务商(google等)来训练的,这些服务商如何利用数据构建模型我们是未知的,但是我们只要用这些服务商来构造我们的Shadow model,那么就能尽可能保证Shadow model 和target model是一样的。其中通过实验发现Shadow models的数量越多,后面训练出来的Attackers的精度越高。具体示意图如下所示

image-20220503160015976

2、Attackers的训练

构建好Shadow之后就是构建我们要攻击模型Attacker。Attacker的输入输出有以下三个部分构成( y y y, y ⃗ \vec{y} y
, in)或者( y y y, y ⃗ \vec{y} y
, out)。其中in或者out表示是否在Shadow model的训练集中

第一个维度的y是( x x x, y y y)属于 D s h a d o w t r a i n D^{train}_{shadow} Dshadowtrain或者 D s h a d o w t e s t D^{test}_{shadow} Dshadowtest的数据的label。

第二个维度 y ⃗ \vec{y} y
是Shadow model输出的属于每一类的概率大小,也就是最后一层Softmax之后的结果。

第三个维度的in或者out表示是否在Shadow model的训练集中。

其中原文说 D s h a d o w t r a i n D^{train}_{shadow} Dshadowtrain D s h a d o w t e s t D^{test}_{shadow} Dshadowtest应当disjoint,也就是不相交或者互斥,个人理解是只要不重合没有相当的元素就行(不知道对不对)。

把( y y y, y ⃗ \vec{y} y
, in)或者( y y y, y ⃗ \vec{y} y
, out)中的( y y y, y ⃗ \vec{y} y
)作为输入,in或者out作为label训练2分类器。

image-20220503155942666

结果

文章所采用的数据集等信息这里不做赘述,只记录感觉比较有趣的两个点:

1.如果Target model是个二分类的模型,那么攻击的效果会很差,和随机猜测差不多。作者猜测是因为二分类模型,输入给Attacker的特征信息过少,( y y y, y ⃗ \vec{y} y
, in) 或者( y y y, y ⃗ \vec{y} y
, out)虽然有四个维度,但是由于 y ⃗ \vec{y} y
的两个维度数值相加为1,所以相当于就3个维度(2个输入,1个输出)。从下图还可以发现如果target model本身的分类数目很多,也就是输出维度很大,则攻击精度越高。

image-20220503164307434

2.作者发现如果target model本身的过拟合程度越高,则攻击的效果效果越好。

image-20220503164806606
本笔记仅做个人学习记录使用,请勿用于其他用途。

今天的文章成员推断攻击:Membership Inference Attacks Again Machine Learning Models[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64767.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注