【论文阅读】Membership Inference Attacks Against Machine Learning Models

Machine Learning as a Service简单介绍

机器学习即服务(Machine Learning as a Service,MLaaS),即将机器学习算法部署到云平台上,用户可以上传自己的数据集,利用MLaaS上的算法等资源训练一个model,然后用这个模型预测。比如超市可以训练一个模型预测用户的购物喜好。 这里需要注意的是,大多数MLaaS平台,学习算法、训练过程、超参数的设定以及最终训练好的模型都不会对用户暴露,即MLaaS对用户是黑盒的,用户最终只能使用平台训练好的模型的预测输出。

什么是Membership Inference Attacks(MIA)

MIA攻击过程:判断一条数据是否用于训练指定的模型(target model),其涉及到用户信息的隐私信息。比如一个医疗机构利用用户数据训练一个模型,该模型用于判断哪些体检指标与患癌症相关,用于预测病人患癌症的概率。攻击者知道某一病人的数据,并利用MIA预测该用户数据用于训练了该模型,那么攻击者便能大胆猜测——该用户得了癌症,之后就可能向该用户推送一些医疗保险之类的。
MIA能够攻击成功的一个重要因素是,模型对于其训练数据集的预测分布与对其没有见过的数据集的预测分布是不同的,其中可能的原因是模型对其训练数据集过拟合了(神经网络很多参数是冗余的,会记住训练数据集额外的一些信息)。
MIA可以根据攻击者所知道的额外的信息多少分为白盒(white-box)和黑盒(black-box):

  • 白盒:攻击者知道目标模型model structure、训练的细节、用到的learning algorithm等等;以及训练数据集或者其分布等等;
  • 黑盒:攻击者只能以black-box的形式访问目标模型,即query目标模型时,仅能得到目标模型的输出(prediction vector),模型的结构以及训练过程等信息一无所知;

攻击实现过程

Attack pipeline

该论文的攻击场景是MLaaS,攻击者只能通过API访问target model,得到模型的prediction vector(confidence vector),模型的其他细节对攻击者而言是黑盒的。另外该论文针对的是监督学习(supervised learning)。前面提到了MIA要做的就是判断一条数据是否用于训练目标模型,即in(1) Or not in(0) training dataset,因此可以将MIA的攻击模型看作一个二分类的分类器,将在后文描述。

Shadow training

由于攻击者只能黑盒访问target model,但是攻击者又要分析target model对其训练数据集以及非训练数据集的行为的差别,因此该文章提出了一种shadow training 的方法来训练shadow models,这些shadow models模仿target model的行为。在黑盒情况下,攻击者对target model的模型结构、机器学习算法、训练过程的细节都是一无所知的,要训练一个类似target model的模型是有困难的,但是这篇文章针对的是MLaaS的场景,因此用了一个小小的trick——即攻击者也利用MLaaS平台,将自己准备的数据集输入,然后得到与traget model预测行为类似的shadow models。训练过程如下:
在这里插入图片描述

Dataset

上面的shadow training能够通过MLaaS API训练得到预测行为与target model类似的shadow models,但是有一个问题——shadow training过程中的训练数据集哪里来的呢?即上图的shadow training Set i是哪里来的呢?
我们知道一个模型的性能/行为的差异除了取决于模型结构、学习算法以外,还与训练数据集密切相关。比如要将一个用与目标数据集完全无关的数据集上训练好的模型迁移到目标场景下,需要用目标数据集进行fine-tuning。因此要使得shadow model的行为尽可能的与target model相似,还需要shadow training Set与private training Set相关。 该论文提到了三种收集数据集的场景:

  • 1、场景一:攻击者没有任何与目标模型的隐私训练数据集相关的信息,因此只能使用合成数据集(Model-based synthesis)。注意这里的合成有个Model-based,该论文认为如果合成的数据在target model上能够获得较高的confidence,那么就说明该合成数据是与训练数据相似的,因为target model在其训练数据集上的表现一定是很好的,预测的true label的confidence一定是很高的。具体的合成算法见下图(其实我没太看懂,看起来像是在搜索空间中搜索、选择更优的……);
    在这里插入图片描述
  • 2、场景二:攻击者知道private training dataset的一些统计信息、边际分布信息等,因此可以利用这些信息来合成shadow training set,这是基于统计信息的合成方法(Statistics-based synthesis)。比如攻击者知道private training dataset中一些特征的边际分布,便能对不同的特征分布采样;
  • 3、场景三:攻击者有一个private training dataset的加噪版本(Noisy real data)。该论文在实验中通过在目标数据集相关的总体(population)中采样部分数据集,再将其一些特征反转,以实现加噪,得到最终的shadow training dataset。

Train attack model

攻击者用shadow training set来训练shadow models,针对shadow models攻击者已知其training dataset,因此攻击者现在将shadow training dataset中的数据(x,y)输入shadow model得到prediction vectors(y’),然后将其标签标记为in,即该数据属于训练数据集;针对shadow model的test dataset中的数据,同样利用shadow model预测,得到prediction vector,然后将这些数据的标签设置为out,即该数据不属于训练数据集。 最后将这些数据集按照数据原始的标签(y)进行分类,针对不同的类别训练一个二分类成员攻击模型。 过程如下:
在这里插入图片描述
这里有两个值得注意的地方:

  • 为什么不同的类要分别训练一个attack model?——实际上一个数据集中,不同类别的数据分布是有差异的,以及有些数据类别之间的数量是非常不均衡的,因此将不同类别的数据分开,分别用于训练针对该类别的attack model有利于提高攻击的准确率;
  • 为什么训练attack model的数据中有初始的true class label(即y)?——target model对一条数据的预测输出(prediction vector)的分布应该是高度依赖于true label(y)的,攻击模型根据target model对训练数据集和非训练数据集的prediction vector围绕真实标签y的分布的差异,来识别数据是否数据训练数据集。 假设判断的依据是在真实类别上的confidence,且该数据不属于训练数据集;输入中没有y,仅仅只有y’的话;y’中预测概率最高的是c类别(且confidence数值很大比如0.9),而真实的是b类别,那么攻击者就可能因为在c类别上的高置信度将该数据识别为属于训练数据集(因为预测高置信度),而忽略掉模型实际已经预测错误了,该高置信度并非是真实类别上的高置信度。因此将data record的true label y与prediction vector一同输入attack model是很有必要的。整体的攻击流程如下:
    在这里插入图片描述
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值