【FedProx】论文笔记&代码

这篇具有很好参考价值的文章主要介绍了【FedProx】论文笔记&代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

4月 得了甲流,症状不是很严重,但一直流鼻涕。回想去年到现在,我似乎只做了一点点东西,今年的压力还是蛮大的诶。好在是疫情放开了,西安这几天也逐渐暖和起来,去年的阴霾一扫而光,希望诸君能和我一起努力加油!

6月 又改了一下,之前读不懂现在懂了一些,反反复复的读一篇论文真的很有用,这篇文章写的真的是很好说!!!!!!

继上篇:【FedAvg论文笔记】&【代码复现】_fedavg代码_爽爽不会编程的博客-CSDN博客

目录

Fedprox论文笔记

1、系统异质性与统计异质性

2、FedAvg介绍

3、FedProx公式解释

4、FedProx 收敛性分析

5、实验部分

5.1系统异质性对比实验

5.2数据异质性对比实验

6、Conclusion


Fedprox论文笔记

首先上【FedProx】论文链接:https://arxiv.org/abs/1812.06127

1、系统异质性与统计异质性

介绍了联邦学习的关键挑战

1、系统异质性(参与训练的设备硬件条件、网络环境、电池效率等差异导致的模型更新速度、模型稳定、模型收敛问题,和后面的设备算力相对应

2、统计异质性(在FL过程中,各client方数据经常以Non-IID形式存在)

2、FedAvg介绍

先介绍FedAvg:在client本地增加计算量,而通信时只进行加权聚合操作。具体细节参考我的上篇博客:【FedAvg论文笔记】&【代码复现】_fedavg代码_爽爽不会编程的博客-CSDN博客

FedAvg的缺点:

1、不允许参与设备根据底层的系统执行可变的轮次(就是本地局部迭代轮次E是固定的),故算力不同的设备迭代固定E轮次的时间不同,这对后面服务区等待聚合局部模型肯定会有影响嘛。

2、某些设备在规定时间位未达到收敛会被服务器“丢弃”。

3、FedProx公式解释

fedprox代码实现,人工智能从入门到入土,论文阅读

fedprox代码实现,人工智能从入门到入土,论文阅读

  • 在definition1中:

第一:加入近端项fedprox代码实现,人工智能从入门到入土,论文阅读是为了限制局部模型不能偏离全局模型过远。

第二:加入约束条件fedprox代码实现,人工智能从入门到入土,论文阅读

是对用于解决FedAvg中局部迭代轮次E固定这个问题,这个不等式的目的就是不管这个设备k局部迭代了多少轮,只要满足我这个约束条件就达到聚合条件。)

再通过求解目标函数fedprox代码实现,人工智能从入门到入土,论文阅读满足不等式fedprox代码实现,人工智能从入门到入土,论文阅读的非精确解𝑤∗即可得到一个可容忍算力差异和数据异质的非精确模型𝑤∗。

  • 在definition2 中:主要是细化了在第t轮,第K个设备的fedprox代码实现,人工智能从入门到入土,论文阅读

此时需要优化的局部目标函数为fedprox代码实现,人工智能从入门到入土,论文阅读,求非精确解需满足的约束条件为fedprox代码实现,人工智能从入门到入土,论文阅读

求目标函数的梯度fedprox代码实现,人工智能从入门到入土,论文阅读与约束右侧的梯度fedprox代码实现,人工智能从入门到入土,论文阅读,故约束条件可写为:fedprox代码实现,人工智能从入门到入土,论文阅读

可发现fedprox代码实现,人工智能从入门到入土,论文阅读的作用,它控制着求解非精确解的精确程度,它越小代表求得的非精确解越精确。

添加近端项的目的:

在局部子问题上添加一个近端项,以有效地限制变量局部更新的影响

其实可以这么想,由于数据异质性,每个客户端client上的数据集相比于总数据集,它的样本都是不完备的,那基于这不完备的数据集训练的局部模型也是不具有代表性的,故需要添加一个正则项来调整局部目标函数,使局部模型与全局模型的差距不要那么大。

而这个正则项就是本文中所提的近端项fedprox代码实现,人工智能从入门到入土,论文阅读

还有种理解就是,算力差异的设备加上本地数据集样本较少,较多轮次的局部迭代让训练的局部模型过拟合。

PROX的局部目标函数为:

fedprox代码实现,人工智能从入门到入土,论文阅读

接下来就是整个FedProx的伪代码啦!

fedprox代码实现,人工智能从入门到入土,论文阅读

首先是随机选取K个客户端client,在第t轮第k个client为例:

首先在第t+1轮开始阶段,服务器下发第t轮的全局模型给W𝑡客户端,客户端K对目标函数:fedprox代码实现,人工智能从入门到入土,论文阅读求在约束条件fedprox代码实现,人工智能从入门到入土,论文阅读下的非精确解𝑤∗,此时有:fedprox代码实现,人工智能从入门到入土,论文阅读

而在服务器聚合阶段是没有什么改动的,只是收集第t+1轮各个客户端的局部模型fedprox代码实现,人工智能从入门到入土,论文阅读,进行了平均聚合得到新一轮的全局模型而已:fedprox代码实现,人工智能从入门到入土,论文阅读

4、FedProx 收敛性分析

4.1 local dissimilarity局部不相似性

引入局部不相似性来证明收敛性。

fedprox代码实现,人工智能从入门到入土,论文阅读

 所有的局部函数相同时,B(w)=1,而在联邦学习中考虑数据的IID,故B(w)>1

在大样本极限下,所有局部函数Fk(w)对每个w收敛于相同的期望风险函数,则B (w)→1

B (w)≥1和B (w)的值越大,局部函数之间的差异性越大

随后又引出了 局部函数不相似但有界来作为局部函数收敛的假设。

5、实验部分

用到的数据集:fedprox代码实现,人工智能从入门到入土,论文阅读

5.1系统异质性对比实验

实验设定了规定的局部迭代轮次E=20,再将低于E的轮次随机的分配0%,50%,90%的客户端。(这个操作为假设系统异质性,为了对比FedAvg中未到达指定轮次会被简单粗暴的丢弃掉,而在FedProx中会通过求解非精确解使得迭代轮次非固定,进而避免被丢弃,u=0代表着没有加入近端项。)

fedprox代码实现,人工智能从入门到入土,论文阅读

可以看到在各个数据集上,随着没有到达E轮次的设备越来越多(从0%~90%),FedAvg算法的收敛性也变得非常不稳定。随着数据集的类别增多,数据异质性增大,FedProx收敛性能也变差,但加入近端项后𝜇≠0的FedProx的稳定性和鲁棒性有所增加。

可看到影响收敛性的关键参数为:局部迭代轮数E,是否加入近端项𝜇≠0

5.2数据异质性对比实验

规定固定的迭代轮次E,随着从左到右数据异质性的增加,FedAvg算法的收敛性越来越不稳定,但𝜇≠0的FedProx算法对收敛起到了稳定性作用。值得注意的是,在最左侧数据为独立同分布时,未加入近端项(𝜇=0)时,FedProx没有FedAvg的收敛速度快,但加入近端项(𝜇>0)时,收敛速度才有了显著提升。

fedprox代码实现,人工智能从入门到入土,论文阅读

上面的实验说明这个𝜇是真的很重要!!但如何选取一个合适的𝜇呢?

文中提到:一个大的µ可能会通过迫使更新接近起点来减缓收敛速度,而一个小的µ可能不会有任何影响。

fedprox代码实现,人工智能从入门到入土,论文阅读

 这个实验进行一个自适应的µ的选取:当损失增加时,增加0.1,当连续5轮损失减少时,µ减少0.1。图中在独立同分布iid数据集上,紫色的线(自适应µ)相较于设定固定的µ值具有更快的收敛速度。在非独立同分不的数据集上,自适应的µ值也可以达到和固定µ一样的稳定性。

如何选择µ值?

在近端项中如何选取惩罚常数µ,启发式方法是当看到损失增加时增加µ,当看到损失减少时减少µ。

最后,作者还提了一嘴差异度量与µ之间的关系:

我们观察到增加µ导致局部函数Fk之间的差异较小,并且差异度量与训练损失是一致的。因此,差异性越小,说明收敛性越好,这可以通过适当地设置µ来实现

6、Conclusion

(1)利用r-非精确解解决了FedAvg中E固定引起部分算力不足导致“掉队”的系统异质性问题。

(2)Proximal term,利用近端项中和在Non-IID情况下局部训练模型偏离初始模型,产生差距较大的统计异质性情况。

代码

首先上链接:litian96/FedProx (github.com)

多说两句,从GitHub上面下载后,导入到pycharm中,最好看一下requirement中,项目的环境配置和需要的package。比如这个FedProx项目所依赖的环境是 文件requirements中所写的版本,如果pycharm中常用的interpret是其他版本的python和tensorflow,那肯定得在anaconda基础上再建立一个适配这个项目的虚拟环境。也可以直接在终端输入,配置。这些其实都在github中的readme文件中pip install -r requirements.txt。注意,仔细阅读readme文件对于新手来说十分重要!!!!!

我直接把适配的指令写出来:

第一步,建立虚拟环境:

conda create -n python35 python==3.5

(python35是我的虚拟环境的名字)

第二步,激活虚拟环境python35

activate python35

第三步,将当前目录地址切换到该项目文件夹下,输入:

pip install -r requirements.txt

这儿如果报错就是pip没更新,西可以先更新pip,或者也可以用conda install。

如果下载速度慢的话,可以使用国内镜像源(清华或者其他的:文章来源地址https://www.toymoban.com/news/detail-583072.html

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

到了这里,关于【FedProx】论文笔记&代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能实验:动物识别系统(C++代码实现)

    建立一个动物识别系统的规则库,编写程序用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物。 为了识别这些动物,可以根据动物识别的特征,建立包含下述规则库: R1:if 动物有毛发 then 动物是哺乳动物 R2:if 动物有奶 then 动物是哺乳动物 R3:if 动物有羽毛

    2024年02月03日
    浏览(72)
  • AIGC人工智能辅助开发:提升效率、优化代码、实现智能编程

    导语:随着人工智能的快速发展,越来越多的领域开始尝试将AI技术应用于开发过程中。AIGC(Artificial Intelligence for General Coding)是一种基于人工智能的辅助开发技术,它能够帮助开发者提升开发效率、优化代码质量,并实现智能编程。本文将介绍如何用好AIGC人工智能辅助开发

    2024年02月14日
    浏览(51)
  • 人工智能 Agent 简介:核心原理 / 数学公式 / 实现算法 / 代码实例

    人工智能Agent(AI Agent)是一个自动化的系统,它可以感知其环境并根据其感知进行决策以实现特定的目标。这些Agent可以是简单的程序,如搜索引擎的爬虫,也可以是复杂的系统,如自动驾驶汽车。AI Agent的主要目标是通过学习和优化来提高其性能。 AI Agent的实现原理主要基

    2024年02月12日
    浏览(58)
  • 【人工智能】Softmax 函数基础介绍、应用场景、优缺点、代码实现

    Softmax 函数基础介绍、应用场景、优缺点、代码实现,markdown格式,latex公式,10000字。 在机器学习中,softmax函数是一种用于多项式分类问题的激活函数,它将一个K维向量转换为K个范围在[0,1]之间且总和为1的概率分布。它通常被用于将最后一层的输出映射到一个概率分布上,

    2024年02月07日
    浏览(51)
  • 机器学习_数据升维_多项式回归代码_保险案例数据说明_补充_均匀分布_标准正太分布---人工智能工作笔记0038

    然后我们再来看一下官网注意上面这个旧的,现在2023-05-26 17:26:31..我去看了新的官网, scikit-learn已经添加了很多新功能,     我们说polynomial多项式回归其实是对数据,进行 升维对吧,从更多角度去看待问题,这样 提高模型的准确度. 其实y=w0x0+w1x1.. 这里就是提高了这个x的个数对吧

    2024年02月06日
    浏览(45)
  • 人工智能论文写作

    阅读摘要 根据摘要,看文章是否需要读。 主要看目的或者方法是不是和自己相关。 阅读和记笔记框架 这里记录好阅读过的论文后,基本上就把relate work这一部分也完成了。 寻找研究痛点 寻找研究方向 方向1 例如: 方向2:当前的热点方向 当前大部分论文都是基于上图这个

    2024年02月09日
    浏览(77)
  • 6月人工智能论文推荐

    https://arxiv.org/abs/2306.03799 Prompt engineering 是通过提供明确和具体的指令来增强大型语言模型(llm)能力的基本技术。它使LLM能够在各种任务中脱颖而出,例如算术推理、问题回答、摘要、关系提取、机器翻译和情感分析。研究人员一直在积极探索不同的提示工程策略,如思维链

    2024年02月10日
    浏览(39)
  • 毕业论文如何生成目录?人工智能毕业论文选题

    AIPaperPass是一款专为AI论文写作而设计的创新平台。作为一名研究人员或学生,写作一篇高质量的AI论文可能是一项繁琐而耗时的任务。然而,借助AIPaperPass论文写作生成器,您可以轻松地生成高质量的AI论文,节省宝贵的时间和精力。 ——应用优点—— 1、高效论文生成 AIPa

    2024年02月20日
    浏览(41)
  • gpt人工智能写论文怎么样-chatGTP如何写论文

    使用 GPT 写论文具体的操作方法因人而异,但可以提供一些建议: 充分理解论文的题目、主题和结构,并确定论文所需的内容和方向。 针对论文的不同部分,使用 GPT 模型进行自动化生成或补充,例如摘要、介绍、正文、结论、参考文献等。 对 GPT 生成的文本进行筛选和修改

    2024年02月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包