联邦学习综述二

联邦学习漫画

联邦学习漫画链接: 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.rhkb.cn/news/156374.html

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

相关文章

【广州华锐互动】智轨列车AR互动教学系统

智轨列车,也被称为路面电车或拖电车,是一种公共交通工具,它在城市的街头巷尾提供了一种有效、环保的出行方式。智轨列车的概念已经存在了很长时间,但是随着科技的发展,我们现在可以更好地理解和欣赏它。通过使用增强现…

日常学习记录随笔-zabix实战

使用zabix结合 实现一套监控报警装置 不管是web开发还是大数据开发 我们的离线项目还是实时项目也好,都需要把我们的应用提交到我们服务器或者容器中去执行 整个应用过程中怎么保证线上整体环境的稳定运行 监控很重要 现在比较主流的就是 普罗米修斯以及zabix 我要做…

代码随想录算法训练营第23期day20| 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

目录 一、(leetcode 530)二叉搜索树的最小绝对差 二、(leetcode 501)二叉搜索树中的众数 1.二叉搜索树 2.非二叉搜索树 思路 三、(leetcode 236)二叉树的最近公共祖先 一、(leetcode 530&…

R语言 一种功能强大的数据分析、统计建模 可视化 免费、开源且跨平台 的编程语言

R语言是一种广泛应用于数据分析、统计建模和可视化的编程语言。它由新西兰奥克兰大学的罗斯伊哈卡和罗伯特杰特曼开发,并于1993年首次发布。R语言是一个免费、开源且跨平台的语言,它在统计学和数据科学领域得到了广泛的应用。 R语言具有丰富的数据处理、…

相交链表Java

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 nu11。 以下有两种解决方法: 一种是用Map,利用其key值唯一的方法去判断(也可以使用set,set在add时,已存在的元素会返回false,不存在的返回…

机器学习-概述与贝叶斯算法

机器学习的一般步骤:数据搜集、数据清洗、特征工程、数学建模。数据划分:训练集、验证集、测试集。K折交叉验证:解决数据量不够大问题,解决参数调优问题。深度学习不用做特征工程,传统机器学习要。损失函数&#xff0c…

顶顶通ASR安装配置说明

联系顶顶通申请Asrproxy授权,勾选asrproxy和asrserver模块。 下载语音识别模型 链接: https://pan.baidu.com/s/1ugh-fVwhdt30A0ueMjdvHg?pwd65e4 提取码: 65e4 安装asrproxy到/ddt/asrproxy,模型解压到 /ddt/asrproxy/model 对接mod_vad asrproxy.…

抖音小程序没人做了吗?

我是卢松松,点点上面的头像,欢迎关注我哦! 咱说的严谨点,不是没人做了,而是做的人少了。利益驱使,越来越多的人开始思考新方向了,开发小程序的人少了,排名也没多少人做了&#xff…

从0开始学go第七天

gin获取表单from中的数据 模拟简单登录页面&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>login</title> </head><body><form action"/login" method&q…

GPU 基础知识整理

萌新&#xff1a; 在接触一款硬件时我会&#xff1a;基础硬件结构&#xff0c;线程结构&#xff0c;内存布局&#xff0c;数据吞吐量&#xff0c;等方面进行学习 首先GPU的特点: 并行性能&#xff1a;GPU 是专门设计用于并行计算的硬件&#xff0c;通常具有大量的处理单元&am…

论文阅读笔记(Clover: 计算与存储被动分离的分布式键值存储系统)

关于Disaggregating Persistent Memory and Controlling Them Remotely: An Exploration of Passive Disaggregated Key-Value Stores这篇论文的笔记 原文链接 提出背景 传统的分布式存储系统中&#xff0c;每个节点都会包含计算和存储两个部分&#xff0c;一个节点既可以访…

web3.0时代分布式网络协议的异同

Web3.0时代标志着分布式网络协议的兴起&#xff0c;其中IPFS&#xff08;InterPlanetary File System&#xff09;和NDN&#xff08;Named Data Networking&#xff09;是备受瞩目的项目。尽管它们都属于分布式网络协议领域&#xff0c;但在多个方面存在显著区别。以下是IPFS和…

Python- socket编程

Python中的socket模块为网络通信提供了基础API&#xff0c;使我们能够在应用程序中实现低级的网络交互。使用socket编程&#xff0c;可以创建TCP、UDP和RAW sockets来进行数据通信。 以下是Python socket 编程的简要概述&#xff1a; 1. 核心概念 Socket: 通信的端点&#x…

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

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

Centos (含Rocky-Linux) VSFTPD 简单设置

本文并非深入讨论vsftp配置的文章&#xff0c;仅以能连通为目的&#xff0c;适合那些临时需要上传点东西到服务器的场景。 一、安装 dnf -y updatednf -y install vsftpdsystemctl start vsftpdsystemctl enable vsftpd二、防火墙 开放21端口&#xff1a; firewall-cmd --zo…

按键中断小灯蜂鸣器风扇

按键1实现小灯亮灭&#xff0c;按键2实现蜂鸣器&#xff0c;安静3实现风扇 src/key_it.c #include"key_it.h"void key3_it_config() {//RCC使能GPIOF时钟RCC->MP_AHB4ENSETR | (0x1<<5);GPIOF->MODER & (~(0x3<<16));EXTI->EXTICR3 &…

RustDay03——记录刷完Rust100题

刷了两三天Rust&#xff0c;终于把Rust100题刷完了&#xff0c;小小记录一下 明天白天的时候重开账户开题写答案

ThreeJS-3D教学七-交互

在threejs中想要选中一个物体&#xff0c;点击或者鼠标悬浮&#xff0c;又或者移动端的touch事件&#xff0c;核心都是通过new THREE.Raycaster完成的。这里用到了一个概念&#xff0c;即我们点击时的 屏幕坐标 转换为 three中的3D坐标。 先看效果图&#xff1a; 代码是&#…

2023全国大学生软件测试大赛开发者测试练习题99分答案(ScapegoatTree2023)

2023全国大学生软件测试大赛开发者测试练习题99分答案(ScapegoatTree2023) 题目详情题解代码(直接全部复制到test类中即可)提示:该题只需要分支覆盖得分即可,不需要变异得分 题目详情 题解代码(直接全部复制到test类中即可) package net.mooctest;import static org.…

Zabbix安装出现必要条件检查失败

问题描述 今天在某朋友部署新环境的Zabbix时&#xff0c;系统出现如下的检查失败情况。此环境的基础部分不是我负责&#xff0c;而是其它项目共存的PHP环境&#xff0c;也是挺奇怪的。一般来说&#xff0c;不应该将zabbix与其它系统部署在一起&#xff0c;没有条件哪怕时Docke…