机器之心报导
机器之心编辑部
Facebook AI 研讨团队的何恺明等人提出了一种名为动量比照(MoCo)的无监督练习办法。在 7 个与检测和切割相关的下流使命中,MoCo 能够超越在 ImageNet 上的监督学习成果,在某些情况下其体现乃至大大超越后者。作者在摘要中写道:「这标明,在许多视觉使命中,无监督和监督表征学习之间的距离已经在很大程度上被消除了。」
论文链接:https://arxiv.org/pdf/1911.05722.pdf
无监督表征学习在自然言语处理范畴十分红功,诞生了 GPT、BERT 等功能强壮的模型。但在核算机视觉范畴,监督预练习一直是干流办法,无监督办规律被落在了后边。
这或许是由于它们对应的信号空间不同。言语使命有着离散的信号空间(词等),能够用于构建成分词后的词典(dictionary)。这种词典是无监督学习能够依靠的特征。可是,核算机视觉与之相反,其原始信号是在一个接连且高维的空间中,无法成为结构化信号用于人类的沟通。
在无监督的视觉表征学习上,近来的一些研讨经过运用比照丢失(constrative loss)的办法取得了不错的作用。这些办法都能够被以为和动态词典(dynamic dictionary)相关。在词典中,键(token)是经过从数据(如图画等)中进行采样得到的,然后运用一个编码器网络转换为表征。无监督学习则练习编码器,用于词典的查找作业,即一个编码的「查询(query)」应该和与之匹配的键类似,与其他键不类似。这样的一个学习进程能够被构建为削减比照丢失。
从这一视点来看,研讨者假定,能够构建一种词典,这个词典:(1)足够大;(2)能够在练习的进程中不断更新。从直觉上来说,一个更大的词典能够更好地采样隐性的接连高维视觉空间。而词典中的键应当能够被相同的或许近似的编码器标明。这样其相对应的查询则是安稳接连的。
在本次研讨中,何恺明等研讨者提出了一种名为动量比照(Momentum Contrast,简称 MoCo)的办法。这种办法旨在经过比照丢失为无监督学习树立大型、共同的词典(如下图 1 所示)。研讨者将词典保护为一个数据样本行列:当时 mini-batch 编码表征将进入行列,而最老的将退出行列。该行列将词典巨细与 mini-batch 巨细解耦,然后答应词典变大。此外,由于词典键来自前面的几个 mini-batch,因而研讨者提出运用一个缓慢行进的键编码器,作为依据动量的查询编码器的移动平均值,以坚持共同性。
图 1.MoCo 经过运用比照丢失将一个已编码的查询 q 与一个已编码的键词典进行匹配来练习一个视觉表征编码器。词典键 {k_0, k_1, k_2, ...} 是由一组数据样本动态界说的。
MoCo 是一种为比照学习创立动态词典的机制,能够用于处理多种 pretext 使命。在这篇论文中,研讨者选用了一个简略的实例判别使命:一个查询匹配一个键(假如它们是同一图画的编码视图)。在 ImageNet 数据会集,MoCo 在一般线性分类规范下展现出了有竞争力的成果。
无监督学习的首要意图之一是预练习出能够终究靠微调迁移到下流使命的表征。何恺明团队的研讨成果标明,在 7 个与检测和切割相关的下流使命中,MoCo 无监督预练习能够超越在 ImageNet 上的监督学习成果,在某些情况下其体现还大大超越后者。
他们经过试验探究了 MoCo 在 ImageNet 或 10 亿张 Instagram 图画集上的预练习成果,这些成果标明,在许多核算机视觉使命中,MoCo 都能够在很大程度上缩小无监督和监督表征学习的距离,在若干项运用中能够替代 ImageNet 监督预练习。
办法详解
比照学习能够看做查词典
比照学习及其最新进展能够看做是为查词典使命练习一个编码器。
假定有一个编码的查询 q 和一组编码的样本 {k0, k1, k2, ...},它们都是词典的键。词典中有一个键(k+)与 q 相匹配。比照丢失是一个函数,该函数的值在 q 类似于其正键 k+且不同于其他一切键(q 的负键)时很低。研讨者运用点积的类似度衡量,这是一种比照丢失函数的办法,名为 InfoNCE。本文选用了这个函数:
这一比照丢失函数充任一个无监督方针函数,用于练习表征查询和键的编码器网络。整体来说,查询表征是 q = f_q(x^q ),其间的 f_q 是一个编码器网络,x^q 是查询样本。
动量比照(Moco)
比照学习是在图画等高维接连输入上树立离散词典的一种办法。该词典是动态的,由于键是随机采样的,并且键编码器在练习进程中逐渐更新。本文的研讨者提出的假定是:好的特征能够终究靠一个包括很多负样本的词典来学习,在这一进程中,虽然词典键的编码器处于动态改动之中,但它仍应当尽或许坚持安稳。依据这种思维,研讨者提出了 MoCo 办法。
1. 将词典作为行列
该办法的中心是将词典坚持为一个数据样本行列。这使得从头运用来自之前的 mini-batch 的编码键成为或许。行列的引进将词典巨细与 mini-batch 巨细解耦,词典的巨细能够远远大于典型的 mini-batch 巨细,并且能够灵敏而独登时设置为超参数。词典中的样本被逐渐替换,当时的 mini-batch 被加入到词典行列中,而最早的 mini-batch 被从行列中移除。该词典总是标明一个一切数据的采样子集,而保护该词典的额定核算是可办理的。
2. 动量更新
运用行列能够使词典更大,但这使得经过反向传达更新键编码器变得困难。假定这种失利是由于编码器的快速改动降低了键的表征共同性形成的。依据这种假定,研讨者提出用动量更新来处理这样的一个问题。
将 f_k 的参数标明为θ_k,将 f_q 的参数标明为θ_q,经过以下办法来更新θ_k:
在上面的式子中,m ∈ [0, 1) 是一个动量系数。只要参数θ_q 经过反向传达得到了更新。(2)式中的动量更新使得θ_k 的改动比θ_q 要愈加滑润。
在试验中,一个较大的动量(如 m = 0.999)比一个较小的值(如 m = 0.9)作用要好,标明缓慢更新的键编码器是使行列发挥作用的要害。
3. 和其他办法的比照
研讨者在图 2 中将他们的办法和之前的办法来进行了比照。
图 2:三种比照丢失机制的比较。在这里,研讨者只展现了一对查询和键的联系。
这三种办法的首要不同之处在于,它们关于键应该怎样被坚持和键编码器怎么更新上有所区别。(a)在端到端办法中,查询和键的表征经过端到端的反向传达办法来进行更新;(b)在 memory bank 的办法中,键的表征经过一个 memory bank 进行采样;(c)在本文提出的办法中,MoCo 运用依据动量更新(momentum-updated)的编码器对新的键进行更新,并坚持一个键的行列。
Pretext 使命
比照学习能够推进各式各样的 pretext 使命。本文的重心并不是从头规划新的 pretext 使命,而是依据曾经的实例区分使命树立起一个新的使命。
依据之前研讨所实例区分使命,研讨者考虑将一对查询和键作为正样本对(positive sample pair),假如它们出自同一图画,不然将它们作为负样本对(negative sample pair)。研讨者在随机数据增强下从同一图画中提取两个随意的「视图」,以构建正样本对。查询和键别离由各自对应的编码器 f_q 和 f_k 进行编码。编码器能够是任何架构的卷积神经网络。
下图算法 1 供给了该 pretext 使命所需的 MoCo 伪代码。关于当时的 mini-batch,研讨者编码了查询以及对应的键,这些查询和键形成了正样本对。负样本对则来自行列(queue)。
和在规范 ResNet 上相同,研讨者选用的编码器 f_q 和 f_k 都进行了批归一化(BN)。在试验中,他们发现运用批归一化也能够阻挠模型学习好的表征。模型好像能够「诈骗」pretext 使命,并能够很容易地找到低丢失的处理方案。这大概是由于样本中的批内部的通讯(由批归一化导致)泄漏了信息。
研讨者经过打乱批归一化次序的办法来处理上述问题。他们运用多个 GPU 打开练习,并别离针对每个 GPU 在样本上履行批归一化(这是一种惯例做法)。关于键编码器 f_k,研讨者对当时 mini-batch 中的样本次序(sample order)进行打乱,然后才将它分配给对应的 GPU(并在编码完成后从头打乱);与此同时,关于查询编码器 f_q 而言,mini-batch 的样本次序没有改动。这就保证用于核算查询及对应的正样本键的批计算值出自两个不同的子集。这样一来,上述模型「诈骗」pretext 使命的问题能够取得有效地处理,练习也能够获益批归一化。
如上图 2(a)所示,研讨者在自己提出的 MoCo 和 end-to-end 办法中对批归一化进行了打乱;与此同时,如图 2(b)所示,他们没有在 memory bank 办法中采纳这样的办法,是由于 memory back 中的正样本键出自和之前的不同 mini-batch,所以不存在上述「诈骗」问题。
试验设置和成果
数据集和试验设置
研讨者在以下数据集进步行了无监督练习。
ImageNet-1M (IN-1M):这是一个 ImageNet 上的练习集,也被称作 ImageNet-1K,有 128 万张图画,分红 1000 个类。当然,由于是无监督学习,研讨者不重视分类信息。这个数据集在类别散布上十分平衡,其图画中一般有一个标志性的首要方针。
Instagram-1B (IG-1B):这是一个有着近 10 亿图画的揭露图画数据集,来自 Instagram。这些图画有 1500 个和 ImageNet 分类相关的标签。这一数据集比较 ImageNet 是更无标示的,有着长尾、不平衡的数据散布。这一数据会集的图画或许有首要方针,也或许仅仅景色照那样没有首要方针的图画。
练习办法上,研讨者运用了 SGD 作为优化器,权重下降值设为 0.0001,动量则设为 0.9。在 (IN-1M)数据集上,批巨细为 256,运用 8 个 GPU 练习,初始学习率是 0.03。研讨者练习了 200 个 epoch,并在 120 和 160 个 epoch 的时分,将学习率乘以 0.1。这一练习运用的是 ResNet-50 网络,用了 72 小时。
关于 IG-1B,研讨者运用了 1024 的批巨细和 64 个 GPU 进行练习。学习率为 0.12,并在每 62.5k 次迭代后就衰减 0.9。在这个试验上研讨者练习了 1.25M 次(大约 1.4 个 epoch)。运用的依然是 ResNet-50,花了 6 天时刻。
成果
图 3:MoCo、end-to-end 和 memory bank 三种不同比照丢失机制在 ImageNet 线性分类点评规范下的比照成果。
表 1:在 ImageNet 数据集上,MoCo 与其他办法在线性分类点评规范下的比照成果。
表 2:在 PASCAL VOC trainval07+12 上微调的方针检测成果。
表 3:MoCo 与 end-to-end、memory bank 在 PASCAL VOC 方针检测上的比照。
表 4:MoCo 与从前办法针对在 PASCAL VOC trainval2007 上微调的方针检测的成果比照。
表 5:在 COCO 上微调的方针检测和实例切割成果:鸿沟框 AP(AP^bb)和掩码 AP(AP^mk)在 val2017 进步行评价。
表 6:在各种使命上微调时 MoCo 和 ImageNet 有监督预练习的比照成果。
机器之心「SOTA模型」:22大范畴、127个使命,机器学习 SOTA 研讨一扫而光。