前沿热点: 自监督学习图鉴

机器学习与数学

共 4851字,需浏览 10分钟

 ·

2020-09-02 17:48

Yann Lecun 曾在演讲中以蛋糕来类明自监督学习。他在演讲中说,

If intelligence is a cake, the bulk of the cake is self-supervised learning, the icing on the cake is supervised learning, and the cherry on the cake is reinforcement learning (RL).


大牛的比喻不用过于较真,而且这个说法也存在争议。但我们可以看到,在自然语言处理领域中应用自监督学习的思想确实已经取得了很大进展(例如 Word2Vec,Glove,ELMO,BERT)

由于对自监督学习在图像领域的进展感兴趣,因此对一些相关文献做了调研和总结。这篇文章将解释什么是自监督学习,并总结自监督学习在图像领域中的应用。

1Why 自监督学习?

要用深度神经网络进行监督学习,需要足够的带标签数据。然而,人工标注大量数据既耗时又费力。另外,还有一些领域,例如医学领域,要获取足够的数据本身就是一个挑战。因此,当前监督学习范式的一个主要瓶颈就是标注数据或者叫标签生成。

2自监督学习

自监督学习是一种提出以下问题并将一个无监督学习问题转化为监督问题的方法:

  • 如何设计一个任务,从现有图像集中生成几乎无限多的标签,以便用来学习图像的表示呢?

什么意思呢?图像集本身没有标签,只能干点无监督的任务,但是我们还是想用一个网络去学习图像的表示(提取它的特征),怎么办呢?那就用图像自身来制造 ‘标签’,这不就转化为一个监督学习的问题了吗!

在自监督学习中,我们通过创造性地利用数据的某些属性来设置伪监督任务以替代人类标注那个环节。例如,在这里我们可以将图像旋转 0/90/180/270 度,然后训练模型来预测正确的旋转,而不是显式地将图像标注为猫或者狗等类别。我们可以从互联网上免费提供的数百万张图像中生成几乎无限的训练数据。

〄 自监督学习的端到端流程。

一旦从数百万张图像中学习图像的表示后,我们可以使用迁移学习实现在一些监督任务(例如猫与狗的图像分类)上用少量几张实例图像进行微调。


让我们来了解一下近年来研究人员提出的利用图像和视频属性的各种方法,以及应用自监督学习来实现表示学习。下面分别从图片和视频两方面来介绍自监督学习。


图像篇

3图像重构

图像着色

我们将免费可获取的数百万张彩色图像转化为灰度图,来构建(灰度图, 彩色图)图像对。

〄 图像着色数据生成。

我们可以使用基于全卷积神经网络的编码器-解码器(encoder-decoder)网络架构,并计算预测彩色图像与实际彩色图像之间的 L2 损失。

〄 图像着色网络架构。

为了完成此任务,模型需要学习图像的表示,即图像中有哪些物体及相关 part,以便用相同颜色来绘制这些 part。模型学习到的图像表示将用于下游任务。

〄 图像着色应用。
相关论文:
  • Colorful Image Colorization

  • Real-Time User-Guided Image Colorization with Learned Deep Priors

  • Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic

  • Image Colorization with Simultaneous Classification

图像超分辨率
通过对免费获取的数百万张图像进行降采样来构建(小图像, 放大图像)图像对。
〄 超分辨率训练数据生成。

基于 GAN 的模型(例如 SRGAN)非常适合这样的任务。生成器使用全卷积网络获取低分辨率图像并输出高分辨率图像。使用均方误差和内容损失来比较实际图像和生成的图像,以模仿人类对图像的质量评估。二分类判别器会将图像识别为真实的高分辨率图像(1)还是伪造的超分辨率图像(0)。这两个模型之间的相互作用导致生成器不断学习最终能够生成具有精细细节的图像。

〄 SRGAN 网络架构。

生成器和判别器都学习到了可用于下游任务的图像语义特征。

相关论文:
  • Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
图像修复

通过随机删除图像的部分区域来构建(损坏的, 修复的)图像对。

〄 图像修复数据生成。

与超分辨率任务相似,我们可以利用基于 GAN 架构,在该架构中生成器可以学习重建图像,而判别器则辨别真实图像和生成图像。

〄 图像修复网络架构。

对于下游任务,Pathak 等人的工作说明在 PASCAL VOC 2012 语义分割任务上,生成器学到的语义特征相比随机初始化有 10.2% 的提升,在分类和物体检测任务上则有 < 4% 的提升。

相关论文:
  • Context encoders: Feature learning by inpainting
交叉通道预测

用图像的一个通道预测另一个通道并将它们重新组合以重建原始图像。

〄 改编自 Split-Brain Autoencoder 论文的示例。

张等人在论文 Split-Brain Autoencoder 中使用了这种想法。为了理解这种思想,让我们以番茄的彩色图像为例。

对于彩色图像,我们可以将其分为灰度和彩色通道。对于灰度通道,预测彩色通道;对于颜色通道,预测灰度通道。将两个预测通道 相结合以重建原始图像。将此重构的图像与原始彩色图像进行比较,以得到损失并改进模型。

同样的设置也可以应用于具有深度的图像,其中我们使用来自 RGB-HHA 图像的颜色通道和深度通道相互预测并比较输出图像和原始图像。

〄 改编自 Split-Brain Autoencoder 论文的示例。
相关论文:
  • Split-Brain Autoencoders: Unsupervised Learning by Cross-Channel Prediction

4常识任务

图像拼图

通过随机打乱图像 patch 构建训练拼图对(随机, 有序)

〄 图像拼图训练数据生成。

即使只有 9 个 patch,也可能存在 362880 个排列方式。为了克服这个问题,仅仅选取具有最大汉明距离的 64 个排列。

可以使用排列来改变图像,总共用到 64 个排列,其中一个如下图所示,

〄 拼图排列示例。

为了恢复图像,Noroozi 等人提出了一个称为上下文无关的神经网络(CFN),如下图所示。在这里,各个 patch 通过相同的共享权值的 siamese 卷积层传递。然后,将这些特征组合在一个全连接的层中。在输出中,模型必须预测在 64 个可能的排列类别中使用了哪个排列。

〄 图像拼图网络架构。

为了解决拼图问题,模型需要学习识别 parts 是如何组装成物体的,物体不同 parts 的相对位置以及物体的形状。因此,这些表示对于下游的分类和检测任务是有用的。

相关论文:
  • Unsupervised learning of visual representations by solving jigsaw puzzles
内容预测

从不带标记的大型图像集中随机获取一个图像 patch 及其相邻 patch 来构建训练对(图像 patch, 相邻 patch)

〄 内容预测训练数据生成。

为了解决这个任务,Doersch 等人使用了类似于拼图游戏的架构。通过两个 siamese 卷积神经网络传递图像 patch 来提取特征,连接特征并对 8 个类进行分类,表示 8 个可能的相邻位置。

〄 内容预测网络架构。
相关论文:
  • Unsupervised Visual Representation Learning by Context Prediction
几何变换识别

不带标记的大型图像集中随机旋转图像(0、90、180、270)度来构建训练对(旋转图像,旋转角度)

〄 几何变换训练数据生成。

为了解决这个任务, Gidaris 等人提出了一种网络架构,将旋转后的图像输入一个卷积神经网络,网络把它分成 4 类(0、90、270、360)度。

〄 几何变换预测网络架构。

虽然这是一个非常简单的想法,但模型必须理解图像中物体的位置、类型和姿态才能完成这项任务,因此,学习到的表示方法对后续任务非常有用。

相关论文:
  • Unsupervised Representation Learning by Predicting Image Rotations

5自动标签生成

图像聚类

通过对不带标记的大型图像集进行聚类来构建训练数据对(图像, 簇编号)

〄 图像聚类训练数据生成。

为了解决这个任务,Caron 等人提出了一种称为 deep clustering 的架构。在此,首先对图像进行聚类,然后将簇用作类。ConvNet 的任务是预测输入图像的簇标签。

〄 深度图像聚类网络架构。
相关论文:
  • Deep clustering for unsupervised learning of visual features
  • Self-labelling via simultaneous clustering and representation learning
  • CliqueCNN: Deep Unsupervised Exemplar Learning
图像合成

通过使用游戏引擎合成图像并将其转换成真实图像来构建训练数据对(图像, 属性)

〄 图像合成训练数据。

为了解决这个任务,Ren 等人提出一个架构,使用共享权值的卷积网络在合成和真实图像上进行训练,然后鉴别器学习辨别合成图像是否是真实图像。由于对抗性,真实图像和合成图像之间的共享表示随着训练变得更好。

相关论文:
  • Cross-Domain Self-supervised Multi-task Feature Learning using Synthetic Imagery

视频篇
视频帧顺序验证

将运动对象的视频帧顺序打乱来构建训练对(视频帧, 正确/不正确的顺序)

〄 视频帧训练数据生成。

为了解决这个任务,Misra 等人提出了一个架构,其中视频帧通过共享权重的 ConvNets 传递,模型必须确定帧的顺序是否正确。在此过程中,该模型不仅学习了空间特征,还考虑了时间特征。

〄 视频帧顺序验证网络架构。
相关论文:
  • Shuffle and Learn: Unsupervised Learning using Temporal Order Verification
  • Self-Supervised Video Representation Learning With Odd-One-Out Networks

6小结

简单总结一下,图像/视频自监督学习包括两部分,即数据生成和具体任务。数据生成一般是将图像作一定变换改造后再跟原始图像构成一对,然后就可以构建网络使用数据对进行监督学习,如数据复原、识别以及相似度计算(如 SimCLR 框架)等具体任务,进而让网络提取出图像的表示,可以供下游任务使用。

⟳参考资料⟲

[1]

Jing et al.: https://arxiv.org/abs/1902.06162

[2]

Amit Chaudhary: https://amitness.com/2020/02/illustrated-self-supervised-learning



这么好的知识藏着掖着
不点个在看分享出去,不怕没朋友吗
浏览 146
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报