【课程作业】Adversary Instantiation: Lower Bounds for Differentially Private Machine Learning论文阅读报告

0、论文信息

论文名字 Adversary Instantiation: Lower Bounds for Differentially Private Machine Learning
所属会议 IEEE Symposium on Security and Privacy (SP)
发表年份 2021
https://ieeexplore.ieee.org/document/9519424

1、研究意义

随着机器学习现在被用于训练敏感用户数据的模型,从医学图像,到个人电子邮件和短信,这些模型的隐私保护变得越来越重要。这种隐私不仅是用户所期盼的,而且也越来越多地受到法律的约束。
差分隐私(Differential privacy, DP)是目前隐私的标准定义。差分隐私分析最初被定义为查询机制在数据库上满足的属性,但后来被扩展到在私有训练数据上训练机器学习模型的算法。在神经网络中,差分私有随机梯度下降(DP- SGD)是最常用的具有DP保证的神经网络训练方法。
隐私分析的目的是上限,任何敌手都可以成功猜测模型训练的数据集的概率。通过分析概率上下限,将更准确地把握隐私保护限度。

2、研究背景

对差分隐私和差分隐私随机梯度的理论工作挺多的,比如Jayaraman等人也考虑了隐私上界和下界之间的关系,但没有像本文一样构建那样构造强下界;Jagielski等人构造了中毒攻击来评估差异隐私。但是,他们的不足就是所做的研究仅仅是测量一组配置。

3、本文的创新

我们基于中毒敌手上。通过对立地构建两个数据集D和D0用于评估DP-SGD。提供一对具体的攻击算法来实例化各种敌手场景下的假设性差异隐私敌手:一个是构建两个数据集D和D`的例子,另一个是接收一个模型作为输入(该模型是在这两个数据集之一上训练的)并预测它是在哪一个上训练的。
我们使用这两个敌手作为工具来衡量DP-SGD分析所做假设的相对重要性,以及目前没有做但将来可能会做的合理假设的潜在好处。 不同的假设组合对应于不同的威胁模型和对敌手能力的限制。
在这里插入图片描述

4、本文是模型创新?还是测量分析创新?还是应用创新?

本文的创新是应用创新,使用了实例敌手化的分析方法。

5、实验结果/测量结果

(1)数据集

论文在三个数据集上运行实验
MNIST: 使用由70000个28 × 28手写灰度数字图像的实例组成的MNIST图像数据集,任务是识别数字。MNIST将训练数据分为6万张用于训练的图像和1万张用于测试阶段的图像。
CIFAR: 使用CIFAR10,由32 × 32 RGB图像组成的标准基准数据集。学习任务是将图像分为10类不同的对象。该数据集分为50000个用于训练,10000个用于测试。
Purchase:在Kaggle的“获得有价值的购物者”挑战中提取的数千名在线客户的购物记录。我们使用了该数据集的处理版本。数据集中的每条记录都是单个用户的购物历史。数据集包含600种不同的产品,每个用户都有一个二进制记录,表明她是否购买了每种产品。根据购买的相似性,记录被分为10类。我们使用18000条记录进行训练,1000条记录进行测试。

(2)超参数

CIFAR10和MNIST,使用交叉熵作为损失函数,四层卷积神经网络
Purchase使用三层全连接神经网络
训练模型使用不同的私有SGD,MNIST和CIFAR的学习率为0.15,Prucahse数据集的学习率为1.1,MNIST和CIFAR的剪切因子为1.0,Purchase数据集的剪切因子为0.05。

(3)评估标准

实际测量出来的ε

(4)对比方法

(I)API access:敌手只能查询模型输出。
(II)Static Poison Attack:敌手可以在训练集插入 poisoned 数据,还能查询模型输出。
(III)Intermediate Poison Attack:敌手可以在训练集插入 poisoned 数据,还能查询模型输出,同时拥有训练时中间模型的参数访问权限。
(IV)Adaptive Poison Attack:敌手可以在训练过程中的每一步 (minibatches) 插入 poisoned 数据,还能查询模型输出,同时拥有训练时中间模型的参数访问权限。
(V) Adaptive Poison Attack: 联邦学习里 malicious entity 可以 poison 自己贡献的梯度。
(VI) Dataset Attack:允许敌手自己创建数据集,这是最强大的攻击,证明在这种条件下,敌手最强大,达到理论的隐私上界。

(5)实验结果

A. API Access Adversary

黑盒设置,敌手可以访问一个显示模型输出的 API (模型的输出置信度使敌手能够计算敌手选择的输入的损失)
计算移除的数据在 trained model 上的loss。

  1. 原理图: Adversary game for membership inference attack.
    在这里插入图片描述

Round 1: 敌手选择两个数据集
Round 2. 模型训练这再其中一个数据集上随机训练一个模型并返回
Round 3. 敌手预测哪个数据集被训练了
2. Roles
Crafter: 从原始数据集D中随机删除单个记录构造数据集D`
Trainer: 使用预定义超参数用D或D’训练模型
Distinguisher: 计算移除的数据在 trained model 上的loss。
3. 实验结果
在这里插入图片描述

• 数据集MNIST, CIFAR-10, Purchase 算出来的 ε 都很低,比如 0.31 << 4 (theoretical value)
• CIFAR-10, Purchase 的 leakage 比 MNIST 要严重一些。猜测是因为 MNIST 的数据高度相似,因此加入移除单个数据对模型影响不太大,以及敌手的能力有很多限制,拿不到中间参数,而 DP-SGD 却为中间参数提供了多余的保护。

B. Static Input Poisoning Adversary

MI 中 敌手并没有构造任何 adversarial things,仅从 pre-existing 的数据集中随机抽取。基于工作[26],这一部分假设敌手可以 craft poisoned input x and inject it into 训练集,以及获得最终训练好的模型。
理论依据是:用有/无 poisoned data 训练出来的模型会是不一样的。

  1. Roles
    Crafter: 假定可以访问底层数据分布 D-shadow 中的样本,敌手将训练一组shadow模型(使用与目标模型相同的超参数训练shadow模型,这允许敌手预测模型训练者的模型将如何表现)
    生成poisoned样本: 生成 poisoned 样本的方法是朝着某点梯度的反方向加扰动。
    xp←x+lr*ᐁl-malicious; l-malicious=1/n ∑loss(f; x, y)
    Trainer: 使用预定义超参数用D或D’训练模型
    Distinguisher: 计算被移除的数据在 trained model 上的loss
  2. 实验结果
    在这里插入图片描述

敌手能够利用其poison能力泄漏更多私人信息,从而获得更高的经验下限。

C. Intermediate Poison Attack

假设Distinguisher可以访问这些中间模型参数值
假设敌手可以 craft poisoned input x and inject it into 训练集,以及获得最终训练好的模型。并且假设 Distinguisher 能够获得 DP-SGD training process 的中间模型参数 θi。
计算 poisoned example 在中间模型上的 loss。

  1. Schematic: Adversary game for intermediate model adversary.
    在这里插入图片描述

Round 1: 敌手选择两个数据集
Round 2: 随机对其中一个模型进行训练,并返回模型更新的完整序列。
Round 3: 敌手预测哪个数据集用于训练
2. Roles
Crafter: 从原始数据集D中删除单个记录构造数据集D`
Trainer: 使用预定义的超参数在D或D’上训练模型,向distinguisher显示中间模型参数θi。
Distinguisher: 计算 poisoned example 在中间模型上的 平均或最大loss
3. 实验结果
在这里插入图片描述

• 图5显示,敌手仅在访问最终模型参数方面略微优于之前的敌手。
• 通过训练算法对最终模型输出的访问泄漏了几乎与训练期间应用的梯度一样多的信息。

D. Adaptive Poisoning Attack

DP-SGD 训练的每一个迭代都相互独立,最后利用 composition 理论近似 cumulative ε。每次迭代用的数据集并不要求是一样的。这一次,敌手并没有直接将生成的 poisoned example (xp, yp) 注入训练集,而是为每次迭代生成 fresh poisoned examples 放进 minibatches。
通过这种注入,希望 loss(D’-f; xp, yp) >> loss(D-f; xp, yp);D’ = D + (x, y)

  1. 原理图: Adversary game for adaptive input poisoning attack
    在这里插入图片描述

Round 0: 敌手生成查询输入
Round 2i: 敌手根据当前权重θi选择数据集D,D′
Round 2i+1: 在其中一个数据集上进行一次minibatch训练
重复 Round 2i, 2i+1 to N
Round N:敌手预测哪个数据集被训练了
2. Roles
Crafter: 按照 D 中的方法生成 query input (xp, yp);每次迭代,按照 Crafter 3 生成 fresh poisoned input (x, y) 放进 D’ = D+(x, y)。(x, y) 的生成通过 x←x+lr*ᐁloss,所以 loss(D’-f; xp, yp) >> loss(D-f; xp, yp)
Trainer: 选择 D 或 D’;如果选了 D,照常训练;如果选了 D’,则需要按照上面说的方法计算当前对于 D 的 fresh poisoned example (x, y)
Distinguisher: 计算查询输入(xp,yp)的损失
3. 实验结果
在这里插入图片描述

在隐私方面得到了一个更严格的下限。

E. Gradient Attack

DP-SGD 中,允许敌手控制 input example x 以及 gradient updates ᐁl(f; x, y)。一般的机器学习过程,敌手很难参与到训练过程修改梯度,但在 Federated learning 中,训练参与者却有可能直接修改 gradient vector to poison gradient。
之前的 Distinguisher 通过 (xp, yp) 的 loss 分辨,而本次实验直接检查梯度。

  1. 原理图
    在这里插入图片描述

Round 2i: 敌手选择梯度G, G’.的集合。
Round 2i+1: 模型训练选择这些梯度更新中的一个子集,并使用削波和噪声梯度来更新参数。
Round 2N: 敌手预测哪个数据集用于训练。
2. Roles
Crafter: Crafter 将 WaterMark 插入模型参数。对 f1, f2, …, fn(时间步 1~N 的中间模型)计算 M = min |ft - ft+1|;选择 M 中绝对值最小的 2n 个参数(因为小,为梯度更新贡献少,所以修改它们不太影响模型性能),将其以替换为我们 craft 的 poisoned gradients = sC/√2n。
Trainer: 如果选择 D’,那么先调用 Crafter 生成扰动梯度,再从训练集抽取 minibatch 计算梯度更新,以概率 q 替换为扰动梯度。训练过程中的中间模型发给 distinguisher。
Distinguisher: WaterMark Detection 由于 Crafter 插入到模型中的 WaterMark 旨在增大参数间的距离;因此 Distinguisher 计算参数间距离,执行假设检验以检测 WaterMark 的存在:
• Original Gradient: G ~ Z+N(0, σ²)
• WaterMark: G ~ Z+N(C/√2n, σ²)
那么现在问题转化为检测 parameters distance 来自 WaterMark 还是 Original Gradient Gaussian distribution。
3. 实验结果
在这里插入图片描述

进一步提高了敌手的强度,并建立了改进的下限。

F. Malicious Dataset

利用 DP-SGD 满足数据集 DP 的特性,我们选择一个神经网络,几乎不影响训练数据(f-θt = f-θ0 with learning rate = 0)。这代表训练不更新权重,初始化时的权重 f-θ0 会一直保留。另一方面,我们将 f-θ0 对 x 的预测 f-θ0(x) 作为 x 的 true label。(x, f-θ0(x)) 作为训练集 D。这么一来:
∀ x, loss(x, f-θ0(x)) = 0, ᐁloss(x, f-θ0(x))
那么对不在训练集 D 的 example (x, y),loss 应该不为 0。Distinguisher 通过对 loss 的比较,确定 (x, y) 是否在训练集里。
DP-SGD 分析不仅适用于最坏情况的梯度,而且适用于数据集本身被构造成最坏情况的情况。我们没有选择 D 作为一个典型的数据集,而是构造了一个新的数据集。构建这个数据集的目的是得到一个对神经网络参数影响最小的数据集。

  1. Roles
    Crafter: 从原始数据集 D 中随机选择 n example (D-data);利用 f-θ0(D-data) ,记为 D-true label;构建新数据集 D = (D-data, D-true label)
    Trainer: f-θt = f-θ0 with learning rate = 0 在 D-data 上训练
    Distinguisher: 利用 loss 区分 (x, y) 是否在训练集
  2. 实验结果
    在这里插入图片描述

在这个实验中,因为 learning rate = 0,所以其实只有初始化权重 f-θ0 这里才加了噪音,而随后的迭代并没有引入多于的 ε;在这种情况下,ε 的 lower bound 更贴近理论值,表明理论分析已经够 tight 了。

G. Theoretical Justifications

  1. 有的研究人员对 ε 不理解,随意取值,甚至把 ε 设置得远大于 1,还希望这能保护隐私(或者说抱有侥幸心理,希望能获得比设置值更多的隐私),但其实并不能。现有的 DP-SGD 分析 upper bound is very tight。
  2. 只要敌手的权限最够多,能力足够强,就能发动触碰到上限的攻击。

6、读文章收获

本文的key idea 是利用现实攻击去测试 DP-SGD 究竟能提供多好的 privacy protection。在该论文中提供了充分的实验证明自己观点的正确性,同时,对于所使用到的算法等知识阐述也很清晰。启示我之后做自己的研究工作还是注重前言和实验部分的撰写。

参考资料

https://zhuanlan.zhihu.com/p/372425724

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zoetu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值