【深度学习】自监督学习详解(self-supervised learning)

文章目录

  • 【深度学习】自监督学习详解(self-supervised learning)
    • 1. 引言
    • 2. 自监督学习
      • 2.1 对比学习
      • 2.2 生成学习
    • 3. 总结

1. 引言

深度学习被分为:监督学习,无监督学习和自监督学习。

  • 监督学习近些年获得了巨大的成功,但是有如下的缺点:
    1.人工标签相对数据来说本身是稀疏的,蕴含的信息不如数据内容丰富;
    2.监督学习只能学到特定任务的知识,不是通用知识,一般难以直接迁移到其他任务中。

  • 无监督学习算法的结果可能不太准确,因为输入数据没有标记,并且算法事先不知道确切的输出。

  • 由于这些原因,自监督学习的发展被给予厚望。自监督学习(self-supervised learning)不需要人工标注的类别标签信息,直接利用数据本身作为监督信息,学习样本数据的特征表达,应用于下游的任务。

2. 自监督学习

  自监督学习又可以分为对比学习(contrastive learning) 和 生成学习(generative learning) 两条主要的技术路线。

2.1 对比学习

  第一种是对比学习模型,核心思想是将正样本和负样本在特征空间进行对比,学习样本的特征表示,难点在于如何构造正负样本。

  对比学习首先学习未标记数据集上图像的通用表示形式,然后可以使用少量标记图像对其进行微调,以提升在给定任务(例如分类)的性能。对比表示学习可以被认为是通过比较来学习样本的表示。而生成学习(generative learning)是学习某些(伪)标签的映射的判别模型然后重构输入样本。在对比学习中,通过在输入样本之间进行比较来学习表示。对比学习不是一次从单个数据样本中学习信号,而是通过在不同样本之间进行比较来学习。可以在“相似”输入的正对和“不同”输入的负对之间进行比较。

 对比学习通过同时最大化同一类样本的表示之间的相似性,以及最小化不同类样本之间的相似性来学习的。 简单来说,就是对比学习要做到相同类别的样本的表示要相近,所以要最大化同一类样本的表示之间的相似性。相反,如果是不同类别的样本,就要最小化它们之间的相似度。通过这样的对比训练,编码器(encoder)能学习到样本的更高层次的通用特征 (sample-level representations),而不是属性(像素)级别的生成模型(attribute-level generation)。

  对比学习相对来说理解起来不那么难,但是生成学习就有必要追根溯源了。

2.2 生成学习

第二种是生成学习模型,它的目的是为了找到数据究竟是怎么生成的,它背后的机理是什么?

基于自监督学习的生成学习方法主要有AE、VAE、GAN这三大种,其中VAE是基于AE的基础上进行变形的生成模型,而GAN是近年来较为流行并有效的生成式方法。

  1. 自编码器(AE):AE主要由编码器和解码器组成,整个模型其实就相当于一个压缩解压的一个过程,编码器将真实数据进行压缩到低维隐空间中的隐向量,然后解码器将压缩的隐向量进行解压得到生成数据,当然在训练过程中会将生成数据和真实数据进行比较并更新参数。其实个人感觉其目的就是使得生成数据和输入的真实数据尽量相近,尽可能抓住真实数据的核心关键,如下图所示为AE的基本框架:(损失构建为x和y之间的mse_loss)

    AE很好理解,最后拿Z作为模型学习的表示即可。

  2. 变分自编码器(VAE):VAE就是AE的进化版本,基础结构和AE相差不大,但是在中间隐空间的编码部分并不相同。AE的主要特点是能够模仿,或者说和输入的数据尽可能接近,但缺少创新多样性;当然AE自编码器本身就是对输入数据的一个压缩编码,所以这也就是AE缺点的原因所在。再说说VAE的主要变化是,使编码器后产生的隐向量的概率分布能够尽量接近某个特定的分布(但是这个分布不太好估计),即编码器的直接输出的是所属正态分布的均值和标准差,然后根据均值和方差采样得到隐向量z,这样就可以根据采样的随机性生成具有多样性的生成图像,如下图是VAE的基本框架:(损失构建为xx x x ^\hat x x^之间的mse_loss)

    VAE也不难理解,也拿Z作为模型学到的表示。

  3. 生成对抗网络GAN:GAN主要由生成器和判别器构成,两者分别有自己的一个独立的网络结构,生成器生成图像再交给判别器进行判别,通过这样对抗训练的方式交替优化,生成器和判别器的对抗也被称为”MinMax游戏“,即判别器最大化真实样本的输出结果,最小化假样本的输出结果,而生成器则相反。如下图所示:(损失构建为最大化真实样本的输出结果(1),最小化假样本的输出结果(0))

    GAN是拿判别网络获得的表示来作为模型学到的表示,而生成网络起到的是辅助作用。

3. 总结

自监督学习(Self-Supervised Learning)是无监督学习里面的一种,也被称作(pretext task)。自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。它旨在对于无标签数据,通过设计辅助任务来挖掘数据自身的表征特征作为监督信号,从而提升模型的特征提取能力。

自监督学习的优势,就是可以在无标签的数据上完成训练,而监督学习需要大量的有标签数据,强化学习需要与环境的大量交互尝试,数据为王的时代,此特点也使得大家充分相信自监督学习才是人工智能的发展方向。