,作者:
对比学习(Contrastive Learning)最近一年比较火,各路大神比如Hinton、Yann LeCun、Kaiming He及一流研究机构比如Facebook、Google、DeepMind,都投入其中并快速提出各种改进模型:Moco系列、SimCLR系列、BYOL、SwAV…..,各种方法相互借鉴,又各有创新,俨然一场机器学习领域的军备竞赛。对比学习属于无监督或者自监督学习,但是目前多个模型的效果已超过了有监督模型,这样的结果很令人振奋。
我想,NLP领域的Bert模型,对于这波图像领域的对比学习热潮,是具有启发和推动作用的。我们知道,Bert预训练模型,通过MLM任务的自监督学习,充分挖掘了模型从海量无标注文本中学习通用知识的能力。而图像领域的预训练,往往是有监督的,就是用ImageNet来进行预训练,但是在下游任务中Fine-tuning的效果,跟Bert在NLP下游任务中带来的性能提升,是没法比的。
“但是,既然NLP这样做(自监督,无需标注数据)成功了,图像领域难道就不能成功吗?”我相信,追寻这个问题的答案,应该是促使很多人,从图像领域的有监督预训练,向自监督预训练转向的重要心理支撑。目前看,虽然说不太容易,但也算曙光乍现,而这道曙光,正是对比学习。
有监督预训练的典型问题,我们知道,就是标注数据总是有限的,就算ImageNet已经很大,但是很难更大,那么它的天花板就摆在那,就是有限的数据总量。NLP领域目前的经验应该是:自监督预训练使用的数据量越大,模型越复杂,那么模型能够吸收的知识越多,对下游任务效果来说越好。这可能是自从Bert出现以来,一再被反复证明的真理,如果它不是唯一的真理,那也肯定是最大的真理。图像领域如果技术想要有质的提升,可能也必须得走这条路,就是:充分使用越来越大量的无标注数据,使用越来越复杂的模型,采用自监督预训练模式,来从中吸取图像本身的先验知识分布,在下游任务中通过Fine-tuning,来把预训练过程习得的知识,迁移给并提升下游任务的效果。
那对比学习是要干什么呢?从目标来说,对比学习就是要干NLP领域类似Bert预训练的事情,也即是上面那几句话。
对比学习是自监督学习的一种,也就是说,不依赖标注数据,要从无标注图像中自己学习知识。我们知道,自监督学习其实在图像领域里已经被探索了很久了。总体而言,图像领域里的自监督可以分为两种类型:生成式自监督学习,判别式自监督学习。VAE和GAN是生成式自监督学习的两类典型方法,即它要求模型重建图像或者图像的一部分,这类型的任务难度相对比较高,要求像素级的重构,中间的图像编码必须包含很多细节信息。对比学习则是典型的判别式自监督学习,相对生成式自监督学习,对比学习的任务难度要低一些。目前,对比学习貌似处于“无明确定义、有指导原则”的状态,它的指导原则是:通过自动构造相似实例和不相似实例,要求习得一个表示学习模型,通过这个模型,使得相似的实例在投影空间中比较接近,而不相似的实例在投影空间中距离比较远。而如何构造相似实例,以及不相似实例,如何构造能够遵循上述指导原则的表示学习模型结构,以及如何防止模型坍塌(Model Collapse),这几个点是其中的关键。
目前出现的对比学习方法已有很多,如果从防止模型坍塌的不同方法角度,我们可大致把现有方法划分为:基于负例的对比学习方法、基于对比聚类的方法、基于不对称网络结构的方法,以及基于冗余消除损失函数的方法。除了介绍上述几种类型的对比学习模型外,本文后面内容,还会回答下述两个问题:目前存在诸多对比学习模型,到底哪些方法效果更好?目前的对比学习模型仍然存在哪些问题?
感兴趣的可以戳原文阅读。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢