解读自监督学习(Self-Supervised Learning)几篇相关paper

作者:bingo

本文转载自知乎,作者bingo已授权,未经许可请勿二次转载。

Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题。所以近期大家的研究关注点逐渐转向了Unsupervised learning,许多顶会包括ICML, NeurIPS, CVPR, ICCV相继出现一些不错的paper和研究工作。

这里主要关注Unsupervised learning一类特定的方法:Self-supervised learning(自监督学习)。自监督学习的思想非常简单,就是输入的是一堆无监督的数据,但是通过数据本身的结构或者特性,人为构造标签(pretext)出来。有了标签之后,就可以类似监督学习一样进行训练。比较知名的工作有两个,一个是:Unsupervised Visual Representation Learning by Context Prediction (ICCV15),如图一,人为构造图片Patch相对位置预测任务,这篇论文可以看作是self-supervised这一系列方法的最早期paper之一;另一个是:Unsupervised Representation Learning by Predicting Image Rotations (ICLR18),如图二,人为构造图片旋转角度预测任务,这篇论文因为想法极其简单在投稿到ICLR之后受到了极大关注,最终因为实验结果非常全面有效最终被录用。

图一. Patch相对位置预测

图二. 图片旋转角度预测

这里重点介绍最近的几篇self-supervised learning相关的paper。第一篇是RETHINKING DATA AUGMENTATION: SELF-SUPERVISION AND SELF-DISTILLATION。这篇论文的思想非常直观,如图三。首先,Data Augmentation相关的方法会对通过对原始图片进行一些变换(颜色、旋转、裁切等)来扩充原始训练集合,提高模型泛化能力;Multi-task learning将正常分类任务和self-supervised learning的任务(比如旋转预测)放到一起进行学习。作者指出通过data augmentation或者multi-task learning等方法的学习强制特征具有一定的不变性,会使得学习更加困难,有可能带来性能降低。因此,作者提出将分类任务的类别和self-supervised learning的类别组合成更多类别(例如 (Cat, 0),(Cat,90)等),用一个损失函数进行学习。

比较有意思的一点是,作者通过简单变换证明:如果  ,论文方法就退化成Data Augmentation;如果  ,论文方法就退化成Multi-task Learning的方法,这里  是对应的分类器权重。所以,作者提出的方法本身就包含了Data Augmentation和Mult-task Learning方法,同时具有更大的使用范围。

在实际物体分类过程中,可以将不同旋转角度的分类结果进行加和,即: p(Cat) = p(Cat,0)+p(Cat,90) +p(Cat,180)+p(Cat,270),但是这样测试时间会变成原来的4倍。所以,作者提出了第二个模块,self-distillation(自蒸馏),distillation思想最早是hinton在nips14年提出来的。如下图,self-distillation思路是在学习的过程中限制不同旋转角度的平均特征表示和原始图片的特征表示尽可能接近,这里使用KL散度作为相似性度量。

最终,整个方法的优化目标如下: 

第一项和第二项分别对应图(a)和图(b),第三项是正常的分类交叉熵损失,作为一个辅助loss。

之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测、旋转预测、灰度图片上色、视频帧排序等等。CVPR19和ICCV19上,Google Brain的几个研究员发表了两篇论文,从另外的视角分析和研究self-supervised learning问题。两篇paper名字分别是:Revisiting Self-Supervised Visual Representation Learning (CVPR19)和S^4L: Self-Supervised Semi-Supervised Learning (ICCV19) 。

Revisiting这篇paper研究了多种网络结构以及多种self-supervised的任务的组合,得到了一些启发性的经验结论:

1.与supervised learning不同的是,self-supervised learning在不同task上的结果依赖于网络结构的选择,比如对于rotation预测,RevNet50性能最好,但是对于Patch预测,ResNet50v1性能最好。

2.以前的self-supervised方法通常表明,alexnet的最后几层特征性能会下降。但是这篇paper结论是对于skip-connection(resnet)结构的网络,高层的特征性能并不会下降。

3.增加filter数目和特征大小,对于性能提升帮助很大。

4.衡量无监督性能最后训练的线性分类器非常依赖学习率的调整策略。

不同网络结构,在不同self-supervised任务上面表现各不相同

S^4L这一篇paper,非常像上面图(a)中multitask learning的策略,即有标签数据上面加一个正常的分类损失,无标签数据上加一个self-supervised的损失,具体公式如下:

.

作者提出了两个算法,一个是 S^4L-Rotation,即无监督损失是旋转预测任务;另一个是S^4L-Exemplar,即无监督损失是基于图像变换(裁切、镜像、颜色变换等)的triplet损失。

S^4L算法结构图

所有的实验在10%或者1%标签的Imagenet上进行,同时作者自己从训练集划分出一小部分作为验证集进行参数调节。实验过程中,作者观察到weight decay的调节和学习率策略对最终性能有很重要的影响。

比较有意思的是,Revisiting和S^4L的作者是同一拨人,只是作者顺序不同,并且所有作者都是equal contribution。

     不断更新资源

     获取更多精彩

长按二维码扫码关注

自我监督学习是一种机器学习方法,通过对数据进行合理的预测任务,从中获得有用的表示。与传统的监督学习不同,自我监督学习不需要人工标注的标签来指导训练,而是利用数据自身的信息进行训练。 自我监督学习的基本思想是从未标记的数据中构造有意义的标签,然后将这些标签用作训练数据,以学习有用的特征表示。通过对输入数据进行某种形式的变换或遮挡,可以生成一对相关的样本。其中一个样本称为正样本,另一个则被视为负样本。例如,在图像领域中,可以通过将图像进行旋转、裁剪或遮挡等变换来生成正负样本对。模型的目标是通过学习从一个样本到另一个样本的映射,从而使得正样本对之间的相似度更高,负样本对之间的相似度更低。 自我监督学习在许多任务中都取得了很好的效果。例如,在自然语言处理任务中,可以通过遮挡句子中的某些单词或短语来生成正负样本对,然后通过学习从一个句子到另一个句子的映射来进行训练。在计算机视觉任务中,可以通过图像的旋转、裁剪、遮挡或色彩变换等方式来生成正负样本对。 自我监督学习的优点是不需要人工标注的标签,可以利用大量的未标记数据来进行训练,从而扩大训练数据的规模。此外,自我监督学习还可以通过学习到的特征表示来提高其他任务的性能,如分类、目标检测和语义分割等。 总之,自我监督学习是一种有效的无监督学习方法,通过构造有意义的预测任务,从未标记的数据中学习有用的特征表示。它在各种任务中都有广泛的应用,并具有很高的潜力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值