MoCo 对比自监督学习

MoCo通过自监督学习来训练一个效果不错的编码器。

主要实现:

  1. 输入一张图片,图片增强后和原来图片是一个正样本对,其他的图片是负样本对。
  2. 原始图片丢入encoder,其他的图片一起丢入momentum encoder,然后计算InfoNCE,其实就是一个(K+1)的交叉熵,我们需要的是让正样本对之间的概率最大。

问题:

  1. 为什么需要momentum encoder,不能直接使用一样的encoder,或者单独训练两个encoder。

    如果各自训练encoder的话,训练会很不稳定,在对比学习中,模型需要区分正样本和大量的负样本。为了有效地进行这种区分,负样本的表示需要相对稳定。如果使用同一个编码器来同时生成查询和键的表示,编码器参数会随着每次迭代不断变化,这会导致负样本的表示不稳定,从而影响对比学习的效果。

    也有办法解决,就是把batch_size设置得特别大,那么每一轮都能近似得到全局样本的特征,每一轮的对比结果都很好。(SimCLR)。

  2. 那为什么不直接把key的字典固定,只有query的encoder

    使用固定字典而不采用键编码器会导致负样本多样性受限、表示过时、学习信号减弱、过拟合风险增加、扩展性和适应性差。

  3. 通过使用一个队列,然后设置动量更新,使得key的encoder更新缓慢,而且队列又是先进先出,保证队列内的特征表示较为接近,从而实现了节约计算资源,又能保持大量负样本,而且是动态的负样本表示。(队列内不同batch的负样本presentation是不同encoder生成的,但是由于momentum encoder更新缓慢,所以较为相似,从而做到静中有动)

相关推荐
2601_956743688 分钟前
2026年上海GEO优化公司交付力测评:从AI信息链路看可核验、可量化、可归属的能力分野
人工智能·ai·上海·行业观察
weixin_6665939910 分钟前
从一句话建表看时空智能体的元数据治理架构——Harness、MCP、Skill如何协同
人工智能·agent·结构化数据·建库
圆圆讲门店18 分钟前
挑选同城获客服务机构时需要考量的核心因素都有哪些?
大数据·网络·人工智能·python
揽秀亭长19 分钟前
论文降AI率有哪些方法?论文修改流程详解
人工智能·深度学习
爱上纯净的蓝天22 分钟前
只输出选项和概率的模型:判别层的接口契约与阈值工程
人工智能·大模型·llm·模型评估·架构设计
@呱呱爱学习25 分钟前
2026年09月28日 | 呱呱AI日报】GitHub 发布 Copilot WSL 教程,介绍在 Ubuntu 中运行编程 Agent
人工智能·github·copilot
lie..32 分钟前
30天从零开始学AI应用开发(Day 12):像产品一样稳:流式输出、报错重试、花钱控制
开发语言·人工智能·php
傻啦嘿哟36 分钟前
Python的默认参数把我坑惨了,原来写[]和写None的区别这么大
开发语言·python·机器学习
Century_Dragon44 分钟前
从挂图到VR:汽修专业的一堂新能源原理课可以怎么上~
学习
镜象科技1 小时前
AI临床心理大模型:离临床最近的AI长什么样?
人工智能