【联邦学习】理论学习

文章目录

  • 前言
  • 一、联邦学习要解决的问题
  • 二、什么是联邦学习
    • 2.1 发展历程
    • 2.2 分布式学习
    • 2.3 联邦学习和分布式学习的区别
  • 3. 联邦学习工作原理
  • 4. 种类
    • 4.1 横向联邦学习
    • 4.2 纵向联邦学习
    • 4.3 迁移联邦学习
  • 5. 技术挑战
    • 统计挑战:数据非独立同分布(non-lld)
    • 系统挑战:常见于节点较多的情况
    • 隐私安全存在的问题
  • 总结


前言

联邦机器学习又名联邦学习,联合学习,联盟学习。联邦机器学习是个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
在本章,我们将了解联邦学习的定义、算法原理、分类、短板挑战。


一、联邦学习要解决的问题

机器学习两大挑战:

  1. 数据孤岛: 网络安全隔离和行业隐私,不同行业、部门之间存在数据壁垒,导致数据形成“孤岛”无法安全共享。
  2. 数据隐私安全: 数据安全难以得到保障,隐私数据泄露问题亟待解决。
    联邦学习的基本思想是在与其他设备协作运行训练任务时,防止数据离开本地设备。具体来说,通过将机器学习的数据存储和模型训练阶段转移至本地用户,仅与中心服务器交互模型更新的方式有效保障了用户的隐私安全。

二、什么是联邦学习

2.1 发展历程

联邦学习作为机器学习领域的一种分布式数据处理方法,可以在实现分布式模型训练的同时解决隐私泄露问题。2017年, 联邦学习的概念由谷歌提出,其主要思想是基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。杨强教授在2019年发表在ACM Transactions on Intelligent Systems and Technology (TIST)上的一篇综述论文,该文章比较全面和系统的介绍了联邦学习的基本概念、分类和一些安全隐私问题等,论文名为《Federated Machine Learning:Concept and Applications》。

2.2 分布式学习

联邦学习的前身就是分布式学习,我们可以把联邦学习可以理解为分布式学习的一种,带约束的分布式学习。

分布式学习:就是你有一个模型要训练,而你手头上有多个CPU或GPU,这时你就想在多个计算节点上同时训练这个模型,来加快训练,这就是分布式学习。一般这些节点有一个老大哥,叫server;一群小弟,叫worker。那么很直观的有两招,同步(多个worker训练完模型的一部分,同时与server通信。),异步(每个worker训练完模型的一部分后就立刻可以与server通信,从而进入下一轮计算。)

同步的情况下,缺点是算力强的节点会被算力弱的节点拖住。异步情况下,如果一个算力强的节点已经算了7、8轮,一个算力弱的节点才计算完1轮,这时这个比较迟更新的梯度基于的是老参数,对模型有可能是有害的,即需要设备算力比较均匀。

2.3 联邦学习和分布式学习的区别

两种学习最大的区别是 “中心服务器”对其他“计算节点”的控制权不同。具体来说:

  • 中心服务器对数据和计算节点的控制权不同。
    联邦:计算节点对数据具有绝对的控制权。中心服务器无法直接或间接操作计算节点上的数据;计算节点可以随时停止计算和通信,退出学习过程。
    分布:中心服务器对计算节点以及其中的数据具有较高的控制权,计算节点完全受中心服务器的控制,接收来自中心服务器的指令。例如,在 MapReduce 这种分布式计算模型中,中心服务器可以下发一个指令,让计算节点互相交换数据。

  • 计算节点上数据分布类型不同。
    联邦:并不能简单假设数据是独立同分布(Independent Identity Distributed, IID),由于数据是由不同用户端独立产生的,他们往往表现出不同的分布特征(非独立同分布,non-IID)。
    分布:不同计算节点上的数据的划分通常是均匀、随机打乱的,它们具有独立同分布的特点,这样的特性非常适合设计高效的训练算法。

  • 计算节点上数据量级不同。
    联邦:每个计算节点拥有的数据量与设备自身有关,很难保证不同计算节点拥有相近的数据量。
    分布:分布式学习为了提高训练效率,通常都会把训练数据均匀分布在每个计算节点上,实现负载均衡。

  • 计算节点稳定性不同。
    联邦:参与联邦学习的计算节点可能是手机、平板等移动设备,这些设备因为用户的使用习惯,其所处的网络环境并不稳定,随时都可能与中心服务器断开连接。
    分布:分布式学习场景下的计算节点,通常都位于专用的机房中,用高速宽带进行互联,网络、运行环境都非常稳定。

  • 通信代价不同。
    联邦学习中的计算节点可能分布在不同的地理位置,与中心服务器一般处于远程连接的状态,同时受不同设备网络带宽的影响,其通信代价要更高。
    分布式学习中的计算节点与中心服务器通常处于同一地理位置,而且有专用的通信条件,所以通信代价往往较小。

3. 联邦学习工作原理

多个客户端设备(如平板电脑、手机、物联网设备)和中心服务器(如服务提供商)的协调下,共同训练一个模型。在这一过程中,客户端负责利用本地数据进行模型训练,得到本地模型(local model),而中心服务器则负责将各客户端训练得到的本地模型进行加权聚合,从而形成全局模型(global model)。通过多轮迭代,这一过程最终得到一个效果接近于传统集中式机器学习的模型,从而有效降低了传统机器学习中由于数据集中带来的隐私风险。
在这里插入图片描述
在这里插入图片描述
注意:联邦学习的目的是在保证数据隐私的前提下,通过多个客户端设备协作训练一个全局模型 w。在这种方法中,数据存储和处理都是在本地客户端设备上完成的,只有模型更新的梯度信息需要上传至中心服务器。

4. 种类

横向联邦学习、纵向联邦学习、联邦迁移学习分类的依据是各个参与方数据相似情况,而联邦强化学习的重点是基于各方环境进行决策(take action)。

4.1 横向联邦学习

需求场景:两家公司拥有不同的用户,但是都有建模需要的所有数据量(X, Y),如果单靠任何一家的数据建模,样本都不够多,需要联合两家数据建模,同时不透露各自的样本内容。
在这里插入图片描述

在这里插入图片描述
模型搭建(Fedavg):各终端进行梯度计算,本地进行梯度下降形成新参数,本地重复epoch,中心服务器对参数进行收集,并进行参数平均,然后生成最新模型参数,分别发送给各终端,终端进行多次迭代,可减少通信次数。
在这里插入图片描述

4.2 纵向联邦学习

需求场景:公司A和B拥有相同的用户(相同ID),但是分别拥有同一用户的不同数据参数,需要结合两家公司的数据一起建模,同时两家公司双方不透露各自的数据内容。
在这里插入图片描述

在这里插入图片描述
模型搭建: 需要第三方帮助进行AB公司的加密过程,传输的是加密后的梯度结果。
在这里插入图片描述

4.3 迁移联邦学习

联邦迁移学习的特点是数据集特征 X、标签信息 Y 和样本 ID 信息都不同。该学习被用于解决标签样本少和数据集不足的问题,如中国的电商平台与其他国家银行之间的数据迁移,由于跨部门跨国的数据交流很难实现,通过联邦迁移学习可以很好地解决这类痛点问题。
在这里插入图片描述
在这里插入图片描述

5. 技术挑战

统计挑战:数据非独立同分布(non-lld)

数量不平衡:用户量分布不均匀。
数据漂移:测试集和训练集不同。
数据非独立:数据是由不同用户端独立产生的,他们往往表现出不同的分布特征。

系统挑战:常见于节点较多的情况

通信带宽:在联邦学习网络中,服务器与各个远程客户端之间需要频繁地进行模型更新的通信。这种通信要求大量的带宽,尤其是在客户端数量达到万计时,网络负担显著增加。通常,联邦学习的全局模型训练时间包括数据处理时间和通信传输时间。随着计算机设备算力的提升,数据处理时间在不断降低,而通信传输时间却成为了训练速度的主要瓶颈。
隐私保护:下文详细介绍。
系统防御:需要抵御不正确的模型干扰。

隐私安全存在的问题

  1. 模型反演攻击:
    研究表明,梯度信息会泄露用户的隐私数据。攻击者可以通过客户端上传的梯度信息间接推出标签信息和数据集的成员信息。Carlini等从训练用户语言数据的递归神经网络中提取出了用户的敏感数据,如特定的银行卡号。Fredrikson等研究了如何从模型信息中窃取数据隐私,并通过药量预测实验实现了对线性回归模型的反演攻击,获得了患者的敏感信息。

  2. 成员推理攻击:
    恶意客户端或服务器通过分析模型更新信息,推测源数据的隐私信息。Hitaj等用生成对抗网络(GAN)对模型聚合发起攻击,实验结果表明,恶意客户端能够通过产生相似的本地模型更新来窃取用户数据隐私。

  3. 模型推理攻击:
    恶意服务器企图获得客户端的源数据。Gei等证明了从梯度信息重建输入数据的可行性,并将一批输入图像用余弦相似度和对抗攻击的方法恢复出来。

联邦学习主要存在三种威胁:

  • 恶意客户端修改模型更新,破坏全局模型聚合。
  • 恶意分析者通过对模型更新信息的分析推测源数据隐私信息
  • 恶意服务器企图获得客户端的源数据

在这里插入图片描述


总结

” 如果我看得更远,那是因为我站在巨人的肩膀上。“
——艾萨克·牛顿爵士(Sir Isaac Newton)

在这里总结一些本博文参考的资料,也分享给大家一起学习:

  1. 联邦学习是什么?
  2. 联邦学习研究综述
  3. 讲解杨强老师的综述论文
  4. 分布式学习的定义

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell 传递参数

Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为 $n,n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数。 例如可以使用 $1、$2 等来引用传递给脚本的参数&…

【组件封装】uniapp vue3 封装一个完整的Tabs(标签页)组件教程,功能由简到杂实现讲解。

文章目录 前言一、简单版Tabs代码实现: 二、下划线带动画的TabsAPI回顾:代码实现: 三、内容区域滑动切换切换动画代码实现:(2)禁用手势滑动切换(3)内容区域换为插槽 四、标签栏可滚动…

35页PDF | 元数据与数据血缘落地实施(限免下载)

一、前言 这份报告详细介绍了元数据与数据血缘的概念、重要性以及在企业数据中台中的应用。报告阐述了数据中台的核心价值在于整合和管理体系内的数据,以提升数据资产化能力并支持业务决策。报告还涵盖了元数据的分类(技术元数据和业务元数据&#xff0…

etcd资源超额

集群内apiserver一直重启,重启kubelet服务后查看日志发现一下报错: Error from server: etcdserver: mvcc: database space exceeded 报错原因: etcd服务未设置自动压缩参数(auto-compact) etcd 默认不会自动 compa…

【Linux】线程概念 | 线程控制

文章目录 👉知识补充👈👉Linux线程概念👈什么是线程Makefile线程 VS 进程线程的优点线程的缺点线程异常线程用途 👉线程控制👈线程终止pthread_exit 函数pthread_cancel 函数线程 ID 的深入理解在多线程的场…

word如何快速创建目录?

文章目录 1,先自己写出目录的各级标题。2、选中目标标题,然后给它们编号3、给标题按照个人需求开始分级4、插入域构建目录。4.1、利用快捷键插入域构建目录4.2、手动插入域构建目录 听懂掌声!学会了吗? 前提声明:我在此…

第九篇:k8s 通过helm发布应用

什么是helm? Helm 是 Kubernetes 的包管理器。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 在红帽系的Linux中我们使用yum来管理RPM包,类似的,在K8s中我们可以使用helm来管理资源对象(Deployment、Service、Ingress…

微信小程序配置less并使用

1.在VScode中下载Less插件 2.在微信小程序中依次点击如下按钮 选择 从已解压的扩展文件夹安装… 3.选中刚在vscode中下载安装的插件文件 如果没有修改过插件的安装目录,一般是在c盘下C:\用户\用户名.vscode\extensions\mrcrowl.easy-less-2.0.2 我的路径是&#xf…

RabbitMQ 客户端工程环境配置

RabbitMQ 客户端工程环境配置 下面分别以 C# 控制台应用程序 、 Unity 工程为例 一 C# 控制台应用程序 (1)新建项目 (2) RabbitMQ 需要通过 NuGet 安装 打开项目解决方案 -> 依赖项(右键) -> 管理 NuGet 程序包 -> 搜索 RabbitMQ.Client -&…

chrome使用问题记录

1. http自动跳转https问题 step1. 地址栏输入: chrome://net-internals/#hsts step2. 找到底部Delete domain security policies一栏,输入想处理的域名,点击delete。 注意:输入域名时去掉前缀http step3. 搞定了,再…

Applied Intelligence投稿

一、关于手稿格式: 1、该期刊是一个二区的,模板使用Springer nature格式, 期刊投稿要求,详细期刊投稿指南,大部分按Soringernature模板即可,图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…

数据结构初阶--算法复杂度(1)

以下我用C语言实现基础的数据结构。 目录 初识数据结构与算法 数据结构 算法 算法效率 练习:轮转数组(不完全版) 时间复杂度 大O的渐进表示法 例一: 例二: 例三: 例四: 例五: 总结&#xff…

C# 中LINQ的详细介绍

文章目录 前言一、 LINQ 的基本概念二、查询语法与方法语法三、LINQ 的投影操作四、LINQ 的排序操作五、LINQ 的过滤操作六、LINQ 的分组操作七、LINQ 的连接操作八、LINQ 的聚合操作九、LINQ 的延迟执行十、LINQ 的错误处理十一、LINQ 的合并操作十二、LINQ 的自定义对象查询十…

mongo开启慢日志及常用命令行操作、数据备份

mongo开启慢日志及常用命令行操作、数据备份 1.常用命令行操作2.mongo备份3.通过命令临时开启慢日志记录4.通过修改配置开启慢日志记录 1.常用命令行操作 连接命令行 格式:mongo -u用户名 -p密码 --host 主机地址 --port 端口号 库名; 如:连…

lyapunov指数的绘制

有如下方程: %% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)绘制其对应的lyapunov指数。 MATLAB实现方式: clc; clearvars; close all;%% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)%% 代码 N 1000; a (0:0.001:1.4); b 0.3; na length(a…

数字时代的文化宝库:存储技术与精神生活

文章目录 1. 文学经典的数字传承2. 音乐的无限可能3. 影视艺术的数字化存储4. 结语 数字时代的文化宝库:存储技术与精神生活 在数字化的浪潮中,存储技术如同一座桥梁,连接着过去与未来,承载着人类文明的瑰宝。随着存储容量的不断增…

关于csgo游戏搬砖作弊与封禁

关于csgo的游戏作弊与封禁 一.关于作弊 什么叫作弊? 1.换肤,换库存 2.各种参(回溯,自瞄,透视,急停,连跳,假身,子弹跟踪等) 3.某一部分更改游戏内存&…

Arduino IDE for mac 无法加载界面

打开软件后,无法加载界面的问题 1.手动删除“~/Library/Arduino15”文件夹 2.终端中输入sudo nano /etc/hosts,在里面添加“127.0.0.1 localhost”

Go的Gin比java的Springboot更加的开箱即用?

前言 隔壁组的云计算零零后女同事,后文简称 云女士 ,非说 Go 的 Gin 框架比 Springboot 更加的开箱即用,我心想在 Java 里面 Springboot 已经打遍天下无敌手,这份底蕴岂是 Gin 能比。 但是云女士突出一个执拗,非我要…

使用国内镜像源加速Qt“更新/安装”的方法

QT更新/安装时,国外源下载很慢,国内镜像源也因网络环境的不同而速度各异,下文给出国内镜像源的配置方法。 一、命令行 1、切换对应目录,更新器默认目录是 C:\Qt 2、文件名镜像源 安装示例: .\qt-unified-windows-x…