CAFE: Catastrophic Data Leakage in Vertical Federated Learning(纵向联邦学习)

news2024/9/20 20:56:10
NeurIPS 2021
发表单位:美国伦斯勒理工学院、IBM研究院、国立阳明交通大学

GitHub:https://github.com/DeRafael/CAFE

摘要:

梯度共享机制(批处理)会泄露私有数据—>提出数据泄露攻击CAFE—>提出缓解CAFE对策

在分布式机器学习系统(如联邦学习(FL)中部署的梯度共享机制可能会泄露私有训练数据。增加批处理大小以使数据恢复复杂化通常被视为防止数据泄漏的一种有前途的防御策略。在本文中,我们重新审视了这一防御前提,并提出了一种先进的数据泄漏攻击,并提供了理论依据,以有效地从共享聚合梯度中恢复批量数据。我们将提出的方法命名为垂直联邦学习中的灾难性数据泄漏(CAFE)。与现有的数据泄漏攻击相比,我们在垂直FL设置上的大量实验结果证明了CAFE在执行大规模数据泄漏攻击时的有效性,并提高了数据恢复质量。我们还提出了一种切实可行的缓解CAFE的对策。我们的研究结果表明,参与标准FL的私人数据,特别是垂直案例,从训练梯度中泄露的风险很高。

纵向联邦学习:参与方拥有相同的样本空间但特征空间不同,即他们共享相同的用户但拥有不同的用户特征

现有联邦学习梯度泄露攻击方法:

现有的方法限制批处理数据的恢复缺乏数据恢复的理论支撑前提假设过于严格(例如要求类的数量远远大于恢复的数据样本的数量)

方法:

CAFE:利用数据索引和数据对齐(可恢复出批处理数据)

理论恢复步骤:(1)恢复相对于第一个全连接层(FC)输出的损失梯度;(2)恢复第一FC层的输入;(3)恢复原始数据

每次迭代中批处理索引

损失函数及梯度计算:

聚合梯度的维度是固定的

聚合梯度的维度是固定的:


完全恢复模型的第一个FC层的输入,称为具有理论保证的内部表示,并使用内部表示作为学习的正则化器来帮助提高数据泄漏攻击的性能。在VFL设置中充分利用了攻击者已知的批数据索引,从而可以确定(3)中的系统方程,而不是不确定

CAFE方法:左边部分(蓝框)执行常规VFL协议,右边部分(红框)说明CAFE的主要步骤。

在红框部分,针对服务器的攻击(服务器作为攻击者)

数据索引对齐:对于每一批,服务器(作为攻击者)需要向所有本地worker发送数据索引或数据id列表,以确保每个worker都选择了具有相同id序列的数据 

参考:联邦学习样本对齐系列之(一)隐私集合交集PSI(基于RSA加盲的方式) - 知乎 (zhihu.com)

具体步骤:

(1)恢复全连接层输出的损失梯度:

在神经网络中恢复损失函数相对于第一全连接层输出的梯度的步骤:

损失函数梯度计算问题:特别是对于全连接层(FC layer)的训练数据输入输出以及相应的梯度表示方法

整体算法分布式优化

恢复损失函数相对于模型参数的梯度:

旨在聚合所有工作者计算出的局部梯度,以形成全局梯度,该全局梯度可以用于更新中央服务器上的模型参数。

针对第一全连接层输入 H(输入矩阵) 的恢复

第t次迭代的数据:

计算损失函数关于特定参数(b1​)梯度的过程

梯度只在模型参数之外给定,通过迭代优化过程恢复:

CAFE的第一步总结在算法1中,算法1具有上述约束

为保证攻击效率,在CAFE中考虑了两种灵活的更新协议——算法3:CAFE(嵌套循环)和算法4:CAFE(单循环)。算法4的迭代次数要少于算法3。

尽管CAFE提供了理论上的恢复保证,基本前提是客户机将上传真实(正确)的梯度用于聚合。

提出了一种直观而实用的方法来缓解CAFE,要求每个客户端上传虚假(但相似)的梯度,从而导致通过CAFE恢复错误的数据。

为了解决真实梯度的泄漏问题,设计一种名为Fake gradients的防御方法,并在附录f的算法5中进行了总结。该防御方法的主要思想是攻击者将目标对准错误的梯度,并将错误的输入反推到第一FC层,从而使攻击者无法恢复真实的训练数据。算法5(附录F)中的防御策略可以添加到算法1和算法2中的第8行和第9行之间。

如算法5(附录F)所述,每个局部客户端可以随机生成正态分布N (0;σ2)并按降序排序元素(第1、2行)。同时,本地工人也按降序排序他们的真梯度,并记录排序项目的索引(第7行)。然后,计算真梯度与所有假梯度之间的l2范数距离,以找到最近的假梯度(第12行)。然后,我们按照排序顺序配对假梯度以匹配真梯度(第17行)。这是一个重要的步骤,这样我们就可以在真实梯度的相同位置保持大/小值。最后,本地工作人员将伪造的渐变上传到服务器。

参考:

【1】【论文阅读】CAFE: Catastrophic Data Leakage in Vertical Federated Learning-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_42468475/article/details/123174068

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云计算课程作业1

作业1 Xmanager连接 rhel连接 作业2 首先确认你的虚拟机设置的是NAT 1-3 然后打开这篇blog,并完成第一步和第二步 因为我们是NAT,所以不需要连接网桥,即跳过第三步,但是这里ping一下测试网络连接 2- 如果到这里你发现提示yum…

2024 Oracle CloudWorld的信息量实在太大了

2024年9月9日,为期4天的2024甲骨文全球云大会在美国拉斯维加斯盛大开幕。今年的主题聚焦于,通过将最新的AI技术融入其产品和服务,以构建和使用应用、云技术、数据库、开发人员工具和人工智能服务,帮助各个行业解决复杂的业务挑战。…

【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣99, 1305, 230, 897

1. 力扣99:恢复二叉搜索树 1.1 题目: 给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 示例 1: 输入:root [1,3,null,null,2] 输出&…

天润融通创新功能,将无效会话转化为企业新商机

“您好,请问有什么可以帮您?” “......” 一个新的咨询会话进来,但客户却并不说话,这种情况客服人员肯定不会陌生,它一般被称为“无效会话”。 如今“无效会话”越来越多,已经成为困扰无数企业的难题。…

最清晰 | 自学前端之js

怎么在vscode中运行网页代码 1、在vscode中安装插件“ open PHP/HTML/JS ” 2、在代码区域,右键点击” open PHP/HTML/JS in browser " 一、js概念 1、是什么: (1)运行在客户端(浏览器) (2)一种编程语言(脚本语言) (3)实现人机交互 2、做什么: (1)网页…

react 创建react项目

使用react的环境: 下载nodejs,然后全局安装create-react-app 1、检查是否安装: create-react-app --version 2、全局安装create-react-app npm install create-react-app -g 3、创建react项目 注意:项目第一次安装,可能会直…

ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge

目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…

Pandas和matplotlib实现同期天气温度对比

目录 1、下载近两年的天气Excel数据 2、pandas加载Excel 3、将时间作为索引 4、按日计算最值、均值 5、选取近两年同期温度数据 6、同期温度曲线对比,共享y轴 1、下载近两年的天气Excel数据 一个免费的天气数据下载网址:METAR北京(机场)历史天气 (rp5.ru) 选择”北京天…

20240921 每日AI必读资讯

AI、悟空、西湖文创集盒……2024云栖大会有超多硬核科技! - 9月19日,一年一度的阿里云栖大会拉开帷幕 - 阿里现任掌舵者吴泳铭、CTO周靖人携手大模型领域当红炸子鸡月之暗面CEO杨植麟、小鹏汽车CEO何小鹏等一众明星企业创始人给业界带来了一场久违的国…

《 LiteFlow 规则引擎(1) - 入门篇》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【RabbitMQ】应用

RabbitMQ 应用 1. 七种⼯作模式介绍1.1 Simple(简单模式)1.2 Work Queue(⼯作队列)1.3 Publish/Subscribe(发布/订阅)概念介绍Publish/Subscribe模式 1.4 Routing(路由模式)1.5 Topics(通配符模式)1.6 RPC(RPC通信)1.7 Publisher Confirms(发布确认) 2. ⼯作模式的使⽤案例2.1 …

Java【代码 18】处理Word文档里的Excel表格数据(源码分享)

处理Word文档里的Excel表格数据 1.原始数据2.处理程序2.1 识别替换表格表头2.2 处理多余的换行符2.3 处理后的结果 3.总结 1.原始数据 Word 文档里的 Excel 表格数据,以下仅为示例数据: 读取后的字符串数据为: "姓名\r\n身份证号\r\n手…

【计网】从零开始使用TCP进行socket编程 ---服务端业务模拟Xshell

最糟糕的情况, 不是你出了错, 而是你没有面对出错的勇气。 从零开始使用TCP进行socket编程 1 通信过程的多版本实现1.1 多进程版本1.2 多线程版本 2 服务端业务模拟Xshell2.1 整体框架设计2.2 Command类设计 1 通信过程的多版本实现 在前一篇的文章…

鸿蒙手势交互(三:组合手势)

三、组合手势 由多种单一手势组合而成,通过在GestureGroup中使用不同的GestureMode来声明该组合手势的类型,支持顺序识别、并行识别和互斥识别三种类型。 GestureGroup(mode:GestureMode, gesture:GestureType[]) //- mode:为GestureMode枚…

美元降息,对普通人有哪些影响?

美元降息,对普通人有哪些影响? 美元降息了。很多朋友都说我又不炒股,我手里又没有美金,美元跟我有啥关系啊?那我们就来聊聊美元降息,对我们国内经济到底有哪些影响?你再来看看跟你有没有关系&a…

计算机毕业设计 美发管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

MySQL高阶1890-2020年最后一次登录

目录 题目 准备数据 分析数据 题目 编写解决方案以获取在 2020 年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020 年没有登录过的用户。 返回的结果集可以按 任意顺序 排列。 准备数据 Create table If Not Exists Logins (user_id int, time_stamp …

数据库-约束与多表查询

1.约束 例子: 外键约束 例子: 2.多表查询 多表关系 概述 内连接 外连接 自连接 联合查询 子查询 介绍 标量子查询 仅有一个值 列子查询 行子查询 表子查询 练习

【应用开发三】 input子系统介绍

文章目录 1 名词解释2 输入设备编程框架2.1 input子系统2.2 读取数据流程2.3 input_event结构体2.3.1 type(哪类事件)2.2 code(具体事件)2.3 value(数值) 2.4 数据同步2.5 读取start input_event数据 1 名词…

微信小程序如何引入第三方插件

前言 微信的文档不行,我这个,行 如何找到插件管理的页面 扫码登录微信小程序的后台设置页面,点击小程序信息的查看详情,然后点第三方设置 修改app.json 在插件管理的页面添加好要用的插件之后,在插件的详情页面找到…