Model-Contrastive Federated Learning 论文解读(CVPR 2021)

news2024/11/24 9:24:38

Model-Contrastive Federated Learning 论文解读

对比学习SimCLR

对比学习的基本想法是同类相聚,异类相离
从不同的图像获得的表征应该相互远离,从相同的图像获得的表征应该彼此靠近

具体框架:
在这里插入图片描述
在这里插入图片描述

  • T随机数据增强模块:随机裁剪然后调整回原始大小(random cropping and resize back)、随机颜色失真(color distortions) 和 随机高斯模糊(random Gaussian blur)
    其中 σ是一个 ReLU非线性函数
  • 基础编码器(base encoder) f(⋅):用于从生成的视图中提取表示向量,允许选择各种网络架构,这一篇选择 ResNet获得 h i = f ( x ~ i ) = R e s N e t ( x ~ i ) h_i=f(\widetilde{x}_i)=ResNet(\widetilde{x}_i) hi=f(x i)=ResNet(x i)
  • 投影头(projection head) g(⋅):将表示映射到应用对比损失的空间。 本文使用一个带有一个隐藏层的 MLP来获得 z = g ( h i ) = w ( 2 ) σ ( w ( 1 ) h i ) z=g(h_i)=w^{(2)}σ(w^{(1)}h_i) z=g(hi)=w(2)σ(w(1)hi)其中 σ是一个 ReLU非线性函数。此外,发现在 zi比在 hi上定义对比损失更有益。所以z只是用来做contrastive learning的训练,而真正当我们使用feature来做下游任务时,还是选取nonlinear projection前的h 特征。这是因为h的信息量是要比z的信息量要高的。
  • 对比损失函数(contrastive loss function): 给定 batch中一组生成的视图 { x ~ k } \{\widetilde{x}_k\} {x k},其中包括一对正例 x ~ i \widetilde{x}_i x i x ~ j \widetilde{x}_j x j,对比预测任务旨在对给定 x ~ i \widetilde{x}_i x i识别 { x ~ k } i ≠ k \{\widetilde{x}_k \}_{i\neq k} {x k}i=k中的 x ~ j \widetilde{x}_j x j

Contrastive loss function

随机抽取 N个样本的小批量样本,并在从小批量样本上生成增强视图,从而产生 2N 个数据点。 本文无明确地指定负例,而是给定一个正对(positivepair),将小批量中的其他 2N−2个增强示例视为负示例。
在这里插入图片描述

算法流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Preliminary Experiment

基于这样一个直观的想法来解决Non-IID问题:
the model trained on the whole dataset is able to extract a better feature representation than the model trained on a skewed subset.

作者在CIFAR-10做了个实验,来验证他的这种直觉。
在这里插入图片描述

  • 2a:用所有数据集放在一起训练一个CNN模型。
  • 2b:将所有数据集以Non-IID的方式划分10个客户端,各自训练CNN模型,最后随机选择一个客户端的模型。
  • 2c:在10个客户端上使用FedAvg算法训练得到一个global model(10个本地模型加权平均)
  • 2d:在10个客户端上使用FedAvg算法训练,然后随机选择一个客户端的local model。(2d学习到的蓝色的类别表征明显比2c差)

Model-Contrastive Federated Learning (MOON)算法

问题定义

在这里插入图片描述
MOON的目标

  • Since there is always drift in local training and the global model learns a better representation than the local model, MOON aims to decrease the distance between the representation learned by the local model and the representation learned by the global model, and increase the distance between the representation learned by the local model and the representation learned by the previous local model.

MOON的loss函数
MOON在本地训练阶段,会有三个表征(representation)

  • z p r e v = R w i t − 1 ( x ) z_{prev} =R_{w_i^{t-1}}(x) zprev=Rwit1(x)(上一轮本地训练好的发往server的模型得到的表征)固定
  • z g l o b = R w t ( x ) z_{glob}=R_{w^t}(x) zglob=Rwt(x)(这轮开始时发送到本地的全局模型得到的表征)固定
  • z = R w i t ( x ) z =R_{w_i^t}(x) z=Rwit(x)(这轮正在被更新的本地模型得到的表征)不断被更新
With model weight w w w R w ( ⋅ ) R_w(·) Rw() to denote the network before the output layer (i.e., R w ( x ) R_w (x) Rw(x)is the mapped representation vector of input x).

我们的目标是让 z z z靠近 z g l o b z_{glob} zglob固定),让 z z z 远离 z p r e v z_{prev} zprev固定)。

我们的本地模型训练时的loss有两部分组成:传统的交叉熵损失 l s u p ​ \mathcal{l}_{sup}​ lsup以及本文提出的model-contrastive loss l c o n \mathcal{l}_{con} lcon

在这里插入图片描述


在这里插入图片描述
其中 τ \tau τ为温度系数,分子是正样本对 ( z , z glob ) (z, z_{\text {glob}}) (z,zglob),分母是正样本对 ( z , z glob ) (z, z_{\text {glob}}) (z,zglob)+负样本对 ( z , z prev ) (z, z_{\text {prev}}) (z,zprev)
MOON的优化目标(loss)如下:
在这里插入图片描述
在这里插入图片描述

MOON伪代码
在这里插入图片描述

SimCLR和MOON
作者还对比了下SimCLR和MOON框架
在这里插入图片描述

  • SimCLR是想让同一张图片(数据层面)的不同view的表征 z i z_i zi z j z_j zj最大程度地相近
  • MOON是想让全局模型和本地模型的参数(模型层面)对应的表征 z g l o b z_{glob} zglob z l o c a l z_{local} zlocal最大程度地相近。
  • 理想情况下(IID),全局模型和本地模型训练得到的表征应该是一样好的,那么 l c o n l_{con} lcon是一个常数,此时会得到FedAvg一样的效果。在这种意义上,MOON比FedAvg更具鲁棒性(能处理Non-IID的情况)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/459485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

米文动力 EVO Orin 刷机和克隆操作说明

刷机说明 博主在卸载 cuda 以及 python 后重启后黑屏无法显示,重刷系统才恢复正常。 下载 EVO Orin 用户手册(官网没有,所以上传到 CSDN 供下载)官网下载 EVO Orin 镜像文件 使用 tar -xvf 解压下载的 bootloader 和镜像包得到 …

实用提示和技巧:如何优化您的接口自动化测试工作流程?

目录 摘要 流程概述 常用工具 示例代码 结论 摘要 接口自动化测试是软件开发过程中至关重要的一环,它可以为开发团队提供稳定、高效的交付管道,并保证质量。在本文中,我们将介绍接口自动化测试的基本流程和常用工具,并提供一…

day33—选择题

文章目录 1.若一个用户进程通过read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是(A)2.Linux文件权限一共10位长度,分成四段,第三段表示的内容是(C)3.进程阻…

计算机毕业论文内容参考|人工智能|探索网络与人工智能的交叉领域

文章目录 导文文章重点摘要:引言:挑战与机遇:实际应用:结论:导文 计算机毕业论文内容参考|人工智能|探索网络与人工智能的交叉领域 文章重点 摘要: 人工智能(AI)和计算机网络的结合导致了一个新的研究领域,称为网络人工智能。网络人工智能涉及开发使计算机能够学习、…

.Net Framework 4.6.1+版本的Winform程序开启Web服务,支持Http webapi

Winform程序开启Web服务 背景思路方法1方法2方法3(本文使用的方法) 实现在winform程序中引入几个nuget包新建一个Startup类(叫什么名字都行)修改Program文件创建controller 运行效果(打开浏览器,输入如下地址&#xff…

“量子+生成式AI”!IBM联合生物制药公司Moderna进行疫苗研究

​ (图片来源:网络) 4月20日,以COVID-19疫苗而闻名的生物技术和制药公司Moderna Inc.表示,宣布正在与IBM公司合作,利用量子计算和生成式人AI探索推进研究mRNA技术的方法。 双方签署了一项协议,允…

python 基础系列篇:七、以函数方式编写一个数字华容道

python 基础系列篇:七、以函数方式编写一个数字华容道 数字华容道游戏分析开始编写完整代码代码解说定义方法的规律 小结 数字华容道 嗯,就是一个简单的益智游戏,把数字按照特定规律排列,并比矩阵少一个格,用来进行移…

CRM客户关系管理系统主要有哪些功能?

一、CRM客户管理系统是什么 客户关系管理(Customer Relationship Management,简称CRM),是指企业为提高核心竞争力,利用相应的信息技术以及互联网技术协调企业与顾客间在销售、营销和服务上的交互,从而提升…

将CSDN博客内容转为PDF进行下载

打开博客文章页面–F12–控制台–输入以下代码-回车–选择“另存为PDF”–设置样式并预览–打印 回车之后需要等待一些时间 设置之后导出即可 (function(){ use strict;var articleBox $("div.article_content");articleBox.removeAttr("style");…

超低延时交换机助力金融证券极速交易场景应用

一、 极速交易技术的兴起 随着计算机技术和金融科技的快速发展,量化交易和高频交易在全球金融市场中已经被运用到各种交易场景,特别是在股票,期货,期权等衍生品市场,已经逐渐取代人工做市(market maker)&am…

Android 动画—补间动画

帧动画是通过连续播放图片来模拟动画效果,而补间动画开发者只需指定动画开始,以及动画结束"关键帧",而动画变化的"中间帧"则由系统计算并补齐! 1.补间动画的分类和Interpolator Andoird所支持的补间动画效果…

【应急响应】挖矿脚本检测指南威胁情报样本定性文件清除入口修复

文章目录 挖矿样本-Win&Linux-危害&定性Linux-Web安全漏洞导致挖矿事件Windows-系统口令爆破导致挖矿事件Linux-个人真实服务器被植入挖矿分析 挖矿样本-Win&Linux-危害&定性 危害:CPU拉满,网络阻塞,服务器卡顿、耗电等 定性…

Opencv+Python笔记(十)灰度直方图、直方图均衡化、掩模的应用

目录 一、灰度直方图二、图像掩模的应用三、直方图均衡化1.直方图均衡化2.自适应的直方图均衡化 一、灰度直方图 概念: 灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。灰度直方图是将数字图像中的所有像素,按照灰度值的大小…

SAP-重复制造行业为什么推荐定额工艺路线

翻译一篇大佬的文章: Why Rate Routing is (recommended) used in Repetitive Manufacturing? 看多了博客解Routing和Rate routing的区别,看来还是有很多会员不满意或者不清楚,对此类问题的概念或解释。我认为很少有屏幕截图的博客可以帮助…

UML--类图--软件工程系统学习-- idea查看类图-类关系图

文章目录 什么是类图类图的用途类图的组成 类什么是类类符号类关系依赖(Dependence)idea查看依赖 关联关系(association)继承/泛化idea查看继承 实现(realization)聚合组成组合和聚合之间的差异 类图详解id…

无感平滑迁移:海量高并发数据库如何进行国产化改造?

首先,讲一下数据库国产化的大背景。 一、数据库国产化的背景 国家战略方面的,随着外部形势的日益复杂,核心技术急需实现自主可控、安全可靠、高效开放;另一个要求是业务方面的,当业务高速发展后各种问题会接踵而至&a…

Go | 一分钟掌握Go | 4 - 数组

作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 说明 特意省去了很多基础章节,比如常量、变量、条件语句、判断语…

GPT应用-使用中文操作数据库

GPT应用-使用中文操作数据库 本次尝试使用langchain来操作数据库; 环境配置 下面是数据库相关的表,使用Mysql5.7 数据库,数据库名students 下面是相关表的介绍 学生表,有名字、分数、和老师的备注 学生父母表,其中有学生的名…

053:cesium显示网格切片标识,展示X、Y、Level 坐标

第053个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载瓦片网格切分标识地图。,它在切片方案中的每个渲染图块周围绘制一个框,并在其中绘制一个标签,指示图块的 X、Y、Level 坐标。 这主要用于调试地形和图像渲染问题。 直接复制下面的 vue+cesium源代码,操…