🧠AI 冷知识
你知道吗?
这些有趣的 AI 小知识可能让你大吃一惊
💡
概念MoCo 解决了一个工程难题:对比学习需要大量负样本,但增大 batch size 会撑爆显存。它的方案是维护一个"记忆队列"——把过去几万个样本的特征存起来当负样本,每次只计算当前 batch 的正样本。但旧特征会"过期"(编码器更新后旧特征就不准了),MoCo 用"动量编码器"解决:动量编码器的参数缓慢跟随主编码器更新(动量系数 0.999),保证队列中的特征在一段时间内仍然有效。这个"以慢制快"的设计让 MoCo 在普通 4 卡 GPU 上就能用 65536 个负样本训练。
来源:He et al., "Momentum Contrast for Unsupervised Visual Representation Learning", CVPR 2020
一句话总结
💡
MoCo 用动量编码器和队列解耦负样本数量与 batch size,使小 batch 也能做大规模对比学习。
常见误区
这些坑别踩
✗
误区 1
MoCo 的队列和 SimCLR 的大 batch 等价。
✓
正确理解
MoCo 用队列缓存历史负样本,不依赖单次大 batch,机制不同。
✗
误区 2
动量编码器没意义。
✓
正确理解
动量更新保持键编码器稳定,防止队列中表征快速漂移,是关键设计。
✗
误区 3
MoCo 不需要投影头。
✓
正确理解
MoCo 同样使用投影头,与 SimCLR 类似。