SimCLR--视觉表征的对比性学习
监督学习和无监督学习技术在现实世界中的应用非常有限。例如,监督学习技术会非常耗费人力、计算成本和时间,因为它需要对数据进行大量的标注。
什么是自监督学习?
另一方面,无监督学习(涉及使用没有标签的数据)还没有提供非常有意义的信息,特别是在解决现实生活中的案例时。
那么,我们如何克服这些挑战呢?
我们可以通过使用自我监督学习来克服这些挑战。它是无监督学习的一个子集,目的是模仿人类和动物的学习方式。它自动生成一个监督信号,帮助解决任务。例如,它可以自动帮助标记数据集或在没有任何人类帮助的情况下学习数据中的表征。与无监督学习不同,需要注意的是,它不会将数据组织成聚类和分组。
它已被广泛用于强化学习、自然语言处理、机器人学和神经网络。
自监督学习有助于创建具有数据效率的人工智能系统。
前提条件
在阅读这篇文章之前,读者必须了解机器学习(ML)和深度学习(DL)。
什么是对比性学习?
对比性学习是机器学习研究中一个非常活跃的领域。它是机器学习中使用的一种自我监督的方法,把寻找相似和不相似的事物的任务放在一起。通过应用这种方法,人们可以训练一个机器学习模型来对比图像之间的相似性。例如,给定一匹马的图像,人们可以在其他照片的画廊中找到匹配的动物。
SimCLR是谷歌开发的一个框架,展示了对比性学习的意义。这是一项高影响力的工作,它消除了专门的架构和记忆库,通常用于对比性学习。它表明,对未标记的训练数据进行强有力的增强,一个标准的ResNet-50架构和一个小型的神经网络就能取得最先进的结果。对于这样一个简单的方法,其结果确实是令人震惊的。
与其他论文不同的是,这篇论文包含了许多技巧,如网络有一个大的批处理量,更多的训练历时,以及增加网络的宽度,以充分发挥对比学习的作用。
SimCLR框架的概述
SimCLR框架的主要组成部分包括。
- [数据扩增]
- 一个基础编码器
- 一个投影头
- 对比性损失函数。
数据扩增
SimCLR框架首先从原始数据集中获取图像实例。它将给定的图像实例转化为同一实例图像的两个对应视图。
虽然以前的对比学习方法引入了架构变化,但SimCLR认为,目标图像的随机裁剪为对比学习建立了足够的背景。裁剪的使用使网络能够学习全局到局部的对比,以及同一图像的相邻视图的对比。
例如,考虑下面这张狗的图片,它的全局和局部对比。
在了解了全局和局部的对比之后,网络现在能够在下面显示的同一图像的相邻视图之间进行对比。
这篇论文还提到了一项系统性的研究,该研究结合了不同的数据增强组合--例如,将裁剪与其他数据增强技术相结合,如模糊、颜色失真和噪音。如下图所示。
结果显示,将裁剪与颜色失真和高斯模糊相结合,在获得的结果的准确性方面表现突出。因此,他们选择在他们的增强策略中使用随机裁剪(带翻转和调整大小)、颜色失真和高斯模糊,而放弃其他增强技术。
一个基础编码器 f(x)
基础编码器 f(x)使用基于ResNet架构的卷积神经网络(CNN)变体。它从数据增强模块产生的增强的数据图像中提取图像表示向量。这种提取产生了嵌入,。
一个投影头g(h)
投影头g(h)由两个全连接层组成,即多层感知器(MLP),从基础编码器接收嵌入物h作为其输入并产生嵌入物z。这个模块的作用是将图像表征映射到一个潜伏空间,在那里应用对比损失。
对比损失函数(归一化温度标度交叉熵(NT-Xent loss))。
对比损失函数是交叉熵损失函数的修改版,它是深度分类模型监督学习中最广泛使用的损失函数。该函数如下图所示。
对比损失函数指出,zi,和$zj对应的相似度,例如,猫的图像和它的增量应该更接近。换句话说,它们应该相互吸引。
相反,任何k的相似性,如果不是i,应该被推得更远(排斥)。这方面的一个例子是,狗和猫的代表应该互相排斥。
这就是对比性损失函数的一个简单看法。
SimCLR的结果
- 本文的一个重要发现是,自我监督学习算法比监督学习算法更能从扩展中受益。
- 实验批次大小从256到8192。实验发现,随着批次大小和epochs数量的增加,准确率不断提高,如下图所示。
- 在ResNet-50架构上进行的三个不同宽度的实验显示,随着模型宽度的增加,准确率有明显的提高。这些结果如下图所示。
- 该论文的主要结果表明,无论是否有ResNet-50,SimCLR都能战胜其他最先进的方法。从下面的结果来看,SimCLR可以达到76.5%的top-1精度。这比以前最先进的模型提高了7%,这与拥有更先进架构的ResNet-50的性能相匹配。
SimCLR框架的总结
- 使用随机裁剪(带翻转和调整大小)、颜色失真和高斯模糊,因为它们是对比学习中最好的数据增强技术。
- 尽可能使用大批量,尤其是当你有足够的GPU计算能力时。
- 训练你的模型以获得更好的结果。在本文中,他们对其进行了1000个epochs的训练。
- 投影头g(x)对于获得好的表征很重要。
- 该框架通过潜在空间中的对比损失,使同一数据例子的不同增强视图之间的协议最大化来学习表征。
- 增加模型的深度和宽度可以为对比性学习带来更大的好处。
- 非线性投影头g(h)被用来增加h的代表性力量。
- 对比学习中参数的更新导致具有相关观点的表征相互吸引,而具有非相关观点的表征相互排斥。