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

对比学习

目录

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

http://www.xdnf.cn/news/12560.html

相关文章:

  • 零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
  • 文档极速转换器 - 免费批量Word转PDF工具
  • 快速上手 Metabase:从安装到高级功能实战
  • 探索NoSQL注入的奥秘:如何消除MongoDB查询中的前置与后置条件
  • Android第十五次面试总结(第三方组件和adb命令)
  • react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
  • 【西门子杯工业嵌入式-3-如何使用KEY】
  • Ubuntu20.04基础配置安装——系统安装(一)
  • uniapp 对接腾讯云IM群公告功能
  • Spring Boot + Thymeleaf 防重复提交
  • wpf ListBox 去除item 单击样式
  • Python控制台输出彩色字体指南
  • 如何判断指针是否需要释放?
  • 2024 CKA题库+详尽解析| 15、备份还原Etcd
  • 6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
  • CSS3 的特性
  • 前端开发者常用网站
  • DeepSeek09-open-webui使用
  • 银行卡二三四要素实名接口如何用PHP实现调用?
  • npm安装electron下载太慢,导致报错
  • 华为云Flexus+DeepSeek征文 | 从零到一:用Flexus云服务打造低延迟联网搜索Agent
  • 【杂谈】-DeepSeek-V3:AI开发的成本效益突破与行业启示
  • ARM SMMUv3简介(一)
  • 常用存储器介绍
  • 10.Linux进程信号
  • 第四十六天打卡
  • 简单了解一下Hugging Face(抱抱脸)
  • 信号(瞬时)频率求解与仿真实践(1)
  • Unity版本使用情况统计(更新至2025年5月)
  • 计算机网络基础(一)