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

news/2024/4/24 4:00:18/文章来源:https://blog.csdn.net/Rick_rui/article/details/130350141

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.luyixian.cn/news_show_103178.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光波导相控阵技术

在简述电光效应和热光效应的基础上综述了国内外光波导相控阵技术研究进展,包括一维和二维光波导相控阵的技术途径、结构特点和性能指标,给出了光波导相控阵的优势以及在激光雷达、成像等领域的应用前景。结果表明,光波导相控阵技术正向着大扫…

JavaScript Debugger 调试断点模式

在代码中加入debugger,相当于断点停顿,可用于查看变量传递情况,比如:Vue组件中生命周期onLoad(options) ,在上一页面进入下一页面后,传递进来的参数值。 备注 :options 参数为字符串&#xff0…

从需求分析到上线发布,一步步带你开发收废品小程序

在如今的环保和可持续性的大趋势下,废品回收已经成为了人们日常生活中不可或缺的一部分。收废品小程序的开发可以帮助人们更方便地找到回收废品的地点,并有效减少废品对环境造成的污染。因此,我们的收废品小程序需要满足以下需求:…

2023年电信推出新套餐:月租19元=135G流量+长期套餐+无合约期!

在三大运营商推出的流量卡当中,电信可以说是性价比最高的一个,相对于其他两家运营商,完全符合我们低月租,大流量的要求,所以,今天小编介绍的还是电信流量卡。 在这里说一下,小编推荐的卡都是免…

中国制造再击败一家海外企业,彻底取得垄断地位

中国制造已在13个行业取得领先优势,凸显出中国制造的快速崛起,日前中国制造又在一个行业彻底击败海外同行,再次证明了中国制造的实力。 一、海外企业承认失败 提前LGD宣布它位于广州的8.5代液晶面板生产线停产,预计该项目将出售给…

Linux命令rsync增量同步目录下的文件

业务场景描述 最近遇到一个问题,需要编写相应的Linux命令,增量同步/var/mysql里的所有文件到另外一个目录/opt/mysql,但是里面相关的日志文件xx.log是不同步的,这个场景,可以使用rsync来实现 什么是rsync命令&#x…

6、什么是类型断言?

虽然 TypeScript 很强大,但有时还不如我们了解一个值的类型方便,这时候我们更希望 TypeScript 不要帮我们进行类型检查,而是交给我们自己来,所以就用到了类型断言。类型断言有点像是一种类型转换,它把某个值强行指定为…

当,Kotlin Flow与Channel相逢

前言 之前的文章已经分析了Flow的相关原理与简单使用,Flow之所以用起来香,Flow便捷的操作符功不可没,而想要熟练使用更复杂的操作符,那么需要厘清Flow和Channel的关系。 本篇文章构成: 1. Flow与Channel 对比 1.1 Fl…

论文实验1、安装tensorflow运行节点嵌入相关方法

还是官方的教程好使 使用 pip 安装 TensorFlow 只有三步 1.安装python,版本太高不行,在推荐版本里选最高的。 2.安装python虚拟环境venv python -m venv --system-site-packages .\venv .\venv\Scripts\activate 3.在虚拟环境里装tensorflow pip…

开发人员应考虑使用 Edge浏览器的 8 个理由

1.无限访问ChatGPT 这是正确的。您可以通过 Bing 访问 GPT-4。但与 2021 年后没有数据的 ChatGPT 不同,必应通过从自己的搜索引擎中提取最新数据来对其进行补偿。 首先,点击Edge 浏览器左上角的Bing 小图标 Bing 具有三个选项卡:Chat、Compo…

VSCode连接远程服务器调试代码详细流程

文章目录 1.远程连接服务器2. 打开项目文件目录3. 配置调试环境 在研究人工智能项目时,很多时候本地机器性能不够,只能把代码拉倒服务器上,然后利用服务器资源来运行代码。遇到问题时需要调试,本文详细介绍利用VScode来调试远程服…

DAB-Deformable-DETR代码学习记录之模型构建

DAB-DETR的作者在Deformable-DETR基础上,将DAB-DETR的思想融入到了Deformable-DETR中,取得了不错的成绩。今天博主通过源码来学习下DAB-Deformable-DETR模型。 首先我么看下Deformable的创新之处: Deformable-DETR创新 多尺度融合 首先便是…

layui 表格中嵌入下拉框被遮挡

1、代码 单元格样式: * 设置下拉框的高度与表格单元相同 */.layui-table-cell {width: 100%;height: 100%;border: 1px;border-color: #F2F2F2;} 表格初始化后的回调: done: function (res, curr, count) {$(".layui-table-body, .layui-tabl…

MC9S12G128开发板—实现按键发送CAN报文指示小车移动功能

实验环境:MC9S12G128开发板 基本功能:控制开发板上的按键,模拟车辆移动的上下左右四个方位,通过can通信告诉上位机界面,车辆轨迹的移动方位。 1. 1939报文发送的示例代码 MC9S12G128开发板1939协议发送can报文数据的…

php+vue 校友交流平台

1.普通用户功能分析 (1)用户注册:用于注册校友录用户。 (2)用户登录:供校友录用户登录。 (3)资料修改:修改当前登录使用者信息。 (4)…

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

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

【社区图书馆】Fundamentals Of Computer Graphics——The beginning of computer graphics

目录 English 中文 English "Fundamentals Of Computer Graphics" is a classic textbook on computer graphics, also known as the "Tiger Book". It is considered one of the best introductory texts in the field of computer graphics. The book …

022 - C++ 析构函数

上期我们讨论了构造函数。认识了它是什么以及如何使用它。如果你没有看上一期,那么你一定要回去看一下。 今天我们要讨论一下它的“孪生兄弟”,析构函数,它们在某些方面非常相似。 构造函数是你创建一个新的实例对象时运行,而析…

【iOS】AVPlayer 视频播放

视频播放器的类别 iOS开发中不可避免地会遇到音视频播放方面的需求。 常用的音频播放器有 AVAudioPlayer、AVPlayer 等。不同的是,AVAudioPlayer 只支持本地音频的播放,而 AVPlayer 既支持本地音频播放,也支持网络音频播放。 常用的视频播放…

深入理解Javascript事件处理机制

深入理解javascript事件处理机制 前言 在开发web应用程序时,事件处理机制是javascript中至关重要的一部分。许多高级特性,如事件冒泡、事件捕获和事件委托,都是通过事件处理来实现的。熟练掌握这些技术可以帮助我们更好地组织代码、提高代码…