Federated Learning003
联邦学习笔记——003
2022.11.28周一
今天主要学习了几篇优秀的博客,补充了一些知识。
(一)联邦学习面临的挑战
非独立同分布的数据
有限通信带宽
不可靠和有限的设备
什么是Non-IID(非独立同分布)数据?
下面列举了数据偏离同分布的一些常见方式,即对于不用的客户端 \(i\) 和客户端 \(j\) 的分布不同,即 \(\mathcal{P}_i \neq \mathcal{P}_j\)。我们将 \(\mathcal{P}_i(x,y)\)重写为 \(\mathcal{P}_i(y|x)\mathcal{P}_i(x)\) 和 \(\mathcal{P}_i(x|y)\mathcal{P}_i(y)\)。
特征分布倾斜(协变量飘移):即使共享 \(\mathcal{P}(y|x)\),不同客户端上的边缘分布 \(\mathcal{P}_i(x)\)也可能不同。比如,在手写识别领域,用户在书写同一个单词时也可能有着不同的笔画宽度、斜度等。
标签分布倾斜(先验概率飘移):即使 \(\mathcal{P}(x|y)\)是相同的,对于不同客户端上的边缘分布 \(\mathcal{P}_i(y)\)也可能不同。比如,当客户端与特定的地理区域绑定时,标签的分布在不同的客户端上是不同的。比如:袋鼠只在澳大利亚或动物园里;一个人的脸只在出现在全球的几个地方;对于手机设备的键盘,某些特定人群使用某些表情,而其他人不使用。
标签相同,特征不同(概念飘移):即使共享 \(\mathcal{P}(y)\),不同客户端上的条件分布 \(\mathcal{P}_i(x|y)\)也可能是不同。由于文化差异,天气影响,生活水平等因素,对于相同的标签 \(y\),对于不同的客户端可能对应着差异非常大的特征 \(x\)。比如:世界各地的家庭图片千差万别,衣着也千差万别。即使在美国,冬季停放的被大雪覆盖汽车的图像只会出现在某些地区。同样的品牌在不同的时间和不同的时间尺度上看起来也会有很大的不同:白天和晚上、季节效应、自然灾害、时尚设计潮流等等。
特征相同,标签不同(概念飘移):即使 \(\mathcal{P}(X)\)是相同的,对于不同客户端上的条件分布 \(\mathcal{P}_i(y|x)\)也可能不同。由于个人偏好,训练数据项中的相同特征向量可能具有不同的标签。例如,反映情绪或单词联想的标签有着个人和地区差异。
数量倾斜或者不平衡:不同的客户可以拥有着样本数量差异很大的数据。
参考:
(二)研究方向
隐私保护
首先,明确一个问题,我们需要抵御什么样的威胁?
在联邦学习中,对隐私风险的规范处理需要一种整体的、跨学科的方法。对于一些风险类型,可以通过将现有技术扩展到指定场景中从而保护隐私和减轻风险,而其他更复杂的风险类型则需要跨学科的协同努力。
下表是联邦学习需要抵御的威胁

其次,这方面的研究涉及到的工具与技术主要有三个方向:
安全计算
- 可信执行环境
- 安全多方计算
- 其他技术,例如安全聚合,安全shuffle
隐私保护
- 本地差分隐私
- 分布式差分隐私
- 通过安全聚合实现分布式差分隐私
例如,每台设备可以在安全聚合之前干扰自己的模型参数,以实现本地差分隐私。通过正确设计噪声,我们可以确保聚合结果中的噪声与通过可信服务器集中添加的噪声(例如,具有低ε/高隐私级别)相匹配 - 通过安全shuffling实现分布式差分隐私
本地数据使用本地差分隐私进行加密,然后所有人传到一个安全shuffler,shuffler打乱次序,再发给服务器(不包含任何标识信息)。shuffler可以作为一个可信第三方,独立于服务器并专门用于shuffle。
- 通过安全聚合实现分布式差分隐私
- 混合差分隐私
通过允许多种模型共存,与纯本地DP或纯中央DP机制相比,混合模型机制可以在给定用户群中实现更高的实用性,例如根据场景不同,一部分人用本地差分隐私协议加密,一部分人直接贡献其信息。
可验证性
零知识证明(ZKPs)
可信执行环境中的远程证明
主要作用:
- 证明服务器已经进行了聚合,shuffle,或者添加差分隐私的操作。
- 证明client输入的数据符合某项规范
Federated Learning003的更多相关文章
- Federated Identity Pattern 联合身份模式
Delegate authentication to an external identity provider. This pattern can simplify development, min ...
- MySQL 远程连接(federated存储引擎)
标签:federated存储引擎 概述 本文主要介绍通过federated存储引擎建立远程连接表 测试环境:mysql 5.6.21 步骤 开启federated存储引擎 先查看federated存储 ...
- 通过FEDERATED存储引擎跨实例访问数据
通过FEDERATED存储引擎同步两实例间的表数据需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据.方案:通过FEDERATED来完成跨势力的查询FEDERA ...
- MySql启动,提示:Plugin 'FEDERATED' is disabled....Cannot allocate memory for the buffer pool
2016-05-27 09:25:01 31332 [Note] Plugin 'FEDERATED' is disabled. 2016-05-27 09:25:01 31332 [Note] In ...
- MySQL中的FEDERATED引擎
首先说明> FEDERATED存储引擎访问在远程数据库的表中的数据,而不是本地的表.这个特性给某些开发应用带来了便利,你可以直接在本地构建一个federated表来连接远程数据表,配置好 ...
- MYSQL启动报1067错误,系统日志中是“服务 mysql 意外停止” Mysql日志中则是:“Plugin \'FEDERATED\' is disabled”
MYSQL启动报1067错误,系统日志中是"服务 mysql 意外停止" Mysql日志中则是:"Plugin \'FEDERATED\' is disabled&quo ...
- mysql federated engine
mysql)) -> engine=federated -> connection='mysql://root@localhost:3306/t1/t';
- 主流存储引擎详解:Innodb,Tokudb、Memory、MYISAM、Federated
主流存储引擎: Innodb:推荐使用,主力引擎,使用99%以上的场景 Tokudb:高速写入使用,日用量大量写入eg:500G可压缩为50G.适用于访问日志的写入,相对MYISAM有事务性,相对于I ...
- Plugin 'FEDERATED' is disabled 或 1067错误 启动错误与“服务 mysql 意外停止”解决方法
MYSQL启动报1067错误,系统日志中是“服务 mysql 意外停止” Mysql日志中则是:“Plugin 'FEDERATED' is disabled” 网我在网上找到解决方案:1.在MY.I ...
- MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK
原文地址:http://it.dataguru.cn/article-3352-1.html 摘要: 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来 ...
随机推荐
- 【Vue项目】尚品汇(三)Home模块+Floor模块+Swiper轮播图
写在前面 今天是7.23,这一篇内容主要完成了Home模块和部分Search模块的开发,主要是使用了swiper轮播图插件获取vuex仓库数据展示组件以及其他信息. 1 Search模块 1.1 Se ...
- React课堂笔记1
一.概要 React是用于构建用户界面的MVVM框架. React拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它.认为它可能是将来Web开发的主流工具之一. 官网:https://z ...
- DRF版本控制(源码分析)
DRF中版本控制的五种情况(源码分析) 在restful规范中要去,后端的API中需要体现版本. drf框架中支持5种版本的设置. 1. URL的GET参数传递(*) 示例: user/?versio ...
- Ajax 方法返回值无效
遇到错误为再ajax 中返回数据不起作用 原来是因为在阿贾克斯success中不能直接return 需要执行完再进行返回 以下代码为正确代码 function TestAction(id ...
- CS144 计算机网络 Lab2:TCP Receiver
前言 Lab1 中我们使用双端队列实现了字节流重组器,可以将无序到达的数据重组为有序的字节流.Lab2 将在此基础上实现 TCP Receiver,在收到报文段之后将数据写入重组器中,并回复发送方. ...
- 深度学习-05(tensorflow模型保存与加载、文件读取、图像分类:手写体识别、服饰识别)
文章目录 深度学习-05 模型保存于加载 什么是模型保存与加载 模型保存于加载API 案例1:模型保存/加载 读取数据 文件读取机制 文件读取API 案例2:CSV文件读取 图片文件读取API 案例3 ...
- python自产调试工具pdb的使用
python自产调试工具pdb的使用 介绍 调试打印在写代码的时候不可避免 项目越大,调试可能花的时间会越多 print调试可能是最早用的,一段时间内你都会习惯这种方式 一旦成了老鸟,你应该会去用ID ...
- Linux修改系统时间(手动/自动同步)
一.手动修改 1.在终端窗口中输入date来查看系统当前的时间. 2.使用命令:"date -s 完整日期时间(YYYY-MM-DD hh:mm:ss)" 3.最后使用命令:&qu ...
- 获取android app 的Activity 和 Package
开头 appium 配置, sdk 配置,jdk配置,adb配置,python配置是我们app 自动化测试必不可少的配置,当然这种配置网上有很多,我们在这里就不展开说了. 直接就开始自动化脚本的dem ...
- 2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
2022-07-07:原本数组中都是大于0.小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的. 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量: ...