CVPR2022CNN⾃监督预训练新SOTA!上交Mila字节联合提
出HCSC:具有层级结。。。
点击下⽅卡⽚,关注“CVer”公众号
AI/CV重磅⼲货,第⼀时间送达
转载⾃:机器之⼼
来⾃上海交通⼤学、Mila 魁北克⼈⼯智能研究所以及字节跳动的研究者提出了⼀种具有层级语义结构的⾃监督表征学习框架,在ImageNet 数据集上预训练的模型在多个下游任务中取得了 SOTA 性能。
层级结构⽆处不在,⾃然界中存在「界 - 门 - 纲 - 类 - 科 - 属 - 种」这样的层级关系, ⼤规模⾃然图像数据集中也天然存在。例如,ImageNet 数据集的类别标签本⾝就是基于 WordNet 层级形成的, 我们总是可以「刨根问底」地找到某个类别的「⽗类」。举例⽽⾔,拉布拉多⽝是⼀种⽝类,⽽⽝类⼜是⼀种哺乳动物。这就形成了拉布拉多⽝ -> ⽝类 -> 哺乳动物的层级关系。
近年来, 计算机视觉领域涌现出⼀⼤批有效的⾃监督预训练模型,如 NPID、SimCLR、MoCo 等,它们能够从⼤规模数据集中通过⾃监督的⽅式学习潜在的图像语义表征,从⽽提升预训练模型在各项下游任务(如物体分类、⽬标检测、语义分割)的迁移性能。
这些⾃监督预训练框架通常基于对⽐学习实现. 对⽐学习通过定义正负样本对,并在表征空间中最⼤化正样本对之间的相似度⽽最⼩化负样本对之间的相似度, 从⽽达到「同类相吸、异类互斥」的⽬的。在不可获得分类标签的情况下,NPID、MoCo、SimCLR 通过实例判别(Instance Discrimination) 任务,将同⼀图像经过不同随机数据增强后作为正样本对,⽽将不同图像作为负样本对,从⽽学习对数据增强具有不变性的图像表征。
然⽽, 现有的⾃监督对⽐学习框架存在两个问题:
怎样做炒面缺乏对上述层级语义结构的建模;
负样本对的定义可能存在噪声:随机选择的两张图像可能属于相同类别。
针对这两个问题,来⾃上海交通⼤学、Mila 魁北克⼈⼯智能研究所和字节跳动的研究者提出了⼀种基于层级语义结构的选择性对⽐学习框架(Hiearchical Contrastive Selective Coding,HCSC)。波士顿公园
这⼀框架通过将图像表征进⾏层级聚类,构造具有层级结构的原型向量 (hierarhcical prototypes),并通过这些原型向量选择更加符合语义结构的负样本进⾏对⽐学习, 由此将层级化的语义信息融⼊到图像表征中。该⾃监督学习框架在多个下游任务中达到卷积神经⽹络⾃监督预训练⽅法的 SOTA 性能。
⽅法
该⼯作的⽅法论框架包含两个重要的模块: ⼀个是层级语义结构的构建与维护, 另⼀个是基于层级语义结构的选择性对⽐学习。
层级语义表征
研究者注意到,层级语义结构天然可以通过树状结构来描述:如果将树中的某个节点认为是⼀个语义类别, 则⽗节点可以认为是它的上层类别,例如「拉布拉多⽝」的⽗节点可以认为是「⽝类」,⽽其兄弟节点可以包括「贵宾⽝」、「萨摩⽝」等。这样的树状结构显然具备⼀个性质:同⼀⽗节点的两个⼦节点必然也共享更上层的祖先节点,例如「贵宾⽝」与「萨摩⽝」同为⽝类, 它们也同为哺乳动物。
那么,如何在图像的表征空间中构建这样的树状结构呢?在缺少类别标签的⽆监督场景中,可以通过对图像特征聚类的⽅式获得图像的潜在语义类别。聚类中⼼则可以被认为是代表着某种语义类别的「
原型向量」,基于⾃底向上的层级聚类思想, 在这些聚类中⼼的基础上进⼀步进⾏聚类则可以得到更⾼层级的潜在语义类别。在这⼀过程中, 语义类别的树状结构⾃然地得以维护:在某层聚类中为相同类别的图像,在上层中仍然保持为相同类别。
在实现过程中, 该研究采⽤了简单有效的⾃底向上层级 K-means 算法, 具体算法流程如下:
在该训练框架中,每进⾏⼀轮学习后,由于⽹络参数的更新,图像的表征也随之更新。
因此,在每个训练epoch之前, 均通过当前的⽹络参数提取整个数据集的图像表征,对提取到的图像表征应⽤如上所述的层级 K-means 算法得到⼀系列具有树状结构的层级原型, 这些层级原型将在接下来的训练过程中⽤于指导对⽐学习的样本选择,从⽽将层级化的语义信息融⼊到图像表征中。
选择性对⽐学习
在得到了⼀系列具备层级结构、潜在地表征某⼀类别的原型向量后, 可以基于这些原型向量选择更加符合语义结构的对⽐学习样本.
选择性实例对⽐学习
⾸先,我们简要回顾⼀下⾃监督对⽐学习的基本原理。对⽐学习的⽬的可以概括为实现「同类相吸」、「异类互斥」。在不考虑原型向量的情况下, 基于实例的对⽐学习通过定义正负样本对, 并在表征空间中最⼤化正样本对之间的相似度⽽最⼩化负样本对之间的相似度来实现上述⽬的。
此前的⽅法 (如 NPID、MoCo 等) 将同⼀图像经过不同随机数据增强后的版本作为正样本对,⽽将不同图像作为负样本对。这样的⽅式存在⼀个关键的问题:所选择的负样本对可能属于相同类别,从⽽使得相同类别的样本在表征空间中互相远离,这将在某种程度上破坏模型所学习到的表征有效性。
出现这⼀问题的根本原因在于没有额外的类别信息指导对负样本的选择。如果我们知道类别信息,则可以将同类负样本剔除 (这些同类负样本也可以称为假负样本),从⽽避免带来梯度噪声。在⾃监督的情况下,虽然没有准确的类别信息,但我们通过此前的层级聚类过程得到了⼀系列聚类标签。在这些聚类标签的帮助下, 可以近似地达到剔除假负样本的⽬的:如果⼀对样本属于相同的聚类中⼼, 则从负样本对中剔除即可。
更进⼀步地,考虑到聚类标签的不确定性,该研究通过接受 - 拒绝采样的⽅式对负样本进⾏选择。对于⼀个图像表征z,层级聚类的结果可
以导出该图像在第l层所属的聚类中⼼(其中s(·)是相似度函数,在该研究中通过cosine 相似度实现);这⼀聚类中⼼代表了该图像在这⼀层中所属的类别。接下来,对于候选负样本,它被选择的作为负样本的概率为:
直观⽽⾔, ⼀个候选负样本被选择的概率可以近似被描述为「与⽬标样本属于不同聚类中⼼的概率」经过选择过程后, 更⾼质量的负样本集将被⽤于计算 InfoNCE 损失. 在多个层级聚类中⼼指导下, 最终的选择性实例对⽐学习 (Instance-wi Contrastive Selective Coding, ICSC) 的损失函数为:
爱丽丝梦游仙境h选择性原型对⽐学习闭环管理
除了⽤于指导实例间的对⽐学习,层级原型还可⽤于辅助原型对⽐学习。原型对⽐学习是图像表征与聚类中⼼之间的交互,可以简单总结为在表征空间中最⼤化图像表征与其所属的聚类中⼼的相似度。
同样地,如果通过随机采样的⽅式形成负原型集合 N_c,那么其中也可能存在与聚类中⼼ c 语义相近的原型 (例如 c 的兄弟节点):如果某张图像是萨摩⽝,选择相似的种类例如拉布拉多⽝作为负例进⾏对⽐学习并不是⼀个好选项。⽽层级结构的存在为选择合理的对⽐原型提供了⼀个解决⽅案:与此前选择对⽐样本类似,我们只需要计算某⼀候选原型与⽬标原型的⽗节点的相似度,即可选择与⽬标原型⼤概率不是近似类别的原型,从⽽避免可能带来噪声的对⽐原型。具体⽽⾔, 某个聚类中⼼c_j被选择作为对⽐原型的概率为:
类似地, 这⼀概率可以被描述为「某⼀原型与⽬标原型属于不同⽗类的概率」。基于经过选择后的负原型集合,选择性原型对⽐学习损失被定义为:
张文慈电影
最后, 我们将两种改进后的对⽐学习损失进⾏组合得到最终的优化⽬标:
实验结果
主要结果
研究者们在 ImageNet-1k 线性分类、KNN、半监督学习以及跨数据集的迁移学习 (包括在 VOC、COCO 数据集的⽬标检测任务以及在VOC、Places205 数据集的分类任务) 的实验设置下与基于 CNN 架构的 SOTA ⽅法进⾏了对⽐,HCSC 在多个任务中均取得了出⾊的效果。
粉藤
不同训练配置下模型性能对⽐:
更多下游任务的性能对⽐:
可视化
除了量化实验,该论⽂还给出了直观的可视化结果。研究者们展⽰了 HCSC 在 ImageNet 上的聚类结果,在下图中可以明显地看出存在层级结构:叼着鱼的灰熊 => 在⽔上的熊或者狗 => 在⽔上的动物。
另外⼀个例⼦, 研究者们展⽰了⼀个经典的语义树状结构:
除了层级结构可视化,研究者们也展⽰了 HCSC 训练过程中删除的「假负样本」:例如对其中⼀个鸟类样本,删除的对⽐负样本也⼤部分为鸟类。
消融实验
研究者们还做了充分的消融实验来验证了所提出的层级原型和样本选择模块的有效性, 以及对每层原型数量选择的对⽐实验。可见:
信用证付款1. 层级原型、实例样本选择、原型样本选择模块的有效性都得到了验证,可以分别在 baline (67.6)的基础上有效涨点 (67.6 => 68.9 => 69.2),其中效果最明显的是实例样本选择模块。
2. 在原型数量相同的情况下,带有层级结构的原型 (3000-2000-1000) ⽐单层原型 (6000) 取得更优的
六年级日记性能。这也印证了层级原型的有效性。另⼀⽅⾯,模型对进⼀步增加层级数以及各层原型的数量不敏感。