当前位置: 首页 > news >正文

对比学习

目录

1.SimCLR

1.1 SimCLR框架主要组成

1.2 主要特性/观点

2.MOCO

2.1 MoCo v1

2.2 MoCo v2

参考文献


1.SimCLR

1.1 SimCLR框架主要组成

图1 SimCLR模型框架

从上图可以看出,SimCLR由以下几部分组成:

  • 随机数据扩增模块,通过该模块生成positive pair:
  • Base encoder f,文中采用resnet50(在average pooling layer之后作为输出);
  • projection head g       
  • contrastive loss function (NT-Xent loss,the normalized temperature-scaled cross entropy loss)) 

算法完整流程如下:

1.2 主要特性/观点

  • 使用多个数据扩增的组合,对于对比学习非常重要。数据扩增幅度更强,对于对比学习的收益,比有监督学习更多;
  • 获得表征后,在计算对比损失前,引入了一个非线性的projection head,来提升表征的质量;

  • 对比学习损失中,使用了归一化以及可调温度参数
  • 较大的batch size,更深或者更宽的模型,对于提升对比学习效果更有用。

2.MOCO

2.1 MoCo v1

                      a)详细结构                                                                                        b)简图

MoCo v1算法的框图如上图所示。可以看出与SimCLR的差异是,

  • 参与计算对比学习的损失的图像,SimCLR利用了同一batch中的图像,而MoCo v1则维护了一个Memory Queque,相对来说减小了对大batch size的需求;
  • MoCo v1中key encoder的更新,是基于query encoder的权重进行了momentum的操作,           ;而SimCLR中encoder为同一个;
  • 使用损失函数不同:

          MoCo v1 InfoNCE: 

          SimCLR NT-Xent loss:     

MoCo v1算法伪代码如下:

            

2.2 MoCo v2

                                    

MoCo v2框架中引入了 SimCLR中用到的两个方法:

  • MLP projection head;
  • 更多的data augmentation。

参考文献

[1] The Beginner’s Guide to Contrastive Learning

[2] https://github.com/facebookresearch/moco

[3] A Tale of Color Variants:Representation and Self-Supervised Learning in Fashion E-Commerce

[4] MoCo v1: Momentum Contrast for Unsupervised Visual Representation Learning

[5] MoCo v2: Improved Baselines with Momentum Contrastive Learning

[6] MoCo v3: An Empirical Study of Training Self-Supervised Vision Transformers

[7] http://github.com/zhirongw/lemniscate.pytorch

[8] https://github.com/leftthomas/SimCLR

[9] https://github.com/Seonghoon-Yu/MoCov2_Pytorch_tutorial/blob/main/MoCov2.ipynb

[10] https://github.com/p-giakoumoglou/pyssl?tab=readme-ov-file

相关文章:

  • 添加禁用状态
  • 黑马点评【基于redis实现共享session登录】
  • 6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
  • 前端开发者常用网站
  • Cursor Rules 使用
  • AI Agent 架构设计:ReAct 与 Self-Ask 模式对比与分析
  • vue · 插槽 | $slots:访问所有命名插槽内容 | 插槽的使用:子组件和父组件如何书写?
  • JavaWeb基础入门 — SpringBoot Web 案例详解
  • Vue Fragment vs React Fragment
  • Redis主从复制原理二 之 主从复制工作流程
  • Redis专题-基础篇
  • 安卓基础(编译.Class)
  • 【题解】[UTPC2024] C.Card Deck
  • altium designer2024绘制stm32过程笔记x`
  • 多区域协同的异地多活AI推理服务架构
  • qt使用笔记二:main.cpp详解
  • Linux系统 - 线程 -6- 线程安全函数和可重入函数
  • LangChain4j 学习教程项目
  • TensorFlow深度学习实战(20)——自组织映射详解
  • 跨平台资源下载工具:res-downloader 的使用体验
  • 大连无网站的企业有哪些/站长之家域名查询排行
  • 微信社群营销怎么做/seo流量是什么意思
  • 昆明网站做/sem账户托管外包
  • 谈谈设计和建设网站体会/东营优化路网
  • 怎样自己免费搭建网站/新东方教育培训机构
  • 网站开发检测用户微信号/推广app有哪些