联邦学习综述二

news2024/11/19 0:37:24

联邦学习漫画

联邦学习漫画链接: https://federated.withgoogle.com/

Federated Analytics: Collaborative Data Science without Data Collection

博客链接: https://blog.research.google/2020/05/federated-analytics-collaborative-data.html

本篇博客介绍了联邦分析,即将数据科学方法应用于分析存储在用户设备上本地的原始数据的实践。与联邦学习一样,它的工作原理是对每个设备的数据运行本地计算,并且只向产品工程师提供聚合结果(而不是来自特定设备的任何数据)。然而,与联邦学习不同,联邦分析旨在支持基本的数据科学需求。这篇文章描述了为追求联邦学习而开发的联邦分析的基本方法,我们如何将这些见解扩展到新领域,以及联邦技术的最新进展如何为不断增长的数据科学需求提供更好的准确性和隐私性。

  • 通过安全聚合保护联合分析

    • 安全聚合可以为联合分析应用程序提供更强的隐私属性,这种方法的隐私属性可以通过对更多人求和或通过向计数添加小的随机值(例如,支持差分隐私)来加强。
    • 联合分析的方法是一个活跃的研究领域,已经超越了分析指标和计数。有时,使用联合学习训练 ML 模型可用于获取有关设备上数据的聚合见解,而无需任何原始数据离开设备。

Federated Learning Challenges Methods and Future Directions

在这里插入图片描述
链接: https://static.aminer.cn/storage/pdf/arxiv/19/1908/1908.07873.pdf

  • 选自:IEEE Signal Processing Magazine

摘要

  • 联邦学习涉及在远程设备或孤立的数据中心(如移动电话或医院)上训练统计模型,同时保持数据本地化。在本文中,讨论了联邦学习的独特特征和挑战,提供了当前方法的广泛概述,并概述了与广泛的研究社区相关的未来工作的几个方向。还考虑集中训练机器学习模型,但在本地提供服务和存储它们。讨论了联邦学习的几种情景:

    • 智能手机
    • 组织机构
    • 物联网

    在这里插入图片描述

联邦学习中最小化以下目标函数:

  • 在这里插入图片描述

联邦学习的四种挑战

  • 通信消耗大

    • 原因
      • 联邦网络可能由大量设备组成,例如,数百万智能手机,网络中的通信可能比本地计算慢许多个数量级。为了将模型拟合到联邦网络中的设备生成的数据中,因此有必要开发通信高效的方法,迭代地发送小消息或模型更新作为训练过程的一部分,而不是通过网络发送整个数据集。
    • 关键
      • 减少通信轮总数
      • 减少每轮传输消息的大小
  • 系统异构性

    • 原因
      • 联邦网络中每个设备的存储、计算和通信能力可能因硬件(CPU、内存)、网络连接(3G、4G、5G、wifi)和电源(电池电量)的变化而有所不同。此外,每个设备的网络规模和系统相关约束通常会导致只有一小部分设备同时处于活动状态。
    • 要求
      • 预测少量的参与
      • 容忍异构硬件
      • 对网络中丢失的设备具有鲁棒性
  • 统计异构性

    • 原因
      • 设备经常在网络上以非相同的分布方式生成和收集数据,跨设备的数据点数量可能变化很大,并且可能存在捕获设备及其相关分布之间关系的底层结构。这种数据生成范式违背了分布式优化中经常使用的独立和同分布(IID)假设,增加了掉队者的可能性,并可能增加建模、分析和评估方面的复杂性。
    • 解决方案
      • 元学习
      • 多任务
  • 隐私性

    • 原因
      • 联邦学习通过共享模型更新(例如,梯度信息)而不是原始数据,向保护每个设备上生成的数据迈出了一步。然而,在整个训练过程中沟通模型更新仍然会向第三方或中央服务器泄露敏感信息。
    • 解决方法
      • 安全多方计算
      • 差分隐私
      • 同态加密

目前研究内容

  • 通信效率

    • 本地更新方法

      • Mini-batch 是一种在机器学习中常用的优化方法,它将训练数据集划分为小批次进行模型训练。这种方法相对于全批次训练和随机梯度下降(SGD)有一些独特的优势。

        • 以下是一些使用 mini-batch 进行优化的常见方法:
        1. 小批次随机梯度下降(Mini-batch Stochastic Gradient Descent,Mini-batch SGD): 在每个训练迭代中,随机选择一小批量实例(小批次)来计算梯度,并使用这些梯度更新模型参数。这样可以减少计算成本,同时保持一定的随机性,有助于避免收敛到局部最小值。
        2. 动量优化(Momentum Optimization): 动量优化是在小批次 SGD 的基础上引入了动量概念。动量可以帮助加速收敛,并且在梯度方向改变时增加动量,有助于跳出局部最小值。常见的动量优化算法有 Momentum、Nesterov Momentum 等。
        3. 自适应学习率优化(Adaptive Learning Rate Optimization): 自适应学习率优化方法根据模型参数的梯度情况自适应地调整学习率。其中,常见的算法有 AdaGrad、RMSProp、Adam 等。这些方法能够根据参数的变化动态地调整学习率,从而提高模型的训练效果。
        4. 批标准化(Batch Normalization): 批标准化是一种将数据标准化的技术,在每个小批次上将输入数据进行标准化处理,这样可以加速网络的收敛速度,并且有助于模型的泛化能力。
      • FL最常用的方法是联邦平均(FedAvg),这是一种基于局部随机梯度下降(SGD)平均更新的方法。FedAvg在经验上表现得很好,特别是在非凸问题上,但它没有收敛性保证,并且在实际情况下,当数据是异构的时,它可能会发散。

        在这里插入图片描述

    • 压缩方案和

      • 在联邦学习中,压缩方案是一种常用的技术,用于减少在参与方之间传输的模型参数量,从而降低通信开销。

        • 常见的联邦学习中的压缩方案和优化策略:
        1. 梯度压缩:参与方在本地计算模型参数的梯度,并将梯度进行压缩后再发送给中央服务器。常见的梯度压缩方法包括Top-k梯度压缩、量化梯度压缩、稀疏梯度压缩等。这些方法将梯度的大小进行压缩、量化或者稀疏化,从而减少传输的数据量。

        2. 模型参数压缩:将模型参数进行压缩,减少传输的数据量。常见的压缩方法包括权重剪枝(Weight Pruning)、低秩近似(Low-Rank Approximation)、矩阵分解(Matrix Factorization)等。这些方法通过减少模型参数的维度或者去除冗余的参数,从而降低传输的数据量。

        3. 分布式压缩:将模型参数分为多个部分,然后对每个部分进行压缩。这样可以将模型参数的压缩过程分布在不同的参与方中进行,从而减少单一参与方的计算和通信负担。常见的分布式压缩方法包括点对点压缩、分组压缩等。

        4. 选择性上传:参与方根据一定的策略选择是否上传模型参数或者压缩后的参数。比如,只有在模型参数的变化超过一定阈值时才上传,或者只有在本地模型的准确率达到一定要求时才上传。这样可以减少不必要的通信,提高整体的效率。

        5. 近似聚合:中央服务器在聚合参与方的参数时进行近似计算。常见的方法包括局部梯度聚合(Local Gradients Aggregation)和联邦平均(Federated Averaging)。通过在聚合过程中引入一定的近似算法,可以减少通信量和计算量。

    • 分散训练

      • 在联邦学习中,分散训练是一种常见的方法,用于在参与方之间分散地进行模型训练。相比于集中式训练,分散训练有以下特点:

        1. 模型训练在本地进行:在分散训练中,参与方分别在本地设备上进行模型训练,使用各自的数据进行参数更新。这样可以保护数据隐私,避免将数据集集中存储在中央服务器上。
        2. 局部模型参数的更新:每个参与方在本地计算模型的更新,只将更新后的参数传输到中央服务器。相比于传输整个模型参数,这种方式可以减少网络传输的数据量,降低通信开销。
        3. 模型参数的聚合:中央服务器负责收集参与方传输的更新参数,并对它们进行聚合,得到更新后的全局模型参数。常用的聚合方法包括加权平均、投票等。
        4. 迭代式的模型更新:分散训练通常是通过多轮迭代来完成模型的训练。在每一轮中,参与方根据自己的本地数据计算更新的模型参数,并将其传输给中央服务器。中央服务器根据接收到的参数进行聚合,并将聚合后的参数发送回参与方,用于下一轮的训练。
      • 分散训练的优势在于可以在保护数据隐私的同时实现模型的训练。它适用于数据分散且无法集中存储的场景,例如医疗、金融等领域。然而,分散训练也面临一些挑战,例如网络传输不可靠、参与方之间的异构性等,需要借助一些优化策略和通信协议来解决这些问题,以提高训练效率和保证模型的准确性。

        在这里插入图片描述

  • 系统异构

    • 异步通信

      • 异步方案是一种有吸引力的方法来减少异构环境中的掉线者,特别是在共享内存系统中。然而,它们通常依赖于有界延迟假设来控制过时程度,对于设备k来说,这取决于自设备k从中央服务器取出以来更新的其他设备的数量。
      • 依赖于有界延迟假设来控制过时的程度。
    • 主动采样

      • 在每一轮中服务器主动选择客户端(训练所参与的设备)
    • 容错率

      • 策略
        • 编码计算
          • 编码计算是通过引入算法冗余来容忍设备故障的另一种选择。最近的工作已经探索了使用代码来加速分布式机器学习训练。
        • 故障忽略
  • 统计异构

    • 异构数据建模

      • 对统计异质性进行建模(元学习、多任务学习),仅限于凸目标

      • 将星形拓扑建模为贝叶斯网络,并在学习期间执行变分推理。空预处理非凸模型,但是推广到大型联邦网络是昂贵的。

        在这里插入图片描述

    • 非iid数据的收敛保证

      • 提出了FedProx
  • 隐私性

    出于隐私考虑,通常需要在联邦设置中将每个设备上的原始数据保存在本地。然而,在训练过程中共享模型更新等其他信息也会泄露敏感的用户信息

    • 差分隐私
    • 同态加密
    • 多方计算和安全评估

    联邦学习的隐私

    • 要求
      • 除了提供严格的隐私保证外,还需要开发计算成本低、通信效率高、能够容忍掉线设备的方法,而所有这些都不会过度损害准确性。
    • 分类
      • 全局隐私(对中央服务器以外的所有不受信任的第三方都是私有的)
      • 局部隐私(对服务器也是私有的)

    在这里插入图片描述

未来的路

  • 极端通信方案

    • 在联合学习中需要多少交流还有待观察。机器学习的优化方法可以容忍缺乏精度;这个误差实际上有助于泛化。虽然在传统的数据中心设置中已经探索了单点或分而治之的通信方案,但在大规模或统计异构网络中,这些方法的行为尚未得到很好的理解。
  • 减少通信

  • 新的异步模型

    • 在联邦网络中,每个设备通常不专用于手头的任务,并且大多数设备在任何给定的迭代中都不活动。因此,值得研究这种更现实的以设备为中心的通信方案的影响,在这种方案中,每个设备可以决定何时“唤醒”并以事件触发的方式与中央服务器交互。
  • 异构性的诊断

    • 这激发了以下开放性问题:
      • 是否存在简单的诊断来快速确定联邦网络中的先验异质性水平?
      • 是否可以开发类似的诊断方法来量化系统相关异质性的数量?
      • 是否可以利用当前或新的异质性定义来进一步改进联邦优化方法的收敛性?
  • 细小的隐私限制

    • 在实践中,可能有必要在更细粒度的级别上定义隐私,因为隐私约束可能在不同设备之间,甚至在单个设备上的不同数据点之间有所不同。
  • 超越监督学习

    • 在联邦网络中解决监督学习之外的问题可能需要解决类似的可伸缩性、异构性和隐私方面的挑战。
  • 产业化联邦学习

  • 基准测试

    • 由于联邦学习是一个新兴领域,我们正处于塑造这一领域发展的关键时刻,并确保它们基于现实世界的设置、假设和数据集。对于更广泛的研究团体来说,进一步建立在现有的实现和基准测试工具的基础上是至关重要的,以促进经验结果的可重复性和联邦学习新解决方案的传播。
  • 基准测试

    • 由于联邦学习是一个新兴领域,我们正处于塑造这一领域发展的关键时刻,并确保它们基于现实世界的设置、假设和数据集。对于更广泛的研究团体来说,进一步建立在现有的实现和基准测试工具的基础上是至关重要的,以促进经验结果的可重复性和联邦学习新解决方案的传播。

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

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

相关文章

JTS:10 Crosses

这里写目录标题 版本点与线点与面线与面线与线 版本 org.locationtech.jts:jts-core:1.19.0 链接: github public class GeometryCrosses {private final GeometryFactory geometryFactory new GeometryFactory();private static final Logger LOGGER LoggerFactory.getLog…

掌握 Web3 的关键工具:9大宝藏APP助你玩转区块链

Web3世界充满了无限机遇,但要掌握它,您需要合适的工具���。今天,我将为您介绍9款Web3必备APP,涵盖钱包、DEX、和工具三大类别。而且,我要特别强烈推荐一个强大的钱包——Bitget Wall…

CAN 通信-底层

本文主要以rockchip的rk3568平台基础,介绍can 控制器、硬件电路和底层驱动。 rk3568 CAN 控制器 概览 CAN(控制器区域网络)总线是一种稳健的车载总线标准,它允许微控制器和设备在没有主机计算机的应用中相互通信。它是一个基于消息的协议,最初是为了在汽车中多路…

Godot快速精通-从看懂英文文档开始-翻译插件

视频教程地址:https://www.bilibili.com/video/BV1t8411q7hw/ 大家好,我今天要和大家分享的是如何快速精通Godot,众所周知,一般一个开源项目都会有一个文档,对于有一定基础或者是理解能力强的同学,看文档比…

Qt QPair

QPair 文章目录 QPair 摘要QPairQPair 特点代码示例QPair 与 QMap 区别 关键字: Qt、 QPair、 QMap、 键值、 容器 摘要 今天在观摩小伙伴撸代码的时候,突然听到了QPair自己使用Qt开发这么就,竟然都不知道,所以趁没有被人发…

关于网络协议的若干问题(二)

1、网络号、IP 地址、子网掩码和广播地址的先后关系是什么? 答:当在一个数据中心或者一个办公室规划一个网络的时候,首先是网络管理员规划网段,一般是根据将来要容纳的机器数量来规划,一旦定了,以后就不好…

在 centos7 上安装Docker

1、检查linux内核 Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。 Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。 uname -r 2、使用 root 权限登录 Centos…

商业化之路怎么走,一家开源分布式数据库厂商的答案|爱分析调研

01 商业化是衡量开源项目成功与否的重要维度之一 中国开源软件商业化公司的涌起以及资本对开源的持续关注,正打破人们对开源与商业化“互斥”的传统印象,展现出两者关系的真正本质,即开源和商业化可以相互促进、相互融合,协同发展…

Apache Doris (三十九):Doris数据导出 - MySQL dump导出

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

Spring Cloud 2023 新特性 同步网关

网关不支持传统 Servlet 容器 Spring Cloud Gateway 需要运行在提供的 Netty 运行时。它不能在传统的 Servlet 容器中工作,也不能在构建为 WAR 时工作。WebFlux 使用了异步非阻塞的编程模型,相较于传统的 MVC Servlet 需要理解和适应新的编程范式和响应…

Python之函数详解

一、函数的定义与调用 函数定义语法: def 函数名([参数列表]): ‘’‘注释’‘’ 函数体 注意事项 函数形参不需要声明类型,也不需要指定函数返回值类型即使该函数不需要接收任何参数,也必须保留一对空的圆括号 括号后面的冒号必不可少函数…

数据结构之堆的实现

首先我们要想堆应该用什么实现,我们这里可以使用数组,因为每一层的数是有限个的,所以我们可以很容易将数的每一个位置对应到数组中去。 那我们就可以仿照顺序表写出我们的结构。 然后我们要考虑我们要实现哪些函数。 最基本的功能初始化和销…

Jetson Orin NX 开发指南(6): VINS-Fusion-gpu 的编译和运行

一、前言 由于 Jetson 系列的开发板 CPU 性能不是很好,因此在处理图像数据时往往需要 GPU 加速,而 VINS-Fusion 是针对同步定位与建图(SLAM)问题中十分出色的视觉算法,但是其在图像处理过程中资源消耗较大&#xff0c…

TypeScript基础语法

👨 作者简介:大家好,我是Taro,前端领域创作者 ✒️ 个人主页:唐璜Taro 🚀 支持我:点赞👍📝 评论 ⭐️收藏 文章目录 前言一、TS是什么?二、使用步骤1.安装TS…

力扣刷题 day41:10-11

1.乘积最大子数组 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 子数组 是数组的连续子序列。 方法一&…

图像特征算法---ORB算法的python实现

一、ORB算法 1.算法简介 ORB 是 Oriented Fast and Rotated Brief 的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。 其中,Fast 和 Brief 分别是特征检测算法和向量创建算法。ORB 首先会从图像中…

Nginx常用操作命令

文章目录 前言Nginx常用操作指令查看Nginx版本号启动Nginx && 关闭Nginx重新加载Nginx 前言 我们在使用Nginx操作命令之前,我们必须要进入到Nginx的目录里面才可以。 指令1:   cd /usr/local/nginx/   指令2:    cd sbin 也可…

计算机毕业设计 it职业生涯规划系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

MySQL三大日志undolog、redolog、binlog

在MySQL中,很多的功能也都需要基于日志实现,比如事务回滚、数据持久化、数据恢复、数据迁移、MVCC机制。其中undolog、redolog都是InnoDB引擎中的日志,而且都是在Buffer Pool中,而binlog在Server层中,位于每条线程中。…

如何在小程序首页设置标题栏文字

小程序的首页标题栏是用户进入小程序时首先看到的部分,因此设置一个适合文字对于树立品牌非常有作用。以下是一些简单的步骤,教你如何在小程序的首页设置标题栏文字(如下图,白色的“商城”文字)。 1. 在小程序管理员后…