1、INTRO
本文作者旨在通过解决拼图问题来进行self-supervised learning,这样可以训练一个网络去识别目标的组成部分。
2、Solving Jigsaw Puzzles
当前一种解决拼图问题的方法是将9个tiles叠在一起,每张图又是三通道,所以就变成27通道。这种方法问题在于网络会更倾向学习图片间的低阶信息的相关性,比如说图片结构或者纹理边框。
但是解决拼图问题并不需要网络理解目标的整体,所以提出了如下网络:
该网络叫context-free network (CFN),因为每个输入的patch都被分开,上下文关系也就被分割开。
要训练该网络首先建立permutation set like S = (3,1,2,9,5,4,8,7,6),即九张tiles随机打乱顺序,并给每个permutation一个index,将permutation对应的tiles输入,网络输出的结果是对应每个index可能性的vector。
Shortcut
但是该网络有一个shortcut,就是网络可能学习到每个tile的绝对位置,而不是其本身的纹理结构内容。
1)为了防止特征映射对应的绝对位置,采用输入同个tile不同的拼图的方法,令permutation尽量被打乱并且average Hamming distance尽可能大,这样一个tile image特征映射的对应每个position都有大致相似的概率。
2)为了避免边界连续和像素亮度分布造成的shortcut,随机地对每个patch之间留下间隔。裁剪255255的图像,将其分割成9个tile每个tile是7575,并从每个tile随机选择64*64的区域作为input。但是这样会出现两个输入的patch之间间隔是0或22的情况。
3)为了避免色差导致的shortcut,随机抖动像素通道±0,±1,±2像素,并同时训练灰度图像。关于这个后文会提到。
3、Experiments
3.1 Transfer Learning
将在CFN网络上训练的结果权重初始化到AlexNet上进行评估该网络预训练对于分类、检测和语义分割任务的效果。结果如下表:
ImageNet Classification
在transfer learning中,从general-purpose的layer到task-special的layer决定了网络从哪里开始提取特征。这里用有label的数据训练网络并且逐层lock layer。
表中看出,当5层全部lock后,只有34.6%预测准确度,而unlock conv5有了45.3%的准确度,说明conv5开始,网络开始task-special的layer。
并且分析语义分类(semantic classification)对解决拼图问题有没有帮助,预训练AlexNet并且transfer其features到拼图问题,结果如下表:
结果表明,这样做可以将准确率提升到88%,object classification和拼图问题是相关联的。
3.2 Ablation Studies
Permutation Set
如果permutation之间过于接近,对于训练会带来难度。比如两个permutation只有两个tiles的位置不一样,并且有两个相似的tiles在一个image里,那么对正确位置的预测几乎不可能。从三个角度探讨这个问题:
1)Cardinality:随着permutation数量的上升,训练会越来越难,并且检测任务的performance也会提高。
2)Average Hamming distance:随着平均hamming distance(两个permutation之间不一样tiles的个数)的增大,CFN网络在解决拼图问题和目标检测会产生更低的错误率。并且这里作者给出了一个算法,去获得大的average hamming distance的permutation。
3)Minimum hamming distance:
从表中可以看出,越不像的两个permutation set拼图问题的准确率就越高。
Preventing Shortcuts
文章提到了有以下三个shortcuts:
1)Low level statistics:相邻的patch包含相似的低阶信息比如像素亮度的均值和标准差。为了避免这个shortcut,采取对每个patch的均值和方差归一化。
2)Edge continuity:解决这个问题就从8585的pixel cells中随机选择6464 tiles。
3)Chromatic Aberration:(1)从原始图像裁剪255*255的image;(2)通过训练70%彩色图像和30%灰度图像数据集组合;(3)随机抖动彩色图像的每个tile的颜色通道±0,±1,±2的像素值。
3.3 CFN filter activations
这里将每一层的单元看作对象部分检测器来分析CFN,从ImageNet验证集中随机抽样作为CFN的输入,并且对输出进行一范式计算,然后根据一范式进行排序。在每一层layer中手工挑选六个重要的channel输出的结果。
这里选取一个conv4的结果展示,从图中可以看出,CFN特征对应于pattern共享相似的形状,并且在对象部分存在良好的对应关系。
3.4 Image Retrieval
使用PASCAL VOC 2007测试集的边界框作为查询(query),使用trainval数据集的边界框作为检索条目(retrieval entries),查找pool5特性的最近邻。(这里我也没搞明白query和retrieval entries分别是什么)
下图展示了一些通过基于查询图像的规范化特征和检索集的规范化特征之间的内积对图像进行排序而获得的图像检索。我们可以看出CFN的特征对形状相似的目标非常敏感,而且这些目标往往属于同一类别。
4.Discussion
本文提出了上下文无关网络(CFN),这是一种CNN,其特征可以很容易地在检测,分类和拼图任务之间进行转换。该网络是以拼图游戏为pretext,在无监督的情况下进行训练的。Key idea就是通过解决拼图问题去识别每个tile作为object的一部分以为每个部分是如何组合成object。网络所学习到的features表现出的性能缩小了与监督学习的差距。