ML-Leaks:Model and Data Independent Membership Inference Attacks and Defenses on ML Models.2018论文阅读笔记
摘要
早期的成员推理攻击对攻击者有很多的假设,例如用多个影子模型,知道目标模型的结构且有相同分布的数据集。本文一步步放松这三个假设,表明这种攻击应用广泛并花销较低。使用了八个不同的数据集对成员推理攻击进行了全面的研究,显示了提议的跨域攻击的可行性。还提出了第一个有效的防御机制,以抵御此类更广泛的成员资格推理攻击,从而保持ML模型的高水平实用性。
实验
实验中,使用了8种数据集MNIST,CIFAR-10,CIFAR-100,Location,Purchase2,Adult,NEWS和FACE。数据集使用了K-means方式手动定义类,类的数量包括2、10、20、50和100。
攻击
使用一个影子模型
第一种攻击只用一个影子模型。实验显示与多个影子模型效果相似,显著降低了进行攻击的成本。
攻击可分为三个阶段:影子模型训练,攻击模型训练和成员推理。
影子模型训练:将数据集划分为两个不相交的部分,为影子模型训练集和输出集。用训练集训练唯一的影子模型。
攻击模型训练:使用训练好的影子模型
S
S
S对数据集所有数据点预测,获得后验概率。每个数据点取最大三个后验概率为特征向量。如果特征向量的对应数据点在
D
S
h
a
d
o
w
T
r
a
i
n
D_{Shadow}^{Train}
DShadowTrain中,则将其标记为1(成员),否则将其标记为0(非成员)。然后使用所有生成的特征向量和标签来训练攻击模型
A
A
A。
成员推理:攻击者访问用
X
T
a
r
g
e
t
X_{Target}
XTarget访问
M
M
M获得相应后验概率。然后选择3个最大后验概率,输入到
A
r
Ar
Ar中获得预测结果。
步骤:每个数据集,先对半分裂为
D
S
h
a
s
o
w
D_{Shasow}
DShasow和
D
T
a
r
g
e
t
D_{Target}
DTarget。再将
D
S
h
a
s
o
w
D_{Shasow}
DShasow分裂。图像数据集使用CNN建立目标模型,含有两个卷积层和两个池化层有一个大小128隐藏层。其余数据集使用具有一个隐藏层(128个单元)的多层感知器(神经网络)作为目标模型。影子模型结构和目标模型相同。
攻击模型由另一个多层感知器(64单元的隐藏层和Softmax输出层)建立。
本文也采用精确度和召回率作为衡量标准,TP、TN、FP和FN分别表示真成员、真非成员、假成员和假非成员。
在不同数据集上做试验后,发现攻击效果比第一个论文的要好。。。
不过话说回来,本身的目标模型在训练集上的预测效果就比测试集好很多,有的都有78%的差异了。本文也提到了数据集类数量对攻击效果的影响,类数越多,攻击效果越好,和Shokri的观点相同。另外,本文还考察了使用不同个后验概率来做特征向量对攻击的影响,最后发现没有太大影响。然后发现其实影子模型数量也没有太大影响。(我记得Shokri说数量越多攻击效果越好-_-)
然后使用了MLaaS训练模型,发现会比本地训练模型效果好一丢丢。
开始放宽假设了:首先假设攻击者知道模型种类,但不知道细节。先用目标模型一半的训练参数训练模型,对半减少了批量大小、隐藏单元和正则化参数。效果依旧不错,接下来使用双倍参数训练影子模型,精确度会下降。
所以结论:攻击者不需要知道模型的超参数。
继续假设:攻击者不知道模型算法,首先使用任意分类器测试,结果不太好。只能使用多种分类算法做子影子模型,然后组合成一个影子模型来执行攻击。
没有同分布数据集
第二种攻击不使用相同分布的数据集,这个假设更加现实。对比之前的数据合成,本文提出了数据传输攻击,对手利用另一个数据集建立阴影模型,并生成相应的数据来攻击目标模型。实验显示数据传输攻击在更具普遍性、现实性和广泛适用性的同时,也实现了较强的隶属度推理。
这个攻击方法使用与目标模型不同分布的真实数据集训练影子模型,也就是数据传输攻击。影子模型仅用于总结机器学习模型训练集中数据点的成员状态。
模型设置与前一节相同,不过一些攻击效果反而变好了也是不太能理解,说明影子模型的真实用途可能也不是非要模拟目标模型。不过也是限于某些数据集之间。
没有影子模型并且没有任何知识还不用同分布数据集
第三种攻击不需要建立任何影子模型,使用非监督方式实施攻击。只依赖目标模型针对输入数据点
X
T
a
r
g
e
t
X_{Target}
XTarget的输出概率
M
(
X
T
a
r
g
e
t
)
M(X_{Target})
M(XTarget)。
攻击者首先获取
M
(
X
T
a
r
g
e
t
)
M(X_{Target})
M(XTarget),然后选取最高的后验概率,比较是否大于某个阈值,如果大于,判断数据点在训练集中,否则不在。
不过总的来说前两种攻击方式确实要优于第三种,第三种太随机了。
防御
本文还提出两种防御策略。主要方向还是加强通用性,调查减少过拟合的技术。重点讨论面对第一种攻击方式时的防御效果,且进一步假设攻击者知道正在实施的防御技术,并按照相同的防御技术构建其阴影模型。
dropout
第一种是dropout,包含大量参数的全连接神经网络。在每次训练迭代时随机删除一定比例的edges(线)。本文将dropout部署在输入层和隐藏层中,设置丢弃率为0.5。
实现:几乎所有数据集的攻击效果都降低了,有些模型预测准确率会有所上升。
在对不同的丢弃率实验时,发现高丢弃率会显著降低攻击效果,但更高或更低的丢弃率也会影响模型性能,0.5是最合适的选择。
但是这种方式只能应用于神经网络。
模型堆叠
第二种是模型堆叠,以分层方式组织多个模型,防止过拟合。
如果目标模型有多个部分,每个部分以不同子训练集数据训练,会减少过拟合倾向。可以通过集成学习实现。集成学习是一种ML范式,它不使用单个ML模型,而是将多个ML模型组合起来构建最终模型。由不同的方法来组合这些ML模型,例如装袋或增压。为便于防御,我们将重点放在以分层方式堆叠模型上。
目标模型有两层三个模型组成,第一层包括两个模型,第二层一个模型。先将数据点
X
X
X应用于两个子模型上得到两个概率
Y
1
Y^1
Y1和
Y
2
Y^2
Y2,然后连接两个输出,即
Y
1
∣
∣
Y
2
Y^1 | | Y^2
Y1∣∣Y2,并将结果应用于预测最终输出
Y
Y
Y的第三个模型。为最大限度防止过拟合,三个模型由不相交的三个数据集训练。
实验:实验中用CNN训练第一个模型,随机森林训练第二个模型,逻辑回归训练第三个模型,建立目标模型和影子模型,测试在不同层中使用不同机器学习模型的效果。在12个不相交的数据集中选择数据,前六个数据集用来训练和测试目标模型,后留个用于影子模型。
这种防御方法在所有的数据集上都降低了攻击效果,对比dropout,模型堆叠在某些数据集上更有效。多数数据集中,模型堆叠更多的增加了预测准确率。