对比自监督学习(翻译+一点新内容)

对比自监督学习(翻译+一点新内容)

对比自我监督学习技术是一种很有前途的方法, 可以通过学习编码使两件事相似或不同的事物来构建表示形式.

摘要

自我监督方法将取代深度学习中占主导地位的直接监督范式的预言已经存在了很长时间. Alyosha Efros做出了一个著名的赌注(Gelato赌注) , 即无监督方法将在2015年秋季之前击败Pascal VOC检测的监督R-CNN. 他继续输掉了赌注, 但是四年之后, 现在的预测是 实现. 如今, 自监督方法在Pascal VOC检测方面已经超过了受监督的方法(MoCo, He et al. , 2019) , 并且在许多其他任务上也显示出了出色的结果. 最近这种自我监督学习的兴起背后的方法家族遵循的是称为对比学习的范式.

引言

大量的当代机器学习方法依赖于人类提供的标签或奖励, 作为训练过程中使用的唯一学习信号形式. 这种对直接语义监督的过度依赖有以下危险:

  • 基础数据的结构比稀疏标签或奖励所能提供的丰富得多. 因此, 纯监督学习算法通常需要大量样本来学习, 并收敛到脆弱的解决方案.
  • 在高维问题上, 我们不能依靠直接监督, 而在RL等问题上, 获取标签的边际成本更高.
  • 它导致特定于任务的解决方案, 而不是可以重新利用的知识.
    自我监督学习提供了一种有前途的选择, 其中数据本身为学习算法提供了监督. 在这篇文章中, 我将尝试概述对比方法与其他自我监督学习技术的不同之处, 并回顾该领域的一些最新论文.

一个说明性例子

在这里插入图片描述

左图:从记忆中绘制的美钞. 右:随后在有美元钞票的情况下绘制的图纸.

考虑一下由爱泼斯坦(Epstein) 在2016年进行的实验, 在此实验中, 受试者被要求绘制一张尽可能详细的美元钞票.

左图显示了通过从内存中回忆起美元钞票的外观而绘制的主题图. 右图是他们随后带着一美元钞票绘制的图画. 显而易见, 与没有示例的图纸相比, 在没有美元钞票的情况下绘制的图纸有很大不同.

尽管看过无数次美元钞票, 但我们并没有完全保留它. 实际上, 我们实际上仅保留了钞票的足够功能以将其与其他对象区分开. 类似地, 我们可以建立不专注于像素级细节而仅编码足以区分不同对象的高级特征的表示学习算法吗?

生成与对比方法

当代的自我监督学习方法可以大致分为两类:
在这里插入图片描述

顾名思义, 对比方法通过对比正面和负面的例子来学习表征. 尽管这不是一个新的范例, 但它们通过无监督的对比预训练在计算机视觉任务中取得了巨大的经验成功.
最知名的有:

  • 在未标记的ImageNet数据上训练并使用线性分类器进行评估的对比方法现在已经超过了受监管的AlexNet的准确性. 与纯监督学习相比, 从标记数据中学习时, 它们还表现出显着的数据效率(Data-Efficient CPC, Hénaff等, 2019) .
  • ImageNet上的对比式预训练成功地转移到了其他下游任务, 并且胜过了受监督的预训练对等任务(MoCo, He et al. , 2019) .
  • SimCLR

它们不同于学习表示的更传统的生成方法, 后者专注于像素空间中的重构误差以学习表示.

  • 使用像素级损耗可能导致此类方法过于关注基于像素的细节, 而不是更加抽象的潜在因素.
  • 基于像素的物镜通常假设每个像素之间都是独立的, 从而降低了它们对相关性或复杂结构进行建模的能力.

对比学习算法的工作机制

对于任意数据点 x x x, 对比学习目标是学习一个编码器 f ( . ) f(.) f(.)如:
s i m ( f ( x ) , f ( x + ) > > s i m ( f ( x ) , f ( x − ) sim(f(x), f(x^{+})>>sim(f(x), f(x^{-}) sim(f(x),f(x+)>>sim(f(x),f(x)
其中:

  1. x + x^{+} x+是与 x x x相似或相等的数据点, 称为样本;
  2. x − x^{-} x是与 x x x不相似的数据点, 称为样本;
  3. s i m sim sim指代的是相似度;

x x x通常被称作"anchor"数据点. 为了优化此属性, 我们可以构造一个softmax分类器, 以正确地对正样本和负样本进行分类. 这应该鼓励分数函数将较大的值分配给正例, 将较小的值分配给负例:
L N = − E x [ l o g e x p [ s i m ( f ( x ) , f ( x + ) ] e x p [ s i m ( f ( x ) , f ( x + ) + ∑ j = 1 , ≠ + N − 1 e x p [ s i m ( f ( x ) , f ( x j ) ] ] L_{N}=-E_{x}[log\frac{exp[sim(f(x), f(x^{+})]}{exp[sim(f(x), f(x^{+}) + \sum_{j=1,\ne{+}}^{N-1}exp[sim(f(x), f(x_{j})]}] LN=Ex[logexp[sim(f(x),f(x+)+j=1,=+N1exp[sim(f(x),f(xj)]exp[sim(f(x),f(x+)]]
分母项由一个正样本和N-1个负样本组成. 在这里, 我们将点积用作得分函数:
s c o r e ( f ( x ) , f ( x + ) ) = f ( x ) T f ( x + ) score(f(x),f(x^{+})) = f(x)^{T}f(x^{+}) score(f(x),f(x+))=f(x)Tf(x+)
这是N向softmax分类器的常见交叉熵损失, 在对比学习文献中通常称为InfoNCE损失. 在以前的工作中, 它被称为multi-class n-pair lossranking-based NCE.
InfoNCE 对象同样和互信息有关联. 具体而言, 使InfoNCE损失最小化可最大程度地提高 f ( x ) f(x) f(x) f ( x + ) f(x^{+}) f(x+)之间互信息的下限. 参见Poole等, 2019年的推导以及有关此界限的更多详细信息.

Deep InfoMax

在这里插入图片描述

Deep InfoMax (DIM, Hjelm等, 2018) 通过利用图像中存在的局部结构来学习图像表示. DIM背后的对比任务是对一对全局特征和局部特征是否来自同一图像进行分类. 在这里, 全局特征是卷积编码器的最终输出(平面向量, Y), 局部特征是编码器中的中间层的输出( M × M M \times M M×M特征图). 每个局部特征图都有一个有限的接受域. 因此, 直观地讲, 这意味着要很好地完成对比任务, 全局特征向量必须捕获来自所有不同局部区域的信息. (个人见解, 类似SE的通道注意力机制的作用, 抑制非关键featuremap的权重?)
DIM的loss函数同上面介绍的loss函数一致, 对于一个anchor图像x, 有:

  • f ( x ) f(x) f(x)代表全局特征;
  • f ( x + ) f(x^{+}) f(x+)代表同一张图片的local feature(正例);
  • f ( x − ) f(x^{-}) f(x)代表不同图片的local feature(负例);

DIM同样在其他领域收到重视, 如, 和RL. DIM的衍生研究, Augment Multiscale DIM 在Imagenet经三上达到 68.4 % 68.4\% 68.4%的Top-1精度.

Contrastive Predictive Coding(CPC)

Contrastive Predictive Coding(CPC)是一种对比方法, 可以应用于可以以有序序列表示的任何形式的数据:文本, 语音, 视频甚至图像(图像可以是 视为像素或patch的序列) .

CPC通过对跨多个时间步跨数据点共享的信息进行编码来学习表示形式, 并丢弃local信息. 这些功能通常被称为“slow features”:这些功能不会随时间变化太快. 示例包括音频信号中说话者的身份, 视频中进行的活动, 图像中的对象等.
在这里插入图片描述

CPC的工作流程如下所示, 设 x 1 , x 2 , . . . , x N {x_1, x_2,..., x_N} x1,x2,...,xN为一列数据点, 且 x t x_t xt为anchor数据点. 则有:

  • x t + k x_{t+k} xt+k为anchor的正例;
  • 从数据中随机采样的数据点 x t ∗ x_{t^*} xt为负例;

CPC在单个任务中使用多个 k s ks ks来捕获在不同时间范围内演变的特征.
当计算 x t x_t xt的表示时, 我们可以使用一个自回归网络在encoder网络的顶端来对历史context进行编码.

Henaff et al., 2019 放大了CPC并且获得 71.5 % 71.5\% 71.5%的top-1 Imagnet精度.

通过对比学习来学习不变性

在这里插入图片描述

对比学习提供了一种在表示空间中施加不变性的简便方法. 假设我们希望表示形式对于变换T是不变的(例如, crops, gray), 我们可以简单地构造一个对比目标, 其中给定一个锚定数据点x,

  • T ( x ) T(x) T(x) 是一个正例;
  • T ( x ′ ) T(x') T(x), 其中 x ′ x' x 是一张随机图片或数据点–负例
    近期, 一些论文使用了该种方法并取得巨大成功:
  • AMDIM使用标准数据增强技术作为表示应不变的一组转换;
  • Constrastive Multiview coding使用同一图像的不同视图( 深度, 亮度, 亮度, 色度, 表面法线和语义标签) 作为表示应不变的一组转换.

扩展否定示例的数量( MoCo)

在这里插入图片描述

在对比学习中使用负例的不同方法的比较. 其中 x q x^q xq是正例, 而 x k x^k xk是负例. 值得注意的是梯度并不通过MOCO中的动量编码器返回.

对比方法往往可以与更多数量的否定示例一起使用, 因为大概更多数量的否定示例可以更有效地覆盖基础分布, 从而提供更好的训练信号. 在通常的对比学习公式中, 梯度流过正样本和负样本的编码器. 这意味着阴性样本的数量限于小批量的大小. Momentum Contrast 通过保持大量的负样本队列有效地解决了这一问题, 并且不使用反向传播来更新负编码器. 而是使用动量更新定期更新负编码器:
θ k ← m θ k + ( 1 − m ) θ q \theta_{k}\leftarrow m\theta_{k}+(1-m)\theta_{q} θkmθk+(1m)θq
这里, θ k \theta_{k} θk 代表编码器中负例的权重, 并且 θ q \theta_{q} θq代表编码器中正例的权重.

MoCo的一个惊人结果是, 在PASCAL VOC, COCO和其他数据集的7个检测/细分任务中, MoCo可以胜过其受监督的预训练同类, 有时甚至可以大幅度超过它. 传统上, 这些任务需要在ImageNet上进行有监督的预培训才能获得最佳结果, 但是MoCo的结果表明, 无监督和有监督的预培训之间的这种差距已经大大缩小.

SimCLR

本文提出了一个框架SimCLR来对上述问题进行自监督建模. 他将对比学习的概念与一些新颖的想法混合在一起, 在没有人类监督的情况下学习视觉的表示.

算法框架

取一副图像, 对其进行随机变化, 得到x_一对增广图像 $ x_i $ 和 $ x_j $ . 并对其中的每个图像都通过编码器以获得图像的表示. 然后用一个非线性FC层来获得图像表示z. 其任务是最大化相同图像的 $ z_i $ 和 $ z_j $两种表征之间的相似性.
在这里插入图片描述

目标结果

SimCLR比以前ImageNet上的自监督方法更好,:

  1. 在ImageNet ilsvvc -2012上,实现了76.5%的top-1准确率,比之前的SOTA自监督方法Contrastive Predictive Coding提高了7%,与有监督的ResNet50持平。
  2. 当训练1%的标签时,它达到85.8%的top-5精度,超过了AlexNet,但使用带标签的数据少了100倍。

自我监督学习的通用范式

尽管这篇文章中的对比学习的大多数应用都集中在标准的计算机视觉任务上, 但我希望对比学习显然是自我监督学习的领域和任务不可知范式. 它使我们能够将有关数据结构的先验知识注入表示空间. 这意味着, 当我们远离静态iid数据集( 后者会丢弃数据中的许多基础结构) 并利用其他结构信息时, 我们可以构建更强大的自我监督方法.

引用信息:

@misc{anand2020contrastive,
  title   = {Contrastive Self-Supervised Learning},
  author  = {Ankesh Anand},
  year    = 2020,
  note    = {\url{https://ankeshanand.com/blog/2020/01/26/contrative-self-supervised-learning.html}}
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值