新加坡国立&UC伯克利提出模型对比联邦学习算法MOONCVPR2021cvpr方向

本文作者为新加坡国立大学的QinbinLi博士生,BingshengHe教授以及加州大学伯克利分校的DawnSong教授。

1

研究问题

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

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

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

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

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

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

图1FedAvg算法

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

2

动机

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

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

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

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

3

方法

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

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

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

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

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

图3MOON算法

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%。

THE END
1.对比学习Python实现对比学习代码对比学习是一种通过对比正反两个例子来学习表征的自监督学习方法。对于自监督对比学习,下一个等式是对比损失: L i , j = ? log ? e x p ( z i ? z j / τ ) ∑ k = 1 , k ≠ i 2 N e x p ( z i ? z k / τ ) \mathcal{L}_{i,j} = - \log \frac{exp(\textbfhttps://blog.csdn.net/xyisv/article/details/122479808
2.NLP简单的对比学习实战代码mob649e8164659f的技术博客NLP简单的对比学习实战代码 NLP简单的对比学习实战指南 对比学习是一种自监督学习的策略,常用于提升深度学习模型在无标签数据上的表现。在自然语言处理(NLP)领域,对比学习能够帮助我们有效地从文本数据中学习有用的特征。本文将通过一个简单的实战案例来让你了解如何实现NLP中的对比学习。https://blog.51cto.com/u_16175500/11846854
3.git对比代码的算法有哪些?Worktile社区4. 基于哈希的对比算法(Hash-based Diff Algorithm):这种算法使用哈希函数来对比代码的内容。它计算每个代码块的哈希值,并将其与另一个版本进行比较。这种算法的优点是速度快,但无法处理细微的代码变化。 除了以上算法,还有一些基于统计分析、机器学习或深度学习的对比算法正在不断发展,并且在某些特定的场景下可能更适https://worktile.com/kb/ask/204884.html
4.超详细的对比学习综述腾讯云开发者社区在这里,我们将之前的想法进行抽象,用空间考虑对比学习。 最终目标: 缩小与正样本间的距离,扩大与负样本间的距离,使正样本与锚点的距离远远小于负样本与锚点的距离,(或使正样本与锚点的相似度远远大于负样本与锚点的相似度),从而达到他们间原有空间分布的真实距离。 丈量二者距离:欧几里得距离,余弦相似度,马氏距离(https://cloud.tencent.com/developer/article/2034623
5.十大经典机器学习算法详解及代码实现机器学习领域有许多经典算法,对于初学者来说,全面学习可能有些挑战。以下是十大经典机器学习算法的详细介绍,包括书籍、课件和源代码,供大家参考: 决策树 决策树是一种基于概率的决策分析方法,通过构建决策树来评估项目的风险和可行性。它是一种直观的概率分析图解法。 https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_4130926917743983440
6.[附代码]A*算法&Dijkstar算法对比可视化及操作哔哩哔哩关注公众号:规划与代码之旅承接复杂网络、机器学习算法、城乡规划、交通规划、物流配送等方面论文辅导,有意留意面包多, 视频播放量 1290、弹幕量 0、点赞数 37、投硬币枚数 23、收藏人数 87、转发人数 4, 视频作者 小土豆6666条, 作者简介 ,相关视频:01-零代码实现—高https://www.bilibili.com/video/BV18z421S716
7.对比研究:两篇基于强化学习算法的智能导航论文上文DQM智能导航算法涉及的源代码和用论文给定数据集训练的AI模型: DQM.py14.46KBPY5次下载 dqn.pth332.10KBPTH 学习AI算法必须要有较强的数学功底和直觉,否则只会停留在一个较低的层次。另外具体开发算法最好自己完成证明,否则算法在严谨性方面会大打折扣。 https://www.kechuang.org/t/90315