MoCo v2 文献研究 [自监督学习]


✅ 个人简介:

南京邮电大学,计算机科学与技术,在读本科

前驱文章一《MoCo v1 文献研究 [自监督学习]》

前驱文章二《SimCLR v1 文献研究 [自监督学习]》



在这里插入图片描述

原论文地址:https://arxiv.org/pdf/2003.04297.pdf
Code: https://github.com/facebookresearch/moco

Ⅰ. Abstract

理论贡献:MoCo v2 融合了 MoCo v1 和 SimCLR v1 算法,是二者的集大成者,并且全面超越 SimCLR。它吸收了 SimCLR 的两个重要改进:
  ① 使用一个 MLP 投影头[using an MLP projection head]
  ② 更多的数据增强[more data augmentation]

补充说明:无需像 SimCLR 那样使用超大的『批量大小(batch size)』,普通 8 张 gpu 即可训练。

实验结果:MoCo v2 用的『迭代(epochs)』和『批量大小(batch size)』都比 SimCLR 小,但准确度比它高。

在这里插入图片描述



Ⅱ. Introduction

● Introduction(前言) 是 Abstract(摘要) 的一个扩展。此处略。



Ⅲ. Background

● 这里论文中简单重述了一遍 MoCo v1。



Ⅳ. Experiments

4.1 参数设置[Settings]

数据集 1.28 M 1.28M 1.28M ImageNet

遵循的两种常见的评估协议
  ① ImageNet 线性分类:冻结特征,训练监督线性分类器。并记录单次裁剪(224×224)后,Top-1 的准确度。
  ②『迁移(Transferring)』到 VOC 对象检测:使用 COCO『度量套件(suite of metrics)』对 VOC 07 测试集进行评估。

● 他们使用与 MoCo 相同的超参数(除非特别注明)和代码库。所有结果都使用标准尺寸的 ResNet-50。


4.2 “MLP投影头”[MLP head]

● 他们将 MoCo 中的 f c fc fc 头替换为 2 M L P MLP MLP 头(隐藏层为2048-d,使用 ReLU)。注意,这只影响无监督训练阶段。线性分类或『迁移(Transferring)』阶段不使用这个 M L P MLP MLP 头。

● 他们先寻找一个关于下边的 I n f o N C E InfoNCE InfoNCE『对比损失函数(contrastive loss function)』最佳的 “温度参数 τ τ τ”: L q , k + , { k − } = − l o g e x p ( q ⋅ k + / τ ) e x p ( q ⋅ k + / τ ) + ∑ k − e x p ( q ⋅ k − / τ ) \mathcal{L}_{q,k^+,\{k^-\}}=-log\dfrac{exp(q·k^+/τ)}{exp(q·k^+/τ)+\sum_{k^-}exp(q·k^-/τ)} Lq,k+,{k}=logexp(qk+/τ)+kexp(qk/τ)exp(qk+/τ)

结果如下
在这里插入图片描述

● 然后他们使用最佳的 τ τ τ,即设它的默认值为 0.2 来做后续实验:

在这里插入图片描述
对上表的说明
  ① 灰色的那一行是自监督的准确度(Top-1)。
  ② 第二行是 “原封不动的 MoCo v1”。
  ③ 接下来的 “(a)、(b)、©、(d)、(e)” 是不同的对比实验。
  ④ 左边的 “unwup. pre-train” 针对的是 “ImageNet 线性分类”。
  ⑤ 右边的 “VOC detection” 针对的是 “VOC 对象检测”。
  ⑥ “MLP”:包含一个多层感知机[with an MLP head]。
  ⑦ “aug+”:包含额外的高斯模糊的图像增强[with extra blur augmentation]。
  ⑧ “cos”:采用余弦学习率[cosine learning rate schedule]。

● 可以发现,“ImageNet 线性分类” 比 “VOC 对象检测” 收益更大。


4.3 图像增强[Augmentation]

● 他们拓展了原来的『数据增强(data augmentation)』手段,新加了『模糊增强(blur augmentation)』。而且他们还发现在 SimCLR 中采用的『颜色失真(color distortion)』在他们这个模型中的收益性能会递减。

● 详细结果可参看 “4.2” 那种图。最后要说明的是:“线性分类的准确度”与“迁移到目标检测的性能”并不是单调相关的。因为前者收益较大,后者收益不是很大。


4.4 和SimCLR进行比较[Comparison with SimCLR]

● 显而易见,MoCo v2 完胜 SimCLR。

在这里插入图片描述


4.5 计算成本[Computational cost]

● MoCo v2 是用 8 个 “V100 16G GPU” ,并在 Pytorch 上实现的。它和 “端到端(end-to-end)” 所需的 “空间/时间成本” 的对比图如下:

在这里插入图片描述



Ⅴ. Discussion

● 论文中没有讨论。这里写一个个人看法吧。何凯明团队厉害啊,每次读他们的 MoCo 系列的文献,我感觉自己好像在 “管中窥豹”,逻辑清晰、方法新颖、算法简明、结果醒目、总结到位。诶,虽不能至,然心向往之啊。



Ⅵ. 小结

● MoCo v2 是在 SimCLR 发表以后相继出来的,它是一篇很短的文章, 只有 2 页。在 MoCo v2 中,作者们整合 SimCLR 中的两个主要提升方法到 MoCo 中,并且验证了SimCLR 算法的有效性。SimCLR 的两个提点的方法就是
  ① 使用强大的『数据增强(data augmentation)』策略,具体就是额外使用了『高斯模糊(Gaussian Deblur)』的图像增强策略和使用巨大的『批量大小(batch size)』,让自监督学习模型在训练时的每一步见到足够多的『负样本(negative samples)』,这样有助于自监督学习模型学到更好的『视觉表征(Visual Representation)』。
  ② 使用预测头“投影头 g ( ⋅ ) g(·) g()”。在 SimCLR 中,『编码器(Encoder) 』得到的 2 个『视觉表征(Visual Representation)』再通过 “投影头 g ( ⋅ ) g(·) g()” 进一步提特征,预测头是一个 2 层的 MLP,将『视觉表征(Visual Representation)』这个 2048 维的向量进一步映射到 128 维『隐藏空间(latent space)』中,得到新的『表征(Representation)』。还是利用原来的去求『对比损失(contrastive loss)』完成训练,训练完毕后扔掉“投影头 g ( ⋅ ) g(·) g()”,保留『编码器(Encoder) 』用于获取『视觉表征(Visual Representation)』。



▶本文参考附录

MoCo v2原论文地址:https://arxiv.org/pdf/2003.04297.pdf.

[1] 《Self-Supervised Learning 超详细解读 (五):MoCo系列解读 (2)》.

[2] 《7.无监督学习: MoCo V2》.


⭐️ ⭐️

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一支王同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值