对比学习一览
-
最近对比学习非常火爆,已经有非常多的paper了,那么我就来吧对比学习梳理一下,还没写完,持续更新ing
什么是半监督学习?
首先介绍一下到底什么是 半监督学习,我们知道一般机器学习分为监督学习,非监督学习和强化学习。 而 self-supervised learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务。
其主要的方式就是通过自己监督自己,比如把一段话里面的几个单词去掉,用他的上下文去预测缺失的单词,或者将图片的一些部分去掉,依赖其周围的信息去预测缺失的 patch。
Generative Methods(生成式方法)这类方法以自编码器为代表,主要关注pixel label的loss。举例来说,在自编码器中对数据样本编码成特征再解码重构,这里认为重构的效果比较好则说明模型学到了比较好的特征表达,而重构的效果通过pixel label的loss来衡量。
Contrastive Methods(对比式方法)这类方法则是通过将数据分别与正例样本和负例样本在特征空间进行对比,来学习样本的特征表示。Contrastive Methods主要的难点在于如何构造正负样本。
如图所示,这是一个vae的模型的简单表达。
这种直接在 pixel level 上计算 loss 是一种很直观的做法,除了这种直接的做法外,还有生成对抗网络的方法,通过判别网络来算 loss。
但是,对于 generative methods,有一些问题,比如:
1.基于 pixel 进行重建计算开销非常大;
2.要求模型逐像素重建过于苛刻,而用 GAN 的方式构建一个判别器又会让任务复杂和难以优化。对比学习的核心
如上图所述,这是一个对比学习的例子。
当你被要求画一张美元,左边是没有钞票在你面前,右边是面前摆着一张钞票画出来的结果可以看到,左图画出来的美元图虽然不够详细,但已经充分具备一张美元的判别性信息,因此我们可以把它识别成美元。事实上,我们并不需要见到一张美元所有详细的信息,而仅仅通过一些关键的特征就可以识别出来。
同理,相比起Generative Methods需要对像素细节进行重构来学习到样本特征,Contrastive Methods只需要在特征空间上学习到区分性。因此Contrastive Methods不会过分关注像素细节,而能够关注抽象的语义信息,并且相比于像素级别的重构,优化也变得更加简单.表达的一个核心思想就是:尽管我们已经见过很多次钞票长什么样子,但我们很少能一模一样的画出钞票;虽然我们画不出栩栩如生的钞票,但我们依旧可以轻易地辨别出钞票。基于此,也就意味着表示学习算法并不一定要关注到样本的每一个细节,只要学到的特征能够使其和其他样本区别开来就行,这就是对比学习和对抗生成网络(GAN)的一个主要不同所在。
对比学习的损失函数
对于对比学习来说,其优化的方式如上图所示
未完待续ing。。。