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

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.xdnf.cn/news/143759.html

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

相关文章

Python redis 安装和使用介绍

python redis安装和使用 一、Redis 安装1.1、Windows安装 二、安装 redis 模块二、使用redis 实例1.1、简单使用1.2、连接池1.3、redis 基本命令 String1.3.1、ex - 过期时间(秒)1.3.2、nx - 如果设置为True,则只有name不存在时,当…

华为、思科、新华三,三大厂商认证到底选择哪一个?

在计算机网络行业,华为、思科和新华三的认证被广泛认可,成为从业者提升技能和职业竞争力的重要凭证。 然而,面对这三大厂商的认证,很多人感到困惑,不知道该选择哪一个。 本文将详细介绍这三大认证体系,帮助…

【学术会议征稿】第四届电子信息工程与计算机技术国际学术会议(EIECT 2024)

第四届电子信息工程与计算机技术国际学术会议(EIECT 2024) 2024 4th International Conference on Electronic Information Engineering and Computer Technology 随着科学技术的高速发展,计算机技术革新日新月异,其智能化、网络…

Spring中存储Bean的常见注解

目录 IoC & DI IOC(控制反转)详解 依赖注入的三种方式 IoC & DI IoC: Inversion of Control (控制反转), 也就是说 Spring 是⼀个"控制反转"的容器. 控制反转:也就是控制权反转. 什么的控制权发⽣了反转? 获得依赖对…

计算机毕业设计污染物文献共享数据库管理系统网站开发与实现

计算机毕业设计:污染物文献共享数据库管理系统网站开发与实现 1. 项目背景 随着环境问题日益严峻,对污染物的研究变得尤为重要。然而,在学术界和工业界之间存在着信息孤岛现象,即大量的研究成果被分散在不同的数据…

每日OJ题_牛客_除2!(贪心+堆)

目录 牛客_除2!(贪心堆) 解析代码 牛客_除2!(贪心堆) 除2!_牛客题霸_牛客网 解析代码 弄一个堆模拟一下,用到贪心的思想,记得开long long,否则可能0分。 …

Python中的异步编程:从基础知识到高级应用

随着互联网应用的不断发展,高并发和高性能成为越来越多开发者关注的重点。Python 3.5引入了asyncio库和async/await语法,使得异步编程变得更加简洁和高效。本文将详细介绍Python中的异步编程,从基础知识到高级应用,帮助你掌握这一…

【AI大模型】LLM主流开源大模型介绍

目录 🍔 LLM主流大模型类别 🍔 ChatGLM-6B模型 2.1 训练目标 2.2 模型结构 2.3 模型配置(6B) 2.4 硬件要求 2.5 模型特点 2.6 衍生应用 🍔 LLaMA模型 3.1 训练目标 3.2 模型结构 3.3 模型配置(7B) 3.4 硬件…

ROS第四梯:ROS项目中添加自定义类

第一步,ROS项目结构介绍 工作空间中包含一个名为pcl_ros_test的功能包,其中main.cpp是原有项目自带的,接下来以CommonAlg自定义类添加为例进行介绍。 第二步:头文件CommonAlg.h创建和编写,并保存在include/pcl_ros_tes…

springcloud整合nacos、sentinal、springcloud-gateway,springboot security、oauth2总结

源码地址:下载地址 使用该架构的项目地址:下载地址 下面教大家整合nacos、sentinal、springcloud-gateway,springboot security、oauth2做一个分布式架构 1、第一步整合nacos 1、下载alibaba的nacos 下载地址,然后使用单机模式启动nacos sh startup.sh -m standalon…

828华为云征文 | 云服务器Flexus X实例,搭建上线前后端项目

828华为云征文 | 云服务器Flexus X实例,搭建上线前后端项目 项目搭建 演示使用华为云服务器Flexus X实例搭建上线前后端项目黑马vue电商后台管理系统 项目GitHub链接:https://github.com/Minori-ty/vue_shop.git 1、购买华为云 Flexus X 实例 Flexus云服…

搜索小车运动最短路径python代码实现

一、实验任务 场地中正方格代表障碍物,选取小车运动起点和终点。编程探究小车从起点运动到终点,总共有几种可行的路径(路径不含重叠部分),同时找出最短路径并可视化。 二、实验思路 把场地抽象化为69的平面矩阵&…

基于Linux系统离线安装oracle数据库

注意事项: 在安装的时候多次涉及root用户和oracle用户的切换,请注意区分,本文已明显 一、环境准备 1、关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld2、 禁用NetworkManager服务(非必须) [rootlocalhost …

4 路 4-20mA 电流/0-10V 电压转光纤

型号:MS-F155-AM 功能概述 MS-F155-AM 是将 4-20mA 电流转为光纤信号的模块,分发送和接收两个设备。发送模块将电流或者电压信号转变为光信号,通过光纤传输,接收端将光信号还原为电流或者电压信号。可以延长通信距离,最…

从零开始讲DDR(1)——DDR简介

一、DDR简介 DDR SDRAM(Double Data Rate Synchronous DYNAMIC RAM)中文名是:双倍数据速率同步动态随机存储器。 传统的SDRAM只在时钟信号的上升沿传输数据,而DDR可以同时在时钟的上升沿和下降沿传输数据,因此在同样的…

零信任安全架构--持续验证

随着网络安全威胁的不断演变,传统的“信任但验证”安全模式已无法应对现代复杂的攻击。零信任安全架构(Zero Trust Architecture, ZTA)应运而生,作为一种全新的安全理念,它彻底改变了企业的网络安全防护方式。核心思想…

windows查找端口号被占用

在很多开发的时候,可能端口号有被占用的情况,导致项目打不开。 用下面这个命令即可: 比如我的3000端口被占用,我找找哪个进程在占用我的3000端口号

JAVA惊喜连连无限可能沉浸式盲盒商城系统小程序源码

🎁惊喜连连,无限可能!沉浸式盲盒商城系统,等你来探索🔍 🎉【开篇:盲盒热潮,席卷而来】🎉 在这个充满未知与惊喜的时代,盲盒文化正以前所未有的速度席卷全球…

Vue学习记录之五(组件/生命周期)

一、组件 在每一个.vue文件可以看作是一个组件,组件是可以复用的,每个应用可以看作是一棵嵌套的组件树。 在Vue3中,组件导入以后即可直接使用。 二、组件的生命周期 生命周期就是从诞生(创建)到死亡(销毁) 的过程。 Vue3 组合式API中(se…