IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 论文阅读:SCAFFOLD: Stochastic Controlled Averaging for Federated Learning -> 正文阅读

[游戏开发]论文阅读:SCAFFOLD: Stochastic Controlled Averaging for Federated Learning

1.研究背景:

为了改进Fedavg算法当数据是异构(非iid)时,它遭受“客户漂移”,导致不稳定和缓慢的收敛。

2.提出的方法:

它使用控制变量(方差减少)来纠正本地更新中的“客户端漂移”。我们证明了SCAFFOLD需要更少的通信轮数,并且不受数据异构性或客户端采样的影响。进一步,我们证明(对于二次方程)

SCAFFOLD可以利用客户端数据的相似性,从而产生更快的收敛。
后者是量化局部步骤在分布式优化中的作用的第一个结果。
1).创新点:
a.可以克服客户端异质性(可以将异质性视为在不同客户端之间的更新中引入“客户端方差”,然后该算法会执行客户端方差减少);
b.在明显较少的通信回合中达到收敛状态;
c.我们推导出FEDAVG比之前已知的凸函数和非凸函数在客户端采样和异构数据下更紧密的收敛速度
d.我们给出匹配下界来证明即使没有客户取样和全批梯度,FEDAVG也会由于客户漂移而比SGD慢。
e.SCAFFOLD相对不受客户端抽样获得方差降低率的影响,使其特别适合联合学习。

3.SCAFFOLD算法核心:

3.1FedAvg算法更新公式:
在这里插入图片描述
3.2.SCAFFOLD更新公式:
在这里插入图片描述
本论文中的算法只是比FEDAVG多了一个修正项:c-ci,有这个修正项便可以有效的解决本地更新时的客户端漂移,让每个客户端在本地更新的时候假装看到其他客户端的数据信息,就像是每次更新的时候去猜测别人可能做什莫,有了这个猜测就好像是在进行正常的数据训练,对于这个算法,我不仅每次更新参数,还要更新我的这种猜测。
小细节:
1-SGD的更新过程:在本地更新一次就进行一次通信(路径与server理想的更新路径相近,但是通信代价大)
2-FedAvg更新过程:在本地更新k次才进行一次通信(由于Non-IID,路径与server理想的更新路径发生了偏移,即client-drift,导致收敛速度缓慢)
3-SCAFFOLD更新过程:在本地更新k次才进行一次通信(由于修正项的存在,每次本地更新都会被拉回到理想的更新路径附近,收敛速度较快)
算法伪代码:
在这里插入图片描述
对比祖师爷fedavg:在这里插入图片描述

4.实验结果分析:

在这里插入图片描述
证明了本文中所提出的算法相比在数据异质性程度改变时具有很好的适应性;
在这里插入图片描述
由表可以看出:fedprox的效果最差,其次是fedavg,最好的是SCAFFOLD。
在这里插入图片描述
可以看出:在抽样客户端相同数目以及异质性相同时,我们所提出的方法明显优于其他方法;

在这里插入图片描述
结论:在EMNIST上用2层全连接神经网络(非凸)训练1k轮后的最佳测试精度
本地方法每轮5个epoch(25步),20%的客户每轮取样。SCAFFOLD的准确率最高,SGD的准确率最低。SCAFFOLD同样优于其他方法。SGD基本不受相似度的影响,而局部方法会随着客户端的相似度而提高。
总结不足之处:1.每次传给服务器的时候不仅要传模型的参数,还要传控制变量(梯度和参数向量维度一样),这增加了单次通信的代价(2倍)2因为要求每个client是stateful的,因此只适用于少量的客户端(thousands级别)3.本文用的是上一轮的梯度状态去猜测下一轮梯度应该往这个方向,这就要求所有的损失函数是光滑的。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:27:58  更:2021-09-12 13:29:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 16:12:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码