news 2026/2/18 1:30:26

对比学习2:【MoCo】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
对比学习2:【MoCo】

🚩 SimCLR 模型进阶版——MoCo模型笔记它来咯!
何凯明大佬之作。创新之处:1. 一个样本与多个样本一同对比; 2. 采用动量更新,即:指数滑动平均(EMA)


文章目录

  • 1. 一句话概括
  • 2. 创新点
  • 3. 具体方法
  • 4. 模型优缺点
    • 4.1 优点
    • 4.2 缺点
    • 4.3 MoCo vs SimCLR
    • 4.4 MoCo v1 / v2 的差别

1. 一句话概括

MoCo 模型(Momentum Contrast,动量对比学习),它是自监督学习在计算机视觉领域的里程碑之一,由 Kaiming He 团队在 2019 年提出,旨在解决 SimCLR 对大 batch size 的依赖问题,通过引入动量更新的编码器队列,在小 batch 甚至单卡环境下也能进行有效的对比学习。

  • 原论文:《Momentum Contrast for Unsupervised Visual Representation Learning》
  • 仓库地址:https://github.com/facebookresearch/moco

2. 创新点

用一个动态的“队列(Queue)”来存储过去多个 batch 的样本特征作为负样本,从而摆脱对大 batch 的依赖,同时用“动量更新”保持编码器的稳定性。

  1. 负样本不一定要来自当前 b a t c h 负样本不一定要来自当前 batch负样本不一定要来自当前batch
  2. 可以维护一个跨 b a t c h 的特征字典 可以维护一个跨 batch 的特征字典可以维护一个跨batch的特征字典
  3. 动量编码器:用于生成队列中的特征,其参数缓慢跟随主编码器更新,保证特征的一致性。 动量编码器:用于生成队列中的特征,其参数缓慢跟随主编码器更新,保证特征的一致性。动量编码器:用于生成队列中的特征,其参数缓慢跟随主编码器更新,保证特征的一致性。
    (字典里的特征要“一致”,否则旧特征和新特征分布不一致会影响训练)

3. 具体方法

MoCo整体框架:

  • Query Encoder(图左):编码当前样本得到 query 特征 q
  • Key Encoder(Momentum Encoder)(图右):编码增强后的样本得到 key 特征 k
  • Queue(特征队列):保存最近很多个 key 特征,作为负样本集合

MoCo采用的损失,依旧是 InfoNCE :

动量编码器:


如果队列里存的是“旧 batch 的特征”,编码器参数在不断更新,会导致:

  1. 队列里的 key 用“旧编码器”得到
  2. 当前 query 用“新编码器”得到
  3. 特征空间漂移,队列失效

MoCo 的解决方案:Key encoder 不用反向传播更新,而是用 query encoder 的参数做 EMA(指数滑动平均)更新,如上式。

4. 模型优缺点

4.1 优点

  1. 不需要超大 batch
  2. 负样本数量大且稳定
  3. 训练更可扩展(队列长度可控)

4.2 缺点

  1. 结构更复杂(双编码器、队列同步)
  2. 队列可能包含“过旧”样本(分布可能滞后),需要动量缓解
  3. 仍存在假负样本问题(负样本可能同语义)

4.3 MoCo vs SimCLR

相同点:

  • 都是对比学习:正样本为同图两视图;用 InfoNCE

不同点:

  • SimCLR:负样本来自 batch → 需要大 batch
  • MoCo:负样本来自 queue → 小 batch 也能有大量负样本

  • SimCLR:单编码器
  • MoCo:双编码器(query / momentum key)

4.4 MoCo v1 / v2 的差别

MoCo v1

  • 基本框架:动量编码器 + 队列

  • backbone:ResNet

  • 主要贡献:用队列解决大 batch 依赖

MoCo v2(更常用)

  • 在 MoCo v1 基础上引入 SimCLR 的一些“经验增强”,显著提升效果:

    • 更强的数据增强(颜色扰动、模糊等)

    • 使用 2-layer MLP 投影头

    • 调整温度、训练细节

结论:MoCo v2 ≈ MoCo + SimCLR tricks

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/17 21:51:47

c语言之utf8转unicdoe

static int utf8_to_unicode(unsigned char *in, unsigned short *out, int *outsize) {unsigned

作者头像 李华
网站建设 2026/2/15 14:21:20

提高信噪比的操作

信噪比定义 信噪比SNR是衡量信号质量的一个重要指标,是指有用信号功率与噪声功率的比值。信噪比越高,说明信号质量越好,波形在示波器上显示的效果会更加清晰,测量结果更能真实反映被测信号的特性;信噪比越低&#xff0…

作者头像 李华
网站建设 2026/2/16 20:36:33

基于SpringBoot农产品商城系统(毕设源码+文档)

课题说明本课题聚焦农产品产销对接的便捷化与规范化需求,针对当前农产品流通渠道狭窄、品牌曝光不足、供需信息不对称、交易流程不规范等痛点,设计开发基于SpringBoot框架的农产品商城系统。系统以SpringBoot为核心后端框架,结合前端主流开发…

作者头像 李华
网站建设 2026/2/16 20:28:53

基于分布式驱动电动汽车的车辆状态估计探索

基于分布式驱动电动汽车的车辆状态估计,采用的是容积卡尔曼(ckf)观测器,可估计包括纵向速度,质心侧偏角,横摆角速度,侧倾角四个状态。 模型中第一个模块是四轮驱动电机;第二个模块是…

作者头像 李华
网站建设 2026/2/6 6:28:50

AI:我裂开了!现在的大模型评估究竟有多变态?

本文视频:https://bilibili.com/video/BV1HnB7BjEAN/ 年底的 AI 圈子很热闹,可以说是神仙打架:Gemini 3.0、Claude Opus 4.5、GPT 5.2 … 这三大全球最顶级的模型,几乎在同一时间甩出了自己的“王炸”。 今天这家说自己代码能力…

作者头像 李华