【文章思路、算法分析】Membership Inference Attacks Against Machine Learning Models
白菜苗
- 1、成员推理攻击目的
- 2、阴影模型构建
- 3、攻击模型的构造
- 4、算法分析
- 5、总结
如果你不小心又亦或是专门寻找这篇文献相关知识,那么很高兴能和你们分享这篇文章。
何谓成员推理攻击,陌生而又抽象?莫慌,现在我们就来探讨下针对机器学习的成员推理攻击是如何实现的,其实这也是本文的中心思想,如果了解了成员推理攻击的目的、如何实现的,那么这篇文章的核心思想你已经掌握了,后面的实验都是一些对比性实验和一些攻击防御策略,稍微次要点,
废话少说,那么我们按照文章的思路来。
1、成员推理攻击目的
图1:黑盒设置中的成员推理攻击。攻击者使用数据记录查询目标模型,并获得模型对该记录的预测。预测是记录属于某个类的概率向量,每个类一个。这个预测向量和目标记录的标签一起传递给攻击模型,由攻击模型推断记录是否在目标模型的训练数据集中。
图1想说明的是:
- 如果你有一个数据data(record,label)data(record,label)data(record,label),你可以理解为你输进的是data(x,y)data(x,y)data(x,y),其中xxx就是特征,yyy就是你数据的标签(例如属于哪个类别),好啦,你把它输进目标模型TargetModelTarget ModelTargetModel,那么目标模型的输出结果是一个预测向量predictionpredictionprediction,里面包含的元素都是概率(例如 [A:0.2,B:0.3,C:0.5],不一定这样,方便理解而已),这个向量的元素在[0,1]中,加起来等于1。这些概率也称为置信度值。 选择具有最高置信度值的类别作为数据记录的预测标签。
- 然后,我们获得了预测向量predictionpredictionprediction,将它和真实标签labellabellabel(也就是我举例的yyy),两个作为输入(prediction,label)(prediction, label)(prediction,label)输入到攻击模型attackattackattack,然后攻击模型会输出一个结果。这个结果就会告诉你,你这个数据是否是属于目标模型TargetModelTarget ModelTargetModel的训练集。这个就是整篇论文想干的事。
2、阴影模型构建
图2:使用与训练目标模型相同的机器学习平台训练阴影模型。目标和阴影模型的训练数据集格式相同,但不相交。阴影模型的训练数据集可能重叠。所有模型的内部参数都是独立训练的。
图2想说明的是:
- 首先,我们这个是黑盒攻击,不知道模型的算法,结构,超参数,那怎么办?那么阴影模型的意义就体现出来了,我构建阴影模型,你有10个类,我就构建10个阴影模型去模仿你的每个类别的行为。数据集格式相同,内容相似,在同样的ML API接口,是不是模型的输出结果也相似。换句话说,阴影模型的意义就是模仿目标模型,例如我们模仿一个人,是不是我模仿你的行为越多,说明我和你越相似,类似这个道理,我的每一个类,相当于你的每一个行为。 所以后面提到阴影模型越多,攻击效果越好也是基于这个原因,就越像嘛。
3、攻击模型的构造
图3:根据阴影模型的输入和输出训练攻击模型。对于影子模型训练数据集中的所有记录,我们查询模型并获得输出。这些输出向量被标记为“in”,并添加到攻击模型的训练数据集中。我们还查询了测试数据集与训练数据集不相交的阴影模型。该集合上的输出被标记为“out”,并被添加到攻击模型的训练数据集中。在构造了一个反映阴影模型在其训练和测试数据集中的黑匣子行为的数据集之后,我们训练了一组ctarget攻击模型,每个目标模型的输出类都有一个。
图3想说明的是:
- 首先,我们先看这个图:在这里,他用测试集和训练集(每个类别的)输入到自己对应的阴影模型里,然后阴影模型就会输出相应的predictionpredictionprediction,那么我们再看看最右边数据集里的数据(prediction,label,in/out)(prediction, label, in/out)(prediction,label,in/out),这是哪里来的呢,我们可以看看,predictionpredictionprediction是阴影模型输出的结果,那么这个我们是已知的,label又哪里来呢?是由我们测试集和训练集(record,label)(record, label)(record,label)来的,in/out又怎么区分呢,这个是我们认为打上的标签,参与阴影模型训练的就为“in”标签,参与测试的就为“out”标签。
- 有了(prediction,label,in/out)(prediction, label, in/out)(prediction,label,in/out)数据我们是不是可以训练我们的攻击模型呢?答案是的,我们可以细想,我们要判别的是一个数据是否是参与过目标模型的训练,那么结果有两个,一个是“是”,一个是“不是”,这就可以转化为二分类问题了。我们可以把(prediction,label)(prediction, label)(prediction,label)当成一个整体X(代表特征),in/outin/outin/out代表标签yyy。
- 有了这个想法,那么我们是不是可以理解图1了,我们输入一个数据到目标模型,获得了预测向量predictionpredictionprediction,将它和真实标签labellabellabel(也就是我举例的yyy),两个作为输入(prediction,label)(prediction, label)(prediction,label)输入到攻击模型attackattackattack,然后攻击模型会输出一个“in”/“out”的结果。"in"就说明参加了目标模型训练,"out"就是没有。
- 那么怎么确保我我攻击模型输出的结果是真的呢,例如我们可以拿一个数据,这个是我们已知的datadatadata,参加过阴影模型训练的数据。我们是不是也知道它属于“in”标签,那么我们将datadatadata输入到目标模型,获得了预测向量predictionpredictionprediction,将它和真实标签labellabellabel(也就是我举例的yyy),两个作为输入(prediction,label)(prediction, label)(prediction,label)输入到攻击模型attackattackattack,然后攻击模型会输出一个“in”的结果。是不是说明我们的攻击模型确实是可以正确判断的(当然这也并不能说明带有“in”标签的数据一定是在目标模型的数据集里,因为我们并不知道目标模型的数据集到底有什么数据)。
4、算法分析
这个算法是用于构建数据集的,当然这个数据集代表一个类别。我们看看他是怎么操作的。
- 步骤1-5是对数据的初始化。 6-25是一整个迭代过程,那我们来细细研究探讨下。
- 步骤7,将数据集x输入到目标模型,会得到一个预测向量y。
- 步骤8ycy_cyc>=yc∗y^*_cyc∗,这一步骤我理解为是提纯操作,从步骤15可以看见,每次ycy_cyc赋值给yc∗y^*_cyc∗,说明每次迭代后都要进行比较,这个概率值只会越来越大,因为不符合条件,yc∗y^*_cyc∗的值是不会变的。
- 步骤9说明ycy_cyc要大于一个阈值confminconf_{min}confmin,同时在预测向量y中判别为类别C的概率要为最大才符合条件。
- 步骤10这个不太懂,因为文中也没有说明。
- 步骤14-16就是数据更新。
- 步骤17-23,我这样概括吧,k可以理解为特征,一开始它取最大值,当前面的if不符合条件是,就会进入步骤17-23。我举个例子说明,当我们描述一个人的时候,是不是越详细,越能确定一个人(就是k越大)。例如,我要对男生和女生进行分类,穿黑色衣服和牛仔裤的人就是女生,结果还有一些女生没算进来,那么是不是放宽要求,喔,原来只穿黑色衣服的也是女生,是不是能找到的人就更多了,K值得意思就这样,最大找不到符合要求的数据,那么我们就减小一下。
- 步骤24就是把符合要求得数据集更新一下。
5、总结
文章的中心思想算是介绍完了,后面涉及一些实验,大部分都是对比试验,例如数据集大小对攻击效果的影响、不同平台API接口,哪个生成的目标模型更易受攻击,还有过拟合带来的影响等等,后面也提及到了一些缓解攻击的防御策略,这里就没有详细说了,看的话应该都能比较容易理解,当然有些我也不一定完全懂。如果有什么问题欢迎探讨!
【全文翻译】Membership Inference Attacks Against Machine Learning Models
好啦!到此结束,希望能帮助到你\color{maroon}{好啦!到此结束,希望能帮助到你}好啦!到此结束,希望能帮助到你
【文章思路、算法分析】Membership Inference Attacks Against Machine Learning Models相关推荐
- 【全文翻译】Membership Inference Attacks Against Machine Learning Models
针对机器学习模型的成员推理攻击 I. INTRODUCTION II. MACHINE LEARNING BACKGROUND (机器学习背景) III. PRIVACY IN MACHINE LEA ...
- 【全文翻译】ML-Leaks: Model and Data Independent Membership Inference Attacks and Defenses on Machine.....
ML泄漏:基于机器学习模型的模型和数据无关的成员推理攻击与防御 I. INTRODUCTION II. PRELIMINARIES(准备工作) A. Membership Inference Agai ...
- 组会 | RELAXLOSS: DEFENDING MEMBERSHIP INFERENCE ATTACKS WITHOUT LOSING UTILITY
20220304 组会记录 文章目录 20220304 组会记录 论文一 top view How to do Communicate Note 论文一 <RELAXLOSS: DEFENDIN ...
- 【论文阅读】Where Did You Learn That From? Surprising Effectiveness of Membership Inference Attacks Agains
一.论文信息 题目:Where Did You Learn That From? Surprising Effectiveness of Membership Inference Attacks Ag ...
- DECISION-BASED ADVERSARIAL ATTACKS: RELIABLE ATTACKS AGAINST BLACK-BOX MACHINE LEARNING MODELS 论文解读
Abstract 这篇文章中我们介绍了Boundary Attack, a decision-based attack that starts from a large adversarial per ...
- Practical Black-Box Attacks against Machine Learning
文章目录 概 主要内容 Jacobian-based Dataset Augmentation Note Papernot N, Mcdaniel P, Goodfellow I, et al. Pr ...
- [论文解读] Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey
Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey 文章目录 Adversaria ...
- Explaining complex machine learning models with LIME
(This article was first published on Shirin's playgRound, and kindly contributed to R-bloggers) 272 ...
- Membership Inference Attacks Against Recommender Systems论文解读
0 摘要 推荐系统通常针对高度敏感的用户数据进行训练,因此推荐系统潜在的数据泄露可能会导致严重的隐私问题. 本文首次尝试通过成员推理的角度来量化推荐系统的隐私泄漏. 与针对机器学习分类器的传统成员推理 ...
最新文章
- VA01创建SO的增强点MV45AFZZ的几点实际应用总结
- Android使用adb命令安装应用-连接usb
- [JavaWeb-HTML]HTML标签(大部分常用标签介绍)
- Python当前线程休眠1秒钟
- python调用函数怎么错_在Python中从类调用函数时参数数目错误
- IOS13图标尺寸_苹果iOS 13特性大猜想:新增黑暗模式、多窗口应用、手势导航
- 2012年7月的主要目标
- HttpClient 使用指南 - POST篇
- Json对象与Json字符串互转(四种转换方式)
- iOS 结合YYLabel实现文本的展开和收起
- 怎么在Excel里输入可以打钩的选择框?
- 网站备案服务器ip怎么填写,域名备案网站ip地址如何填写
- 一文读懂“什么是Web 1.0,Web 2.0,Web 3.0?”
- DeepLearningToolBox学习——NN(neural network)
- 使用VMware通过vmdk文件创建XP虚拟机
- Django框架实现在线考试系统
- 数据结构算法——1089. 路由器
- 笔记 - 高等教育的创新
- 图像数据集制作——窗位窗宽+归一化处理【python版本】
- 数字图像处理---LOG算子和CANNY算子边缘提取(matlab)