您的位置  油气能源  非常规气

新加坡国立&UC伯克利提出模型对比联邦学习算法MOON | CVPR 2021

  • 来源:互联网
  • |
  • 2021-07-23
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

新加坡国立&ampUC伯克利提出模型对比联邦学习算法MOON | CVPR 2021

AI 科技评论报道

编辑 | 陈大鑫

AI 科技评论今天介绍一篇 CVPR 2021 会议录用论文: 《Model-Contrastive Federated Learning》,这篇文章提出了一个简单有效的联邦学习算法 MOON,来提升在不同参与方数据分布不同情况下的训练效果。实验表明MOON相比其他联邦学习方法有明显的准确率提升。

本文作者为新加坡国立大学的Qinbin Li博士生,Bingsheng He教授以及加州大学伯克利分校的Dawn Song教授。

第一作者主页: https://qinbinli.com/

论文链接:https://arxiv.org/pdf/2103.16257.pdf

代码:https://github.com/QinbinLi/MOON

1研究问题

联邦学习(Federated Learning)保证多个参与方(parties)在不交换数据的情况下共同训练机器学习模型。随着人们对隐私越来越重视,联邦学习成为了一个非常火热的研究方向。

一个流行的联邦学习算法是联邦平均(FedAvg),如图1所示,其训练过程每轮重复以下四步:

(1)服务器端(server)把模型发送给参与方。

(2)参与方用本地数据更新模型。

(3)参与方把模型发送给服务器。

(4)服务器整合收到的模型,用均值来更新模型。

图1 FedAvg算法

联邦学习中一个关键挑战是不同参与方的本地数据的分布不相同(non-IID data)。在这种情况下,在第二步本地训练过程中,每个参与方面向自己的局部最优来更新本地模型,导致模型更新方向相差很大,最终平均之后的模型也离全局最优相差很大。如何在数据分布不同的场景下提高联邦学习的效果是一个非常重要的研究问题。

2动机

对比学习(contrastive learning)是一个先进的用来学习图片特征的自监督学习方法。对比学习的一个核心思想是同一个图片经过不同转化后的特征是相似的,不同图片的特征是不相似的。

受启发于对比学习,本文将特征比较应用在了模型层面。图2比较了同一数据集在不同模型上的特征向量,可以看到相比于用本地数据进行训练的本地模型,全局模型的特征分类更明显。

图2 CIFAR-10数据集在不同模型上的特征向量的T-SNE可视化

基于这个发现,本文提出了MOON(Model-Contrastive Federated Learning),通过比较同一数据在不同模型上产生的特征来矫正本地训练的更新方向。

3方法

在本地训练过程中,MOON通过引入模型对比损失(model-contrastive loss)来矫正更新方向。由于服务器端生成的全局模型能比本地更新的模型产生更好的特征,模型对比损失目标是减少当前更新的模型产生的特征与全局模型产生的特征的距离,并增大当前模型产生的特征和上一轮模型产生的特征的距离。类似于对比损失(contrastive loss),模型对比损失的定义如下,

其中是余弦相似度,是当前模型产生的特征,是全局模型产生的特征,是上一轮本地模型产生的特征,是超参。

本地训练过程中的损失由两部分组成,一部分是根据标签产生的损失(比如交叉熵损失),另一部分是模型对比损失,通过一个超参来控制权重。如下所示,

是输入数据特征,是标签,是模型。

整个训练算法如图3所示。

图3 MOON算法

4 实验

本文使用了3个图片数据集进行实验,包括CIFAR-10, CIFAR-100, 和Tiny-ImageNet。本文采取了不均匀划分的方法,将训练集划分到各个参与方上。比较的方法有SOLO,FedAvg,FedProx,和SCAFFOLD,其中SOLO指每个参与方不进行联邦学习,只用本地数据进行训练,FedProx和SCAFFOLD是基于数据分布不同的联邦学习算法。这里展示部分实验结果。

表1展示了10个参与方的设置下不同方法的效果。可以看到MOON比其他方法至少要好2%。

表1 不同方法收敛后测试准确率比较

图4分别展示了CIFAR-100数据集上在50个参与方和100个参与方(每轮随机选择20个参与训练)的情况下不同方法的训练曲线。可以看到MOON提升明显,如果将模型对比损失的权重设为10,MOON的准确率可以比FedAvg高6-7%。

图4 CIFAR-100上的不同方法性能比较

更多实验请阅读原论文。

5 总结

本篇文章提出了一个简单有效的联邦学习算法MOON,来提升在不同参与方数据分布不同情况下的训练效果。受启发于对比学习,MOON通过最大化同一数据在本地模型和全局模型上的特征相似度来矫正本地训练的模型更新方向。实验表明MOON相比其他联邦学习方法有明显的准确率提升。

https://icml.cc/virtual/2021/awards_detail

https://watch.videodelivery.net/b504b00c401ac24e41ab297a9f3781b9

由于微信公众号试行乱序推送,您可能不再能准时收到的推送。为了第一时间收到的报道, 请将“”设为星标账号在看”。

姜昆春晚相声 http://www.cityruyi.com/lm-4/lm-1/3248.html
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186
  • 标签:SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1
  • 编辑:王智
  • 相关文章
TAGS标签更多>>
SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=15 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=15 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=15 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=15 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1