[论文精读]Membership Inference Attacks Against Machine Learning Models

中文译名:针对机器学习模型的成员推理攻击

会议名称:2017 IEEE Symposium on Security and Privacy (SP)

发布链接:Membership Inference Attacks Against Machine Learning Models | IEEE Conference Publication | IEEE Xplore

CODE:GitHub - csong27/membership-inference: Code for Membership Inference Attack against Machine Learning Models (in Oakland 2017)
我认为有必要看看人家的代码怎么写的。

阅读原因:要做一个成员推理攻击的任务,需要了解什么是成员推理攻击

探讨的核心内容:给定一个数据集和一个黑盒模型,决策是否这个数据集是模型的训练集。

1.研究背景:

机器学习即服务(可简单理解为云端大模型)可能侵害了用户的隐私来作为模型的训练数据。由于大模型公布出来的大多都是黑盒模型,用户无法得知自己的隐私数据是否被拿去非法当作训练集,隐私问题是需要被严肃对待的,因此提出了本文的研究方向:判断给定数据是否被作为训练集投入模型的构建中。

2.问题描述:

考虑这样一件事:有一组标注过的且分类过的数据集,假设使用机器学习算法来训练分类模型,该模型捕获数据记录内容和标签之间的关系。

置信度:对于任何输入的数据,模型输出记录该数据属于某个类的预测概率向量(每类一个这样的预测向量),把这些概率记作置信度。
选择预测概率最高的一个类别作为数据的预测类别。

假设攻击者具有对模型的查询访问权限,并且可以在任何数据记录上获取模型的预测向量。攻击者知道模型的输入和输出的格式,包括它们的数量和它们可以采用的值范围。还假设攻击者 (1) 知道机器学习模型的类型和架构,以及训练算法,或者 (2) 对用于训练模型的机器学习预测机(例如,“机器学习即服务”平台)具有黑盒访问权限。在后一种情况下,攻击者先验地不知道模型的结构或元参数。
攻击者可能对从中提取目标模型的训练数据集的总体有一些背景知识。例如,他可能独立地从总体中抽取样本,与目标模型的训练数据集脱节。或者,攻击者可能知道一些关于总体的一般统计数据,例如,特征值的边缘分布。

如果攻击者可以正确的判断是否数据集是模型的训练数据与否,则攻击者获胜。评价攻击精确率的标准矩阵是:准确率和召回率

3.成员推理:

总述

对于训练好的模型,都会天然地对训练数据集有着过拟合的效果:模型在面对训练数据集和从未见过的数据集的表现通常情况下是不同的。攻击者的目标是构建一个可以识别模型对成员 or 非成员这类数据输出表现的 不同之处的攻击模型。这样就可以依赖目标模型的输出来判断数据集是成员还是非成员。

为了训练攻击模型,作者构建了多个影子模型,目的是模仿目标模型的行为,使得二者输出相似。与目标模型相反,对于每一个构建的影子模型,都可以知道其真实事实,也就是特定的数据是否在其训练的数据集中。

基于此可以使用监督学习,对影子模型的输入和相应输出上进行监督训练(分别的标签是in或者out),教会攻击模型如何区分影子模型对其训练数据集成员的输出和非成员输出。(影子模型和攻击模型是不同的东西。影子模型是在模仿黑盒目标模型的输出形式,攻击模型是最终需要构建的一个二分类器,学习依据是目标模型的预测结果和标签值,输出是in / out OF 成员)

 主要的挑战在于,当攻击者不知道目标模型的内部参数,只能通过公共 API 对其进行有限的查询访问时(黑盒),如何训练攻击模型以区分目标模型训练数据集中的成员和非成员。为了解决这个难题,作者开发了一种影子训练技术,使得可以在代理目标(影子模型)上训练攻击模型,而我们确实知道这些目标(影子模型)的训练数据集,因此可以对其进行监督训练。

个人小总结:首先要构建一些影子模型来完成对目标模型的模拟,然后对这些已经可以模拟目标模型的影子模型进行训练,记录训练的数据集,这些数据集是天然的影子模型的成员,是已知标签,因此可以进行有监督学习,训练攻击模型。

影子模型

 对影子模型的训练:如果影子模型的训练数据集刚好和目标黑盒模型的训练数据集有重叠部分,那将会很好;如果没有任何重叠,这将是最差的情况。对影子模型的训练数据集来说倒是无所谓,只要能和目标模型的输出类似即可(相当于小蒸馏了)。

影子模型必须和目标模型使用相同的方法来训练,如果目标模型的训练算法和模型结构已知的话很容易,但是机器学习及服务的类型和结构均未知,不过攻击者可以使用与训练目标模型完全相同的服务(如谷歌预测 API)来训练影子模型,如上图。

影子模型越多,攻击模型就越精准。当影子模型在自己的训练数据集上运行时,攻击模型会识别出影子模型的行为与它们在训练期间未遇到的输入之间的差异。因此,更多的影子模型可以为攻击模型提供更多的训练素材。

生成影子模型的数据集

要训练影子模型,攻击者需要与目标模型训练数据分布相似的训练数据。文章提到了几种方法:

1.基于模型的综合

如果攻击者既没有真实的训练数据,也没与关于真实训练数据的分布统计,那么可以直接使用目标模型本身来为影子模型生成训练数据。直觉是,被目标模型以高置信度分类的记录在统计上应与目标的训练数据集相似,从而为影子模型提供良好的素材。生成数据集需要分两步:

(1)检索

使用爬山算法,在可能的数据记录空间中寻找被目标模型高置信度分类的输入;

(2)样本

根据这些记录合成数据。这个过程合成一条记录后,攻击者就可以重复这个过程,直到影子模型的训练数据集满为止。

合成过程的伪代码见算法 1。首先,确定攻击者希望生成合成数据的类 c。第一阶段是一个迭代过程。首先随机初始化一条数据记录 x。假设攻击者只知道数据记录的语法格式,则从该特征的所有可能值中均匀随机采样每个特征的值。在每次迭代中,提出一条新记录。只有当提出的记录能提高爬山目标(即被目标模型归类为 c 类的概率)时,才会被接受。 

2.基于统计的综合

攻击者可能具有一些有关人口的统计信息,这些人口是从中提取目标模型的训练数据的。 例如,攻击者可能具有不同特征的边缘分布的先验知识。我们从阴影模型的边缘分布中独立地抽取每个特征的值,从而生成阴影模型的综合训练记录。 由此产生的攻击模型非常有效。

3.真实数据噪声化

攻击者可以访问一些与目标模型的训练数据相似的数据,并且可以将其视为“噪声”版本。在作者对位置数据集的实验中,通过翻转10%或20%随机选择特征的(二进制)值来模拟这一点,然后在产生的噪声数据集上训练阴影模型。这种情况下,目标和阴影模型的训练数据不是从完全相同的总体中采样,或者以非均匀的方式采样的情况。

训练攻击模型

如上图所示,训练攻击模型的流程:把所有影子模型的输出添加到攻击模型的训练集上,其中,对于影子模型的训练集及其经过影子模型的输出的集合添加标签IN;对于影子模型的测试集及其经过影子模型的输出的集合添加标签out,这样做到了监督学习。

图中影子模型的输入是数据集和对应的类别(这个类别:机器学习模型学习了多种类别的预测,文中为每一个类别设计了一个影子模型来专门模仿机器学习在该类别中的表现)

攻击模型的数据集需要的:预测结果(这个预测结果是影子模型的输出)、类别标签(字面意思)和 in/out标签(这个标签是人工标注的,参与影子模型训练的数据就是in标签;测试的就是out标签。

那么攻击模型的任务实际上可以认为是一个二分类任务,输入的所有数据是(prediction, class label),对应的标签就是in/out

评价

1.数据集

CIFAR:CIFAR-10由10个类别的32×32彩色图像组成,每个类别有6,000个图像。 总共有50,000个训练图像和10,000个测试图像。 CIFAR-100具有与CIFAR-10相同的格式,但是它具有100个类,每个类包含600张图像。每个类有500张训练图像和100张测试图像。 在攻击实验中使用了该数据集的不同部分,以显示训练数据集大小对攻击准确性的影响。

购买记录数据集:基于Kaggle的“获得有价值的购物者”挑战数据集,其中包含数千个人的购物记录。挑战的目的是设计准确的优惠券促销策略。 每个用户记录都包含其一年内的交易。 交易包括许多字段,例如产品名称,连锁店,数量和购买日期。
对于论文中的实验,作者导出了一个简化的购买数据集(包含197、324条记录),其中每个记录包含600个二进制特征。 每个功能对应一个产品,并表示用户是否购买了它。 为了设计分类任务,首先将记录分为多个类别,每个类别代表不同的购买方式。 在实验中,使用5种不同的分类任务,分别使用不同数量的类{2,10,20,50,100}。分类任务是在给定600个特征向量的情况下预测用户的购买风格。 使用从购买数据集中随机选择的10000条记录来训练目标模型。 数据集的其余部分有助于阴影模型的测试集和(如有必要)训练集。

位置信息数据集:从Foursquare社交网络中公开使用的移动用户位置“签到”集中创建了一个位置数据集,仅限于曼谷地区,并于2012年4月至2013年9月收集了11592位用户和119744个位置,共计1136481个签到位置。
文中筛选出签到少于25次的用户和访问量少于100次的场所,留下了5010个用户个人资料。 对于每个位置地点,都有地理位置及其位置类型(例如,印度餐厅,快餐等)。 位置类型总数为128。我们将曼谷地图划分为0.5 k m × 0.5 k m 的区域,从而产生318个区域,每个区域至少有过一个用户签到。

德州住院数据集:德克萨斯州卫生服务部于2006年至2009年发布的医院出院数据公共用途文件。文中使用10000个随机选择的记录来训练目标模型。

MINST:70000个手写数字组成的数据集,格式化为32×32的图像并进行标准化

人口普查收入数据集:使用随机选择的10000条记录来训练目标模型。

2.目标模型(黑盒)

Google Prediction API、amazonml、本地的卷积神经网络

3.评价指标

精度、召回率

4.结论

我们设计、实现并评估了针对机器学习模型的第一次成员推断攻击,特别是使用Google Prediction API和Amazon ML在云中训练的黑匣子模型。我们的攻击是一种通用的、定量的方法来理解机器学习模型如何泄漏其训练数据集的信息。在选择要训练的模型类型或使用的机器学习服务类型时,我们的攻击可以作为选择指标之一。

我们的关键技术创新是阴影训练技术,它训练攻击模型,以区分目标模型对训练数据集成员和非成员的输出。我们证明在这种攻击中使用的阴影模型可以有效地使用合成或噪声数据创建。在由目标模型本身生成的合成数据的情况下,攻击不需要任何关于目标模型训练数据分布的先验知识。

从隐私角度来看,住院和其他医疗数据集的成员资格是敏感的。因此,我们的结果具有实质性的实际隐私含义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/434612.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】Tcp报文的组成,Tcp是如何实现可靠传输的?

Tcp的报文组成 TCP(传输控制协议)是计算机网络中一种重要的传输协议,其报文组成包括多个字段,每个字段具有特定的含义。以下是TCP报文头的主要组成部分: 源端口号(Source Port):占用…

C语言 | Leetcode C语言题解之第445题两数相加II

题目: 题解: struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){int stack1[100];int stack2[100];int top1 0;int top2 0;int carry 0;int sum 0;struct ListNode* temp NULL;struct ListNode* head NULL;while (l1) {…

有关若依菜单管理的改造

导言: 搞了个后端对接若依前端,对接菜单管理时候懵懵的就搞完了,也是搞了很久。记一下逻辑和要注意的东西,以后做想似的能有个改造思路。 逻辑: 主要是要把后端传过的数组列表做成类似 这样的,所以要转格式…

git工具指令

下面是常用的Git命令清单,几个专用名称的译名如下: Workspace :工作区 Index /Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库新建代码库 在当前目录新建一个Git代…

如何在银河麒麟操作系统中查看内存页大小

如何在银河麒麟操作系统中查看内存页大小 1、操作步骤2、注意事项 💖The Begin💖点点关注,收藏不迷路💖 在操作系统中,内存页大小(Page Size)是一个重要的概念,它决定了操作系统如何…

GPT理论

1.GPT发展 Transformer是一个用作翻译任务的模型,谷歌出品。 GPT全称 lmproving Language Understanding by Generative Pre-Training,用预训练语言理解模型。OPENAI出品。 BERT全称Pre-training of Deep BidirectionalTransformers for Language Unde…

深度学习反向传播-过程举例

深度学习中,一般的参数更新方式都是梯度下降法,在使用梯度下降法时,涉及到梯度反向传播的过程,那么在反向传播过程中梯度到底是怎么传递的?结合自己最近的一点理解,下面举个例子简单说明! 一、…

828华为云征文|部署个人知识管理系统 SiyuanNote

828华为云征文|部署个人知识管理系统 SiyuanNote 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 SiyuanNote3.1 SiyuanNote 介绍3.2 SiyuanNote 部署3.3 Siyua…

WebSocket实现在线聊天室

项目实现源码: 前端源码 后端源码 1.常见的消息推送方式 1.1 轮询 1.1.1 轮询的概念 客户端以固定的事件间隔(例如每秒或几分钟)向服务器发送HTTP请求,服务器收到请求后,处理请求并返回数据给客户端 轮询具体实现htt…

element-plus中日历组件设置起始为周一

问题描述 element-plus中的日历组件默认是周日到周六,因业务需求,需要实现从周一到周日的顺序。 解决方式 引入dayjs及本地语言包,使用本地时区即可。 import dayjs from dayjs import dayjs/locale/zh-cn ... // 这一句是为了让日历使用本地…

Android 利用OSMdroid开发GIS

1、地址 Github地址:https://gitee.com/mirrors/osmdroid Git地址: GitCode - 全球开发者的开源社区,开源代码托管平台 Git下载包地址:Releases osmdroid/osmdroid GitHub 新建项目 osmdroid在线: (1&#xff09…

基于Hive和Hadoop的图书分析系统

本项目是一个基于大数据技术的图书分析系统,旨在为用户提供全面的图书信息和深入的图书销售及阅读行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以…

基于SSM+微信小程序的校园二手数码交易平台系统(二手3)(源码+sql脚本+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于ssm微信小程序的校园二手数码交易平台满足了不同用户的功能需求,包括用户、卖家以及管理员,下面对这不同用户的功能需求进行简介。 (1&#xff09…

正点原子——DS100示波器操作手册

目录 基础按键: 快捷键 主界面: 垂直设置: 通道设置: 探头比列: 垂直档位: 垂直偏移: 幅度单位: 水平设置: 触发方式: 测量和运算: 光标测量&am…

队列及笔试题

队列 先进先出 使用单链表进行队尾插入 队头删除 其中带头结点直接尾插,不带头结点第一次操作要判断一下 但是带头结点需要malloc和free 函数传需要修改的参数方法 1、二级指针 2、带哨兵位的头结点 3、返回值 4、如果有多个值,用结构体封装起来…

深入解析Debian与Ubuntu:技术特点与用户使用指南

深入解析Debian与Ubuntu:技术特点与用户使用指南 引言 Debian和Ubuntu作为两大知名的Linux发行版,不仅在历史和理念上有所不同,在技术特点和用户使用方法上也各具特色。本文将深入解析它们的技术特点,并提供用户使用指南&#x…

GB/T28181规范解读和技术实现

GB/T28181发展历程 GB/T28181-2011: 提出与起草:由公安部科技信息化局提出,全国安全防范报警系统标准化技术委员会(SAC/TC100)归口,公安部一所等多家单位共同起草。发布与实施:2012 年 6 月 1 …

timedatectl命令:告别时间烦恼,一键同步系统时间

一、命令简介 ​timedatectl​ 命令用于查看和设置系统的时间和日期,以及配置时区和 NTP(Network Time Protocol)设置。 相关命令:cal ​显示日历、 date ​查看、设置日期 ‍ 二、命令参数 格式: timedatectl […

Linux基础(一):计算机组成

整体构成 五个部分:CPU、输入、输出、内存、硬盘 1.CPU 1.1CPU指令集 CPU内部包含一些微指令,包含两种——精简指令集(Reduced Insruction Set Computer, RISC)和复杂指令集(Complex Instruction Set Computer, CIS…

基于ASRPRO的语音应答

做这个的起因是为了送女朋友,而且这东西本身很简单,所以在闲暇之余尝试了一下。 这个工程很简单,只通过对ASRPRO进行编程即可。 先看效果。(没有展示所有效果,后续会列出来所有对话触发) 语音助手示例1 语音…