《Deep Leakage from Gradients》

Deep Leakage from Gradients

摘要

现在的分布式机器学习,或联邦学习中最常用的一种方法就是交换梯度,长期以来人们都认为交换梯度的安全的,但是本文提出从公开共享的梯度中获得私有训练数据是可能的。文章将这种泄漏命名为Deep leak from Gradient,并在计算机视觉和自然语言处理任务中进行了实验验证。最有效的防御方法是梯度剪枝。

介绍

联邦学习(分布式机器学习)无需上传用户数据而只需要上传用户模型参数。最近的一些研究表明梯度可以揭示训练数据的一些属性,例如属性分类器以及使用生成对抗网络生成与训练图像相似的图像。

在这项工作中,坐着证明了来自梯度的深层泄漏(DLG):共享梯度会泄漏私人训练数据。

为了执行攻击,我们首先随机生成一对“虚拟”输入和标签,然后执行通常的向前和向后操作。从虚拟数据导出虚拟梯度后,我们对虚拟输入和标签进行优化,使虚拟梯度与真实梯度之间的距离最小化。梯度匹配使虚拟数据与原始数据接近。当优化完成时,私有训练数据(包括输入和标签)将被充分显示出来。

就是生成一对随机的图片-标签,然后丢入模型训练,这时候损失是生成的梯度与实际的梯度之间的损失。根据这个损失反向传播对图片和标签进行反向传播。

在这里插入图片描述

本文演示了三种防御策略:梯度扰动、低精度和梯度压缩。对于梯度扰动,我们发现尺度大于 1 0 − 2 10^{-2} 102的高斯和拉普拉斯噪声都是一种很好的防御方法。在半精度无法保护的情况下,梯度压缩成功地抵御了攻击,剪枝梯度大于20%。

相关技术

1. 分布式机器学习

将训练过程分布,例如将数据集拆分到不同机子上,将一个epoch分在多个机子上训练,都训练完后聚合一下计算梯度。

分布式机器学习分为集中式和非集中式,对于集中式模式,首先聚合梯度,然后将其传递回每个节点。对于分散模式,梯度在相邻节点之间交换。

2. “浅”梯度泄露

例如,语言任务中的嵌入层只对训练数据中出现的单词产生梯度,从而揭示其他参与者的训练集中使用过哪些单词。由于模棱两可,很难对原句进行推断。另一种情况是全连接层,梯度更新的观察可以用来推断输出的特征值。但是,这不能扩展到卷积层,因为特征的大小远远大于权值的大小。
在梯度上训练的二分类器能够确定是精确的数据记录还是具有特定属性的数据记录包含在其他参与者的“批处理”中。此外,训练GAN模型,合成图像看起来与梯度训练数据相似,但攻击是有限的,只有当所有类成员看起来相似(如人脸识别)时才有效。

方法

在这里插入图片描述
有一个客户端正常训练模型,得到了梯度,这个梯度差被恶意获取了,这个恶意用户通过产生随机数据训练模型,同样得到一个梯度,恶意用户通过计算梯度之间的损失 D \mathcal{D} D来修改自己的数据,就是上图中   ∂ D / ∂ X \ \partial \mathcal{D}/\partial X  D/X ∂ D / ∂ Y \partial \mathcal{D}/\partial Y D/Y
在这里插入图片描述

3.1 利用梯度匹配训练数据泄漏

很简单的两个公式就是:

  1. 计算得到假数据的模型梯度:
    在这里插入图片描述
  2. 计算梯度差,用于反向传播
    在这里插入图片描述

3.2 成批数据的梯度泄露

看完上面的示例,有人就会问了,这就生成一个x用来训练模型,万一提交的梯度是一个batch的数据生成的呢?x如果是一个batch的数据还原出来的数据会是什么样子的?有单张图片得到的梯度还原效果那么好吗?

作者在文中说,确实是这样,具体原因可能是:批处理的数据可以有N!种不同的排列,从而使优化器难以选择梯度方向。作者提出的解决方式是,一个一个标签和数据来训练,一次只训练一个批次的一个输入。
在这里插入图片描述

实验

PASS

防御方法

  1. 噪声 or 降低精度 But 模型性能 下降
  2. 梯度压缩与稀疏化
    剪枝:将更新不太大的参数更新降低到0
  3. 大批量、高分辨率和密码学
    批量一大,还原数据的计算代价变大,论文里说目前只支持到batch_size为8,图片大小64*64的情况。
    [安全聚合] and [同态加密]

总结

本文引入了一种从梯度中获取局部训练数据的算法——Deep leak from Gradients (DLG)。DLG不依赖于任何生成模型或额外的先验数据。我们在视觉和语言任务上的实验都证明了这种深度泄漏的关键风险,并表明只有当防御策略开始降低准确性时,这种深度泄漏才能被防止。这对现代多节点学习系统(如分布式训练、联合学习)提出了挑战。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

volcanical

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

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

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

打赏作者

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

抵扣说明:

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

余额充值