| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 联邦学习(FL,Federated Learning) 之FedAvg算法 -> 正文阅读 |
|
[人工智能]联邦学习(FL,Federated Learning) 之FedAvg算法 |
Communication-Efficient Learning of Deep Networks from Decentralized Data? 论文地址:[1602.05629] Communication-Efficient Learning of Deep Networks from Decentralized Data (arxiv.org) FL主要瓶颈 : ?? ?1. 通信速率不稳定,且可能不可靠 ?? ? 2. 聚合服务器的容量有限,同时与server通信的client的数量受限 解决方案:在FL的每一步考虑:? ? ? ????????1. 减少client数量 ?? ? ????????2. 减少通信带宽 FedAvg算法采取策略:????????增加客户端计算,限制通信频率(在上传更新的梯度之前执行多次本地梯度下降迭代) FedAvg算法 ?? ???????????随机选择m个客户端采样,对这m个客户端的梯度更新进行平均以形成全局更新,同时用当前全局模型替换未采样的客户端 ?? ? 优点:相对于FedSGD在相同效果情况下,通讯成本大大降低 ?? ? 缺点:最终的模型是有偏倚的,不同于预期的每个客户端确定性聚合后的模型。 FedAvg客户端抽样:? ? ? ? ? ? ? ?
FedAvg算法伪代码:? ? ? ? ? ? ? ?? ?FedAvg算法步骤:1. 在每一轮迭代的步骤t,服务端发送当前全局模型参数θ给客户端 2. 非抽样子集中的客户端根据θt,通过SGD更新本地模型 3. 抽样子集中每个客户端上传更新后的本地参数θt+1 4. 在迭代步骤t+1,服务端根据全局模型参数θi(t+1)计算出加权平均值θt+1 ? ? ? ? ?? ? ? ? ? ? ? ? 其中,由此可得最终的优化的目标函数。 ?优化目标: pi表示权重,一般表达式为nk/n。FedAvg算法最终取Li(θ)的加权平均值。 算法实现代码:
源代码地址: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/27 21:02:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |