机器之心专栏
机器之心编辑部
这是一篇来自卡耐基梅隆大学和加州伯克利大学 Eric Xing 和 Trevor Darrell 团队联合出品的论文,探究如何在自监督双子结构中通过图像混合学习更加细粒度的特征表示,并入选 AAAI 2022。
文章核心思想非常直观易懂:希望去探究在自监督学习常用的双子结构网络中,通过在输入空间做图像融合来学习更加细粒度的特征表示。核心内容讨论了如何来设计数据采样和构建对应的损失函数,从而去匹配图像融合之后新的输入空间。
如下图所示,首先形象地解释这一基于图像融合在自监督学习中实现更加细粒度的距离度量的机制:
左边示例表示一般常用的双子自监督网络结构的工作原理,它的两个分支的距离就是默认的距离度量,比如使用 InfoNCE 去分类输入的图片对是正对 (positive) 还是负对 (negative)。
右边是本文 Un-Mix 提出的研究思路,即通过在一个分支上做图像融合,使得最后的距离度量变为一个 [0,1] 之间的软化系数
的倍数,从而使两个分支之间的距离变得更加细微和敏感(该工作是首个在自监督双子模型中引入了软距离概念的文章),进而让模型学习到更加细粒度的输入信息的隐空间表达。
实现策略
具体怎么来方便简单地实现这一机制呢?本文作者提出了如下一种策略:通过在一个 mini-batch 内部通过某种顺序做样本融合,从而得到固定的距离度量,如下图所示:
具体地,作者将一个批量(mini-batch)中的样本做一个倒序,然后跟原来的样本们做加权融合,两张原图的距离分别变成为λ和1-λ ,因此一个批量样本集合之间相互的语义距离矩阵变为如下形式:
利用这一新的距离度量,我们可以使用新的损失函数来训练模型,如下所示:
下面是 Un-Mix 算法实现的伪代码:
实验结果
作者在多个数据集上进行了大量的实验。
首先是非 ImageNet 数据集上的训练和测试曲线:
可以发现一个比较有趣的现象:在加入了 Un-Mix 之后,训练的损失值(training loss)变得非常不稳定,波动很大,这是因为在输入空间进行图像融合操作之后导致两个分支的距离度量变得更加细微多样和敏感。但是这对模型泛化能力是有帮助的,在做模型测试的时候依然可以取得更好的测试性能。
具体的数值结果对比如下,可以看到在不同数据集和对照方法上结果都有非常明显的提升。
接下来是在 ImageNet 上的结果,文章提出的方法在 200 和 800 epoch 两种不同的的训练参数设置下都有比较稳定的提升:
最后是在下游任务目标检测上的迁移结果,该方法依然有稳定的提升:
此外,作者还讨论了如何处理含有 memory bank 的框架以及如何进行多尺度(multi-scale)训练(如上图 11 所示),有兴趣的同学可以去阅读原论文。