Self Supervised Learning部分相关论文简介(上)
- 摘要:
- 自监督论文阅读
- #1 "Context Encoders: Feature Learning by Inpainting" [CVPR 2016]
- #2 Multi-task Self-Supervised Visual Learning [2017]
- #3 Unsupervised Visual Representation Learning by Context Prediction []
- #4 Colorful image Colorization
- # 5 Colorization as a Proxy Task for Visual Understanding
- # 6 DeepPermNet: Visual Permutation Learning
- # 7 Transitive Invariance for Self-supervised Visual Representation Learning
- # 8 Improvements to context based self-supervised learning
- # 9 Unsupervised Feature Learning via Non-Parametric Instance Discrimination
- # 10 Using Self-Supervised Learning Can Improve Model Robustness and Uncertainty
- # 11 Self-Supervised Representation Learning by Rotation Feature Decoupling
摘要:
这篇博文将记录我在接下来一周阅读自己收集的多篇自监督论文,它们大部分来自计算机视觉和机器学习相关的顶会,发表时间从2016年到2020年。在此仅记录文章大致内容和方法,部分论文会加入一些简单评论,以方便后续查阅文献。
自监督论文阅读
#1 “Context Encoders: Feature Learning by Inpainting” [CVPR 2016]
这篇论文基于上下文编码进行图像缺失部分恢复(预测)的方式,实现特征学习。类似于自编码器,本文提出了一种上下文编码器(context encoders)旨在根据周围的环境生成mask的区域。所以,想要实现这个功能,这个编码器必须能够编码图像的全局内容和为缺失的块中每个像素生成一个预测值。作者探究了用什么损失比较好:第一使用逐像素的重建损失,第二是使用重建损失加上对抗损失。后者的结果更好,(我的直观理解是对抗损失的加入能够学习到缺失部分的全局信息)。作者指出,上下文编码器不仅可以学出外观还能学习到语义结构信息。自监督学习可用于分类、检测和分割等任务的预训练。独立使用也可以用于图像修复。
通过填充这个mask,来实现无监督编码图像,希望学习到上下文信息。显然三个关键部分:1)什么样的结构有助于学习到上下文信息;2)如何设计有效的能收敛的损失函数;3)mask应该选择在图像的什么位置;
1.网络整体结构
结构不同于AlexNet的地方就是在encoder和decoder之间加了一个channel-wise的全连接层。作者希望这个全连接能够建模所有feature map的相关性。为什么是channe-wise呢,目的就是为了减少参数量,channel间共享参数能够减少一半参数量也就是:mn^4,m是channel数目,n 是feature map大小(nn)。
2 损失项:
1)重构损失:
M冒是mask时为1。F(x)是预测值。
2)对抗损失:
3)mask选取:
实验表明 random region 这种比较好。作者后续所有实验都是用的 random region 。
#2 Multi-task Self-Supervised Visual Learning [2017]
这篇paper的主要是分析了四种自监督方法的有效性,并且探讨什么样的组合会更加有效。由于不同方法之间存在较大差异,比如彩色化的自监督任务和exemplar learning任务输入维度是不同的。彩色化输入是一维的灰度图像(L,其中L是Lab颜色空间中的强度通道),L重复三次。第二就是语义类和实例分配的差异性。针对二个问题修改了网络结构(详细见论文)。
本文为什么要做这个工作:1)以往的自监督都是在不同的网络模型上训练的,横向比较难以得知那种任务会更有效。2)之前的工作后续任务是不同的,也不易比较自监督的性能。
本文探讨的四个自监督任务各自的性能和提出的多任务合并的性能。
四个自监督任务分别是:1 Relative Position, 在一个图像中随机选取两个块来预测它们的相对位置。2 Colorization 这个是输入网络L强度图像,用原始的Lab 监督,以学到从灰度到彩色的特征描述从而进行特征表示。3.Exemplar 是每个图像为一个伪标签,利用数据增广的方式产生很多图像,产生的图像相同的语义标签。利用这个伪标签来训练网络。这样会有个问题是大尺度的数据集是很难训练的,因为参数量爆炸,因为最后的全连接层输出维度太高。4. Motion Segmentation 运动分割,这个是视频中应用的自监督方法,通过当前帧预测下一帧运动目标的位置。
简单的结论是:在自我监督的方法中,相对位置法和色彩化法表现最好。
Na¨ıve 多任务合并的自监督:四种任务是具有互补性的,四种一起性能最好。具体方法并不复杂。
#3 Unsupervised Visual Representation Learning by Context Prediction []
这篇文章是利用空间上下文关系来丰富图像的自表示。为什么对图像的一些块分配相对位置就能表示图像:想要把猫耳朵安排在猫头上必须要要知道猫整体是什么样子的,也就是需要网络学习到猫的语义信息。基于这个想法该自监督策略应该对目标级别的分类效果比较好。究竟神网络学到的是不是猫的整体结构信息,不好确定。为了验证能够表示学习到了语义上下文,作者用自监督训练的网络在无监督方式对猫、人、鸟进行视觉发现,发现可以很好的的定位到这些物体。这个实验使得文章就很严谨。
选块的方法:先随机选取一个块,然后在当前块的8个方向上无顺序分别选取。 为了减少纹理使网络走捷径,加入7个像素的随机抖动,这样纹理便是不连续的;第二种方法比较简单就是chromatic aberration。
训练:两个backbone共享参数,然后合并中心块和周围块的特征,最后实现分类。将方向预测问题转化成分类方式。
实验:提升了目标检测任务,另外,验证学习到了上下文信息,做了数据挖掘方面的实验等。
#4 Colorful image Colorization
给定一张灰度图像网络进行彩色化,监督信号是原始的色彩。之前的方法存在饱和度降低,作者认为这样的约束是不够的(使用的是一个回归问题,一般用L2损失监督a,b,这就会造成学习到的ab不具有多样性导致饱和度低)。本文设计了两个部件解决该问题:1)当作分类任务解决不确定性,2)在训练过程中使用类再平衡增加颜色的多样性。上色问题,使用上色图灵测试。欺骗人类的百分比来恒定。做为自监督的预训练提升后续任务。
图像彩色化示例。
网络预测ab,最终结果+L
贡献:
1)设计了一个着色的损失函数:
2)A novel framework for testing colorization algorithms(不关心)
由于Lab被证实是更容易度量距离的,其一转化为分类,需要对ab进行划分,作者划分了313个bin,使用CEloss可以表示为:
在自然图像中,ab值的分布明显偏向于低ab值, 加入了类平衡:根据像素的颜色稀缺性对每个像素的损失进行重新加权。这个权值是根据先验来给的(在ImageNet上的统计)。当时没有Focal loss吗当然不一定有效。
# 5 Colorization as a Proxy Task for Visual Understanding
作者指出彩色化可以替代ImageNet监督任务预训练。本文给出了上色自监督的具体做法和分析了哪些方面(损失,网络架构和培训细节)对其效果的影响,文章大幅篇幅对这部分探讨,还是比较有价值的。现在来看感觉意义不大,不再展开。
用强度分量来预测颜色分量
损失: Regression loss for Lab color values
KL divergence loss for hue/chroma histograms:每个像素使用7*7的邻域,放到 32 bins for hue and 32 bins for chroma。
更多关注于性能表示而不是着色情况。
# 6 DeepPermNet: Visual Permutation Learning
前面有提及一篇预测每个块位置的文章,与之不同,这篇文章任务的目标是找到从打乱的块恢复图像的结构排列。自然图像是固有一些结构信息的,比如天空和道路。打乱的图像是很容易根据自然图像生成。因此,可以使用空间结构(打乱顺序)作为监督信号,学习图像的结构信息。
可用于如下任务:排序和恢复空间布局。
文章还有个贡献是提出一个Sinkhorn layer能够使用 Sinkhorn iterations将标准的 CNN 预测转化到 doubly-stochastic matrices 。这个矩阵能连续逼近discrete permutation matrices(打乱矩阵)促进有效的反向传播。
实现结构
# 7 Transitive Invariance for Self-supervised Visual Representation Learning
自监督通过一个可以获取廉价的监督标签作为一个辅助任务表示其不变性,以提升当前任务的性能,已有很多方法比如彩色化,预测块的位置等,作者认为提升后续任务的诀窍不在于任务,而在于利用数据的方式。直接使用多种自监督方式当作多任务的学习并不能有效提升后续任务的有效性。因此本文将探讨如何使用不同的自监督方式。自监督任务可以分为两个层面:实例内不变性和实例间的不变性。
为了充分利用实例内不变性和实例间不变性,本文构造了一个由两类边组成的大型关联图:
相同类不同实例可以用无监督的方式获取,相同实例不同姿态是通过视频无监督跟踪获取。
然后训练一个三分支网络:建立简单的传递关系,从数据中推断出更复杂的不变性。实现:
<A; B> 实例间连接和<A, A’> and <B,B’> 实例内连接, 期望新的目标对 <A, B’>,<A’,B>, <A’,B’>具有一致的高阶视觉表示,来学不变性。
特征距离的度量方式:
损失设计:
# 8 Improvements to context based self-supervised learning
这篇论文提出一些技术,解决色差、空间偏离和中层特征易被忽略的问题,旨在提升自监督的性能。baseline是学习图像块位置的方法。论文三个部分:1)强化自监督工具包,2)使用两个数据集使实验更加具有一般性。2)在不同的神经网络上面验证,说明方法具有泛化性。简介一下第一部分。
色度模糊 :Lab中的a,b 通道利用13*13的滤波器模糊,亮度(L)不做处理。因为作者任务人类视觉系统对色度的空间频率不是特别敏感,对强度敏感一些。因此可以降低色彩的差异性,模糊一下色度,更关注于强度。(我的理解是这样,作者写的比较简单)
联合抖动 ;是所有的块相同的方式抖动。之前的方法都是每个块是随机抖动的,作者任认为这样可能两个块之前的差异太大,学不到应该有的结构。但是我不这这样认为,范围不太大的每个块随机抖动才能有更大的差异性,网络才能学到更好的空间上下文表示。作者提到的问题完全可以设置小一点。作者说每个块保持相对的空间网络推理每个块的位置更容易,这一点是合理的,但是这并不能说明学习到的特征表示比较好,最终我们是用来迁移到不同的下游任务上,而不是对块进行定位用的。
Additional Patches and Configurations、 Random Aperture of Patches (RA) , Rotation with Classification (RWC),Miscellany感兴趣的自己去看吧。。。
# 9 Unsupervised Feature Learning via Non-Parametric Instance Discrimination
题目为”非参数实例划分的无监督特征学习“ 想通过仅仅的实例差异性学习特征表示来学习实例间的外观相似性。如果使用实例对比需要大量的计算资源(前面谋篇有分析)。本文作者采用度量学习的方式,提出一种非参数化的方法(对feature map直接计算相似性)。每个实例存在一个“存储库”,训练时候是将这些图像向量最大化的分布在一个球体空间中,在测试阶段使用KNN找到对应的cluster。
# 10 Using Self-Supervised Learning Can Improve Model Robustness and Uncertainty
作者认为在全监督的情况下,自监督并不能对精度有太多的提升,但是能够提升模型的鲁棒性,比如对对抗样本、标签污染、输入污染(有雾、有雨等情况)具有更好的鲁棒性。尤其是对不同分布的或者近分布离群点的检测效果显著。
# 11 Self-Supervised Representation Learning by Rotation Feature Decoupling
已提出的预测旋转角度的自监督方法在很多方面取得了很好的效果,但是有些图像是不具有旋转可分性的,比如:
这些图像很难通过旋转获取不同的特征表示,训练的任务很难泛化到旋转不变的任务上。因此,本文作者提出一个旋转特征解耦模型。这个工作是在RotNet上改进而来,旋转预测应该比较有效的方法,但是旋转差异性小的样本会引入干扰,模型动机就是解决这个问题。如果期待网络能学习到好的前景特征,那么假设这个图片上的背景是旋转不变的,而实例(前景)是前景旋转可分的。
这里有个问题是如何划分哪些样本才是旋转不变的,就能减少哪些因旋转不变的样本引入的噪声扰动。