《Communication-Efficient Learning of Deep Networks from Decentralized Data》

news2025/2/1 10:48:50

Communication-Efficient Learning of Deep Networks from Decentralized Data

这篇文章算是联邦学习的开山之作吧,提出了FedAvg的算法,文中对比了不同客户端本地训练次数,客户端训练数据集划分的影响。

0. Abstract

现代移动设备可以获取大量适合学习模型的数据,然而,这些丰富的数据通常是隐私敏感的、数量很大的,这可能导致无法记录到数据中心并使用传统方法进行培训。本文提倡一种替代方案,将训练数据分布在移动设备上,并通过聚合本地计算的更新来学习共享模型,称为联合学习。
本文在五种模型四个数据集下测试了联邦学习的效果。

1. Introduction

每个客户端都有一个从未上传到服务器的本地训练数据集。相反,每个客户端计算一个对服务器维护的当前全局模型的更新,并且只有这个更新才会被通信。

主要贡献
1)确定了移动设备上分散数据的训练问题作为一个重要的研究方向;
2)选择一个简单实用的算法,可以应用于这一设置;
3)对所提出的方法进行了广泛的实证评估。更具体地说,我们引入了FederatedAveraging算法,它将每个客户端的局部随机梯度下降(SGD)与执行模型平均的服务器相结合。对该算法进行了大量的实验,证明了该算法对不平衡和非iid数据分布具有鲁棒性,并且可以将在分散数据上训练深度网络所需的通信次数减少几个数量级。

联邦学习的理想问题有以下属性:
1)在移动设备上进行的训练比在数据中心中通常可用的代理数据上进行的训练具有明显的优势。
2)这些数据是隐私敏感的或大的(与模型的大小相比),所以最好不要纯粹为了模型训练的目的而将其记录到数据中心(服务于集中收集原则)。
3)对于监督任务,数据上的标签可以从用户交互中自然地推断出来。

隐私安全:与持久数据上的数据中心培训相比,联邦学习具有明显的隐私优势。
联邦优化:我们将联邦学习中隐含的优化问题称为联邦优化,它与分布式优化建立了联系(并形成对比)。联邦优化与典型的分布式优化问题有几个关键的区别:

  1. 非独立同分布:标签分布不均
  2. 不平衡:样本数量不同
  3. 大规模
  4. 通信约束:移动设备经常离线,或者连接速度慢或费用高。

我们的目标是使用额外的计算,以减少训练模型所需的通信轮数。有两种主要的方法可以增加计算量:1)增加并行性,在每个通信轮之间我们使用更多的客户端独立工作;2)增加了每个客户端的计算量,每个客户端在每个通信轮之间执行一个更复杂的计算,而不是执行一个简单的计算,比如梯度计算。我们研究了这两种方法,但我们实现的加速主要是由于在每个客户机上增加了更多的计算量,一旦使用了客户机上的最小并行度。

2. FedAvg

我们在每一轮中选择一个客户端的Cfraction,并计算这些客户端所持有的所有数据的损失梯度。因此,C控制全局批量大小,C = 1对应的是全批量(非随机)梯度下降我们将此基线算法称为FederatedSGD(或federdsgd)。

FedAvg计算量由三个关键参数控制:C,每轮执行计算的客户端的比例; E,每个客户端在每一轮中对其本地数据集进行训练的次数; 和B,用于客户端更新的本地minibatch大小。 我们写b=∞来表示整个局部数据集被视为单个小批处理。 因此,在该算法族的一个端点上,我们可以取b= ∞ \infty 和e=1,这正好对应于FEDSGD。
在这里插入图片描述
θ \theta θ是两个模型的聚合参数,聚合权重一个是 θ \theta θ一个是 1 − θ 1-\theta 1θ,根据实验结果图我们可以发现,如果两个模型的初始模型参数不同,使用平均聚合0.5的结果不是很好,反而单独使用一个模型的权重, θ \theta θ接近0或者1反而更好。但是如果两个模型初始化使用相同的模型参数,那么使用0.5进行聚合的结果就会比较好。

在这里插入图片描述
FedAvg算法分为客户端的服务器两块,客户端就是简单地本地训练,这里训练首先划分了一个batch的大小,batch集合为 B \mathcal{B} B,然后客户端需要迭代E轮,那样客户端就总共需要循环 E ∗ n k B E*\frac{n_k}{B} EBnk次。服务器负责选中随机客户端,并且下发全局模型并且等待客户端返回更新结果,这里的更新权重是以客户端本地的数据量来决定的,客户端本地的数据量越多,FedAvg聚合时所占的权重也就越大。

3. Experiment

实验设置:初步研究包括两个数据集上的三个模型族。前两个是MNIST数字识别任务[26]:
1)一个简单的多层感知器,有2个隐藏层,每个层有200个单元,使用ReLu激活(总共199,210个参数),我们称之为MNIST 2NN。
2)有两个5x5卷积层的CNN(第一个是32个通道,第二个是64个,每个都有2x2 max pooling),全连接层有512个单元,ReLu激活,最后有softmax输出层(总共1663370个参数)。

研究了在客户端上划分MNIST数据的两种方法:IID,数据被洗牌,然后划分为100个客户端,每个客户端接收600个示例,以及Non-IID,按照数字标签对数据排序,将其划分为200个大小为300的分片,并为100个客户端分配2个分片。这是一种病态的非iid数据分区,因为大多数客户机将只有两个数字的示例,这让我们可以探索我们的算法在高度非iid数据上的破坏程度。

对于语言建模,我们从莎士比亚全集[32]构建了一个数据集。生成包含1146个客户机的数据集。对于每个客户,我们将数据分解为一组训练线(角色的前80%的线)和测试线(最后的20%,四舍五入到至少一行)。同样分为IID和non-IID的两组数据,使用的模型为LSTM。

在这里插入图片描述

对于b= ∞ \infty (对于MNIST每轮处理所有600个客户机示例为一个批次),在增加客户机部分方面只有很小的优势。 使用较小的批处理大小b=10显示了使用c≥0.1的显著改进,尤其是在非IID情况下。 基于这些结果,在我们剩下的大部分实验中,我们确定C=0.1,这在计算效率和收敛速度之间取得了很好的平衡。 比较表1中b= ∞ \infty 和b=10列的轮数,可以看到显著的加速,我们接下来将对此进行研究。

在这里插入图片描述

在本节中,我们将C=0.1,并在每一轮中为每个客户机添加更多的计算量,或者减少B,或者增加E,或者两者兼而有之。我们根据这个统计信息对表中每一部分的行进行排序。 我们看到,通过改变e和b来增加u是有效的。
通过实验结果可以看出,增大客户端本地训练迭代次数,减少batch的大小可以有效地加大客户端本地的计算时长,同时也可以带来更大的训练加速,在更少的大轮次内达到收敛的效果。

准确率曲线图
在这里插入图片描述
在CIFAR10数据集上作者还与SGD进行了对比,这里的SGD但就是对集中式机器学习,并以此作为基线。(其实我觉得这有点不公平,这就是分布式机器学习和集中式机器学习对比了,效率肯定吊打单机学习)
在这里插入图片描述
在LSTM上结果相同
在这里插入图片描述

4. Conclusion

我们的实验表明联邦学习是可行的,因为FedAvg使用相对较少的通信轮来训练高质量的模型。

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

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

相关文章

永久区和元空间的区别

一文搞懂JVM之 方法区、永久代、元空间三者的区别 - 知乎 元空间和永久代的区别-腾讯云开发者社区-腾讯云 方法区和永久区/元空间之间的关系 - 简书 方法区(Method Area),是JVM规范中提出的一个(概念),用于存储类信息、常量池、静态变量、JIT编译后的代码等。 Th…

“周杰伦概念股”IPO,巨星传奇市值42亿港元

“周杰伦概念股”巨星传奇,一波三折终上市。 今日(7月13日),巨星传奇集团有限公司(下称“巨星传奇”,06683.HK)正式挂牌港交所。 此前,巨星传奇于2021年9月、2022年3月和2022年10月…

【广州华锐互动】发动机零件拆装VR虚拟学习平台

随着科技的飞速发展,虚拟现实(VR)技术正在各行各业中发挥越来越重要的作用。在工业教育领域,发动机零件拆装VR虚拟学习平台为学生提供了一种全新的学习方式,使他们能够在安全、低成本的环境中进行实践操作,从而提高技能&#xff0…

Redis常用数据结构及原理

Redis常用六种数据类型 Redis 支持多种数据类型,每种类型都具有不同的特性和用途。以下是 Redis 中常见的数据类型: 一、字符串(String) 1、基本介绍 字符串是最基本的数据类型,可以存储任意类型的数据&#xff0c…

Simulink仿真模块 - Repeating Sequence

Repeating Sequence:生成任意形状的周期信号 在仿真库中的位置为:Simulink / Sources 模型为: 说明 Repeating Sequence 模块可以输出波形由 Time values 和 Output values 参数指定的周期性标量信号。Time values 参数指定输出时间向量。Output values 参数指定输出时间对应…

Windows 组策略 部署打印机

一、服务端 1、打印机管理:添加打印机 2、选择打印机 3、第一次安装,选择这个 4、下载驱动,从磁盘安装 5、已成功安装 6、选中打印机右击属性:列出目录 7、创建一个组策略 8、组策略设置 用户设置 → 首选项 → 控制面板 → 打印…

12_基于 I2C 协议的 EEPROM 驱动控制

12_基于 I2C 协议的 EEPROM 驱动控制 1. I2C协议1.1 I2C通信协议1.2 I2C物理层1.3 I2C协议层1.3.1 单字节数据的写入1.3.2 页写数据写入1.3.3 随机读取操作1.3.4 顺序读取操作 2. EEPROM2.1 板载 EEPROM 实物图2.2 板载 EEPROM 部分原理图 3. 实验目标4. 模块框图4.1 顶层模块4…

进程、线程、调度基础知识

程序是一些保存在磁盘上的指令的有序集合,是静态的,说白了就是一堆有逻辑的代码。包装成一个软件。 一、进程 是程序一次执行的过程。每个进程有自己独立的内存空间,一个进程有多个线程。 并行和并发对比: 字面意思而言&#xf…

Java 反射四大核心类:Class、Constructor、Method、 Filed

目录 反射可以做到的事情 反射重要的4个类 Class类 Class类的类图 Class类常用方法 获取Class类对象4种方式 基本数据类型的Class类对象和包装类的Class类对象 Field类 Method类 Constructor类 反射的简单使用 反射可以做到的事情 在不修改源码的情况下,…

Redis主从复制环境部署

文章目录 Redis主从复制:原理:全同步过程:增量同步过程:主从复制配置:关闭防火墙和Selinux(三台都要)修改bindIP:node3node2master 以138为主,140,141为从检查…

redis 跳跃表、字典、压缩列表、快速列表

redis 跳跃表、字典、压缩列表、快速列表 1. 跳跃表 ​ 跳跃表是有序集合的底层实现。就是将有序集合的部分节点进行分层。每一层都是有序集合,并且层次越高,节点数量就越少。最底层的包含所有节点数据。典型的空间换时间。 ​ Redis中的跳跃表&#x…

使用 FreeCAD 软件打开 stp、dwg、dxf 等模型文件并测量零件尺寸

1、下载安装 FreeCAD 软件 https://www.freecad.org/downloads.php 2、打开 stp 等模型文件,选择 framework 查看方式(只显示点、线) 3、切换到 Part 菜单栏 4、打开 Measure Linear 工具(测量线性距离) 5、选择两个…

初探KVM虚拟化技术:新手指南

首先了解一下虚拟化的概念 虚拟化是指对资源的逻辑抽象、隔离、再分配、管理的一个过程,通常对虚拟化的理解有广义狭义之分。广义包括平台虚拟化、应用程序虚拟化、存储虚拟化、网络虚拟化、设备虚拟化等等。狭义的虚拟化专门指计算机上模拟运行多个操作系统平台。…

安卓设备监听全部输入信号

前言: 最近团队收到一个产品需求,需要监听安卓设备上用户是否有输入行为,以免定制推荐的时候打搅到用户。这里指的是设备上所有应用的输入行为,而不是单指某一个应用。 这个需求还是蛮有挑战性的,需要涉及到很多FW层…

Java设计模式之模板模式

1. 模板模式介绍 1、模板模式即模板方法模式自定义了一个操作中的算法骨架,而将步骤延迟到子类中,使得子类可以不改变一个算法的结构,可以自定义该算法的某些特定步骤; 2、父类中提取了公共的部分代码,便于代码复用&am…

PyTorch深度学习实战(5)——计算机视觉基础

PyTorch深度学习实战(5)——计算机视觉基础 0. 前言1. 图像表示2. 将图像转换为结构化数组2.1 灰度图像表示2.2 彩色图像表示 3 利用神经网络进行图像分析的优势小结系列链接 0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析&#xff…

Scala(二)

第2章 变量和数据类型 2.1 注释 Scala注释使用和Java完全一样。 注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。 1)基本语法 (1)单行注释:// (2&#xff0…

高时空分辨率、高精度一体化预测技术的风、光、水自动化预测技术的应用

第一章 预测平台讲解及安装 一、高精度气象预测基础理论介绍 综合气象观测数值模拟模式; 全球预测模式、中尺度数值模式; 二、自动化预测平台介绍 Linux系统 Crontab定时任务执行机制 Bash脚本自动化编程 硬件需求简介 软件系统安装 …

独立站该怎么带来客户流量?来看看这五大方法吧!

建立独立站是为了让更多的人知道你的品牌和产品,从而吸引潜在客户并转化为销售机会。以下是一些可以帮助独立站带来客户流量的方法: 01.SEO(搜索引擎优化): 优化网站的SEO,使得搜索引擎能够更好地找到你的…

MyBatis之慎用association

这里先总结一下 association 存在的问题。 一、内嵌查询时存在报错Id找不到及内存溢出隐患 二、一对多关系数据重复问题 三、多层嵌套内层 association 查询结果为null 或 非预期的值 一、内嵌查询时存在报错Id找不到及内存溢出隐患 参考: https://www.lmlphp.co…