自监督学习
自监督学习不需要人工标注样本的标签信息,直接利用数据本身作为监督信息,学习样本数据的特征表述,应用于下游的任务。自监督学习又可以分为对比学习(contrastive learning)和生成学习(generative learning)两条主要的技术路线。
SimCLR模型是Hinton团队在论文《A simple Framework for Contrastive Learning of Visual Representations》中提出来的,属于基于正负样本的对比学习方法。
图1:A simple Framework for Contrastive Learning of Visual Representations
论文标题:A simple Framework for Contrastive Learning of Visual Representations
论文链接:http://proceedings.mlr.press/v119/chen20j/chen20j.pdf
代码链接:https://github.com/google-research/simclr
图2:ImageNet Top-1线性分类器的精度,这些分类器基于不同的自监督方法(在ImageNet上预训练)学习的表示。灰十字表示监督ResNet-50。SimCLR以粗体显示。
图3:SimCLR框架
SimCLR的基本思想是:
① 将原始图像分为大小为N的批次。
② 将批次中的每一幅图片进行随机变换得到两幅图片,数据增强方式如图4所示。
图4:原始图片数据增强
③ 图像的两个增强版本分别通过编码器(原文中使用ResNet-50)得到对应的特征表示。
④ 通过非线性全连接层将步骤③得到的特征表示投影成对应的临时向量。
⑤ 训练网络,通过批次中临时向量的计算损失,最大化图像的两个增强版本的相似程度。两个增强版本之间的相似度是使用余弦相似度计算的,再通过相似程度进一步计算出损失。
⑥ 学习任务完成后,将图像的特征表示作为图像的一种特征表示,作用于下游的学习任务。
作者发现:
① 数据增强的组合方式对于产生有效的表示方式相当重要,数据增强在无监督学习任务中效果更好。
② 在特征表示和用于计算损失的向量之间引入一个可学习的非线性变换可以大幅度提高模型所输出的特征表示的质量。
③ 由于SimCLR是采用对比学习的方法,所以SimCLR模型在训练时需要更大的batch_size和更多的训练步骤,同时更大的batch_size和epochs也能够让对比学习的效果更好,如图9所示。
图5:在不同的batch_size和epochs下ResNet的训练情况
总结:
在这项工作中,Hinton团队提出了一个简单的对比视觉表征学习框架及其实例,Hinton团队仔细研究了它的组成部分,并展示了不同设计选择的效果。结合Hinton团队的发现,与以往的自监督、半监督和转移学习方法相比,SimCLR原文的方法有了很大的改进,仅在数据增强的选择、网络末端非线性头的使用和损失函数等方面与ImageNet上的标准监督学习有所不同。这个简单框架的优势表明,自我监督学习仍然被低估。
参考文献:
[1] Ting Chen, Simon Kornblith, Mohammad Norouzi, Geoffrey Hinton Proceedings of the 37th International Conference on Machine Learning, PMLR 119:1597-1607, 2020.