对比学习(一)简介

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、对比学习简介

自监督学习
自监督学习属于无监督学习范式的一种,特点是不需要人工标注的类别标签信息,直接利用数据本身作为监督信息,来学习样本数据的特征表达,并用于下游任务。

自监督学习的优势

1数据本身提供的信息远比稀疏的标签更加丰富,因此使用有监督学习方法训练模型需要大量的标签数据,并且得到的模型有时候是“脆弱”的
2有监督学习通过标签训练得到的模型往往只能学到一些任务特定的知识,而不能学习到一种通用的知识,因此有监督学习学到的特征表示难以迁移到其他任务

而自监督学习能够很好地避免上面的问题,因为自监督学习直接使用数据本身来提供监督信息来指导学习。

当前自监督学习可以被大致分为两类
1.Generative Methods(生成式方法)
2.Contrastive Methods(对比式方法)

Generative Methods(生成式方法)这类方法以自编码器为代表,主要关注pixel label的loss。举例来说,在自编码器中对数据样本编码成特征再解码重构,这里认为重构的效果比较好则说明模型学到了比较好的特征表达,而重构的效果通过pixel label的loss来衡量。

Contrastive Methods(对比式方法)这类方法则是通过将数据分别与正例样本和负例样本在特征空间进行对比,来学习样本的特征表示。Contrastive Methods主要的难点在于如何构造正负样本。

1.1 基本思想

对比学习是一种基于对比思想的判别式表示学习框架(或方法),主要用来做无监督(自监督)的表示学习(对比学习也可以用于有监督学习,但这不是对比学习的优势所在,故本文不再赘述)。
他不限于某一个或一类模型,而是一种利用无标签数据进行表示学习的思想。

对比学习采用的具体思想
即将样例与与它语义相似的例子(正样例)和与它语义不相似的例子(负样例)进行对比,希望通过设计模型结构和对比损失,使语义相近的例子对应的表示在表示空间更接近,语义不相近的例子对应的表示距离更远,以达到类似聚类的效果

我们举例如下
对比学习期望通过使同一类狗不同角度照片的表示相近,而不同种类动物对应的表示距离相远,使得学到的表示可以忽略掉角度(或光影等)变换带来的细节变动,进而学习到更高维度、更本质的特征(语义)信息。

补充
相比起Generative Methods需要对像素细节进行重构来学习到样本特征,Contrastive Methods只需要在特征空间上学习到区分性。因此Contrastive Methods不会过分关注像素细节,而能够关注抽象的语义信息,并且相比于像素级别的重构,优化也变得更加简单。

对比学习的一些特征

  1. 在 feature space 上构建距离度量;2. 通过特征不变性,可以得到多种预测结果;3. 使用 Siamese Network;4. 不需要 pixel-level 重建。

1.2 对齐性(alignment)和均匀性(uniformity)

由于对比学习的表示一般都会正则化,因而会集中在一个超球面上。对齐性和均匀性指的是好的表示空间应该满足两个条件:一个是相近样例的表示尽量接近,即对齐性;而不相近样例的表示应该均匀的分布在超球面上,即均匀性。满足这样条件的表示空间是线性可分的,即一个线性分类器就足以用来分类
由此,我们可以轻易地发现对比学习有三个重要的组成部分:正负样例、对比损失以及模型结构。

1.3 正负样例

如上所述,正样例指的是与给定样例语义相近的样例,而负样例指的是与给定样例语义不相近的样例。对于有监督的数据,正负样例很容易构造,同一标签下的例子互为正样例,不同标签下的例子互为负样例,但对于无标签的数据,我们如何得到正负样例呢?

目前的主流做法是对所有样例增加扰动,产生一些新的样例,同一个样例扰动产生的所有样例之间互为正样例,不同样例扰动产生的样例彼此之间互为负样例。现在的问题就变成了如何可以在保留原样例语义不变的情况下增加扰动,构造新样例。

图像领域中的扰动大致可分为两类:空间/几何扰动和外观/色彩扰动。空间/几何扰动的方式包括但不限于图片翻转(flip)、图片旋转(rotation)、图片挖剪(cutout)、图片剪切并放大(crop and resize)。外观扰动包括但不限于色彩失真、加高斯噪声等


自然语言领域的扰动也大致可分为两类:词级别(token-level)和表示级别(embedding-level)。词级别的扰动大致有句子剪裁(crop)、删除词/词块(span)、换序、同义词替换等。表示级别的扰动包括加高斯噪声、dropout等。

不同于图像领域,对自然语言的扰动很容易改变语义,这就会引入错误正例(False Positive)从而对模型训练产生不好的影响。同时,错误负例(False Negative)也是一个不容忽视的问题,错误负例会对对比学习产生负面影响。(引文 Ching-Yao Chuang, Joshua Robinson, Yen-Chen Lin, Antonio Torralba, and Stefanie Jegelka. Debiased contrastive learning. In Hugo Larochelle, Marc’Aurelio Ranzato, Raia Hadsell, Maria-Florina Balcan, and Hsuan-Tien Lin, editors, Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020.)

错误负例的例子

2.4 对比损失

2.4.1 原始对比损失

其中,D为距离度量函数,Lp为一递增函数,Ln为一递减函数。当互为正例时,距离越远损失越高;互为负例时,距离越近损失越高。

补充 几种不同的Lp和Ln函数

  1. 2.

2.3.2 三元组损失(triplet loss)


其中D为欧几里得距离,m是用来控制正例负例距离间的偏离量,使模型不需要考虑优化过于简单的负例。

该方法在FaceNet中被提出,主要希望通过对比使得锚点与正例的距离更近,与负例更远。

但在实际操作中,我们可能会得到负样例个数远远多于正样例,由此我们引出了对比学习中主流的InfoNCE损失。

FaceNet
Florian Schroff, Dmitry Kalenichenko, and James Philbin. Facenet: A unified embedding for face recognition and clustering. In IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2015, IEEE Computer Society, 2015.

2.3.3 InfoNCE损失

NCE全称是噪声对比估计(Noise Contrastive Estimation),通过引入一个噪声分布,解决多分类问题softmax分母归一化中分母难以求值的问题。具体做法是把多分类问题通过引入一个噪音分布变成一个二元分类问题,将原来构造的多分类分类器(条件概率)转化为一个二元分类器,用于判别给定样例是来源于原始分布还是噪声分布,进而更新原来多元分类器的参数。(?)

如果把噪音分布的样本想成负样例,那这个二元分类问题就可以理解为让模型对比正负样例作出区分进而学习到正样例(原始分布)的分布特征

而InfoNCE, 又称global NCE,继承了NCE的基本思想,从一个新的分布引入负样例,构造了一个新的多元分类问题,并且证明了减小这个损失函数相当于增大互信息(mutual information)的下界。
其中u、v+、v-分别为原样例、正样例、负样例归一化后的表示,为温度超参。
温度超参是softmax中常见的超参,t越小,softmax越接近真实的max函数,t越大越接近一个均匀分布。因此,当t很小时,只有难区分的负样例才会对损失函数产生影响,同时,对错分的样例(即与原样例距离比正样例与原样例距离近)有更大的惩罚。实验结果表明,对比学习对t很敏感。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年4月5日
下一篇 2023年4月5日

相关推荐