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更新缓慢,所以较为相似,从而做到静中有动)

相关推荐
Cathyqiii9 分钟前
传统扩散模型 VS Diffusion-TS
人工智能·算法
海边夕阳200613 分钟前
【每天一个AI小知识】:什么是逻辑回归?
人工智能·算法·逻辑回归
Gorgous—l18 分钟前
数据结构算法学习:LeetCode热题100-图论篇(岛屿数量、腐烂的橘子、课程表、实现 Trie (前缀树))
数据结构·学习·算法
im_AMBER26 分钟前
算法笔记 13 BFS | 图
笔记·学习·算法·广度优先
非著名架构师35 分钟前
团雾、结冰、大风——高速公路的“隐形杀手”:智慧气象预警如何为您的路网安全保驾护航
人工智能·新能源风光提高精度·疾风气象大模型4.0·疾风气象大模型·风光功率预测
IT_陈寒44 分钟前
Redis深度优化:10个让你的QPS提升50%的关键配置解析
前端·人工智能·后端
2501_941142931 小时前
5G与边缘计算结合在智能物流系统中的高效调度与实时监控应用研究
人工智能
2501_941144421 小时前
边缘计算与人工智能在智能制造生产线优化与故障预测中的应用研究
人工智能·边缘计算·制造
烤麻辣烫1 小时前
黑马程序员苍穹外卖(新手) DAY3
java·开发语言·spring boot·学习·intellij-idea
驯狼小羊羔1 小时前
学习随笔-hooks和mixins
前端·javascript·vue.js·学习·hooks·mixins