自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles

Introduction

本文使用拼图游戏作为自监督学习的pretext task,取图像中的某一部分,分成九份,之后按照一定的策略打乱,之后依次输入到接收九个输入的孪生网络中,预测不同排布的类别,达到特征学习的目的。本文首先发表在ECCV2016上,论文地址

Method

作者提出了叫做Context-free network(CFN)的网络结构,他是一种类似孪生网络的结构,如下图所示:
自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles
网络在fc6及其之前的部分是九个输入共享的,也就是说在一次的前向计算中,要计算九次,之后将其concat到一起,由于fc6输出的图像的通道数为512,所以concat到一起之后,通道数就是512x9=4608。之后经过全连接层可以预测出输入网路patch的排布,排布的选择策略下面介绍。

排列选择

作者在这里本质上行还是把拼图问题转化为分类问题了。按照九个patches的排列顺序不同,实际上可以产生9!=3628809!=362880种排列,也就是说最多可以有这么多类别,所以使用所有的类别是不现实的,而且,虽然实际上可以产生这么多种类别,但是大多数的类别之间是很相似的,有可能只有两个位置的差别。而预测拼图问题很可能面对的一个问题就是,网络没有学习到图像的语义特征,而是只学到了每个patches的相对位置,这个后面会详细介绍。基于以上的原因,作者在确定排列的时候,会计算不同排列之间的汉明距离,选择有足够大汉明距离的排列,这样就可以保证不同排列具有足够的差别,确保网络不会记住他们的相对位置。选择的策略如下:
自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles

prevent shortcuts

在网络的学习过程中,我们的本意是让其学习到图像的语义特征,但是网络很有可能不会如我们所愿,而是直接学习到一些无关的特征,比如说patches的绝对位置、纹理特征或者边缘信息等,这对自监督学习的性能提升不仅没有好处,反而有可能降低自监督学习的性能。作者在文中把这种现象叫做“shortcuts”,意思是网络走了捷径。
针对以上问题,作者提出了三种策略

  1. 不同的patch是取自同一张图片的,具有相同的均值和方差,作者将不同的patch单独计算均值和方差进行归一化,从而尽量让其差距变大,增加网络区分的难度
  2. 不同的patch之间很有可能存在边界上的连续性,造成shortcut,作者在取样的时候增加了一个21像素的gap,去除了这种连续性。
  3. 不同的patch在颜色上是相似的,因此作者在这里对于颜色做了不同的变换来避免shortcut。具体的措施有:随机裁剪图像;随机将彩色图像转化为灰度图;随机变化图像的颜色

Experiments

Results on Pascal VOC07

作者首先在VOC07数据集上进行实验,将该模型作为其分类检测和分割的预训练模型,结果如下所示:
自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles
可以看出,我们的方法相比于其他的自监督学习方法在不同的任务上均取得了最好的效果。实际上提升还是蛮大的,尤其是对于检测任务,已经接近ImageNet预训练的结果了。

Results ImageNet Classification

这部分作者在ImageNet分类问题上,验证该模型提取特征的效果,利用不同的特征训练线性分类器,得到的效果如下:
自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles

Ablation Studies

作者在这部分以VOC07的检测任务为基准进行消融实验,一个是实验排列数(也就是分类数)对结果的影响;另一个是实验是验证不同的“prevent shortcuts”方法对结果的影响。
首先是排列数对结果的影响:
自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles
排列数的减少使得拼图游戏的预测变得更加简单,因此拼图任务的精度会变高,但是用于自监督的效果却变差了,保持一定的任务难度是很有帮助的。另外,还可以看到,一定的汉明距离对结果是很重要的。
另一个是关于不同"prevent shortcuts"对结果的影响
自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles

Conclusions

拼图任务是一种在自监督学习中广泛使用的pretext task,作者在这篇文章中提出了一种利用拼图游戏训练自监督模型的方法,实验表明,该方法可以在分类检测和分割任务上均取得不错的效果。