论文阅读4 | SpCL

论文:Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID

域适应目标ReID的带有混合记忆模型的自步对比学习

出处:NeurIPS 2020

1. Abstract

域自适用目标重识别的目的,是将学习到的知识从已标注的源域迁移到未标注的目标域中,为的是解决开放类的重识别问题。尽管最先进的pseudo-label-based 方法获得了很大的成功,但由于域差异和聚类性能不理想,并不能充分利用所有有价值的信息。

为了解决这一问题,本文提出了一个新颖的框架, self-paced contrastive learning framework with hybrid memory。hybrid memory 可以动态生成源域类级(source-domain class-level),目标域类级( target-domain cluster-level )和非聚类实例级(un-clustered instance-level )的监督信号,用于学习特征表示。

不同于传统的对比式学习策略,所提出的框架联合区分源域类( source-domain classes), 目标域类( target-domain clusters )和 非聚类实例(un-clustered instances)。更重要的是,所提出的self-paced 方法逐渐创建出更可靠的聚类来细化hybrid memory 和学习目标,并显示出我们的方法的卓越性能的关键。我们的方法优于最先进的目标重识别的多域适应任务,甚至在没有额外标注的情况下,在源域的性能上也有所提升。

核心思想:该文提出了一个简单有效的自步对比学习框架,核心思想是利用多种不同形式的类别原型提供混合监督,以实现对所有训练数据的充分挖掘。

2. Motivation

在基于聚类的伪标签法中,往往没有用到全部的目标域无标签数据,因为基于密度的聚类 (如DBSCAN等) 本身会产生聚类离群值 (outlier) ,这些聚类离群值由于无法分配伪标签,所以被丢弃,不用于训练。但作者认为,这样的聚类离群值往往正是那些值得挖掘的困难训练样本。尤其在训练的早期,往往存在大量的聚类离群值,若简单丢弃它们,训练样本将大幅减少。
在这里插入图片描述
如何合理地挖掘所有可用的信息,是提升性能的关键。如上图所示,作者提出在训练中使用全部的源域数据和目标域数据,并利用一个混合记忆模型 (Hybrid Memory)来提供监督:对于源域数据而言,监督是他们真实的标签;对于目标域聚类内的数据而言,监督是他们的聚类标签;对于目标域的聚类离群值而言,他们每张图本身被看作一个单独的类,所以监督是实例级的标签。作者将所有的源域类、目标域聚类、目标域每个聚类离群值实例看成平等的类别。

3. Self-paced Contrastive Learning

以下是该文所提出的自步对比学习 (Self-paced Contrastive Learning) 框架,包括一个图像特征编码器 (Encoder)和一个混合记忆模型 (Hybrid Memory)。核心是混合记忆模型在动态变化的类别下所提供的连续有效的监督,以统一对比损失函数 (Unified Contrastive Loss) 的形式监督网络更新,实现起来非常容易。
在这里插入图片描述

4. Unified Contrastive Learning

类别原型 (Class Prototype)可以理解为该类别中较为有标志的特征,例如无偏分类器中的权重 (Weights) 。在这里,作者使用源域真实类别的类质心 (Class Centroids)作为源域数据的类别原型{w},使用目标域聚类的质心 (Cluster Centroids)作为聚类内的目标域数据的类别原型{c},使用目标域聚类离群值的实例特征 (Outlier Instance Features)作为无聚类的目标域数据的类别原型{v}。作者所提出的混合记忆模型可以实时提供这三种类别原型以作训练监督。

对于每一组输入的mini-batch,同时包含源域数据和目标域数据 (作者在编码器中使用Domain-specific BNs来消除不同领域数据间的域差异) ,他们需要与上述三种类别原型进行比较。所以作者提出统一对比损失函数 (Unified Contrastive Learning) :
在这里插入图片描述

该损失函数可以使得每个训练样本靠近它所属于的类别 (包含源域真实类、目标域聚类、目标域无聚类实例) ,而远离其他类别。举例来说,对于一个来自源域的样本,其对应的正面原型 (Positive Prototype)则是它真实类别所对应的质心 (Class Centroids) ;对于一个来自目标域的样本,若其在聚类内,则正面原型为其所对应的聚类质心 (Cluster Centroids) ,反之,若其不在聚类内,为聚类离群值,则正面原型为该离群值所对应的实例特征 (Outlier Instance Features) 。

该文所提出的统一对比损失函数同时考虑了三种不同的类别原型,而以前的对比损失函数只考虑实例级的类别原型。他们将所有样本看作独立的类,进行实例区分 (Instance Discrimination) 训练,这样的算法很大程度上忽略了类内 (Intra-class) 关系,也就是同一ID的不同图像间的联系,故以前的对比损失函数不适用于重识别任务。

5. Hybrid Memory

混合记忆模型 (Hybrid Memory) 实时提供三种不同的类别原型,那么,这三种类别原型是如何动态地在混合记忆模型中连续更新变化的呢?

作者提出使用动量更新 (Momentum Update)。简单来说,就是以“参数= (1-动量)x新参数+动量x参数”的形式更新。这里针对源域和目标域采取不同的动量更新算法,以适应其不同的特性。

对于源域的数据而言,由于具有真实的类别,作者提出以类为单位进行存储。这样的操作一方面节省空间,一方面在实验中也取得了较好的结果。将当前mini-batch内的源域特征根据类别算均值,然后以动量的方式累计到混合记忆模型中对应的类质心上去。
在这里插入图片描述

对于目标域的数据而言,作者提出全部以实例为单位进行特征存储,这是为了让目标域样本即使在聚类和非聚类离群值不断变化的情况下,仍然能够在混合记忆模型中持续更新 (Continuously Update) 。具体而言,将当前mini-batch内的目标域特征根据实例的index累计到混合记忆模型对应的实例特征上去。
在这里插入图片描述

那么,如何获得目标域的聚类质心离群值实例特征呢?在混合记忆模型中,将同一聚类ID的特征做平均,即可获得聚类质心;而离群值的实例特征则直接从混合记忆模型中提取剩下的实例特征即可。
在这里插入图片描述

6. Self-paced Learning

由于聚类和聚类离群值都被看作平等且独立的类,所以聚类的可靠性对训练的影响至关重要。由于在训练的一开始,网络对于图像的辨别性较差,聚类的噪声也较大,所以作者借鉴自步学习 (Self-paced Learning) 的思想,先从最可靠的聚类开始,再逐步增加聚类,由简入难。该文提出了一个聚类可靠性评价标准 (Cluster Reliability Criterion),保留可靠的聚类,而将不可靠的聚类拆解回无聚类的离群值实例。所提出的聚类可靠性评价标准分为聚类独立性 (Cluster Independence)和聚类紧凑性 (Cluster Compactness)。

聚类独立性 体现为一个可靠的聚类应当具有良好的类间距离,不能和附近的聚类“如胶似漆”。该文提出,放宽聚类的标准,此时如果该聚类与周围的聚类融合成了一个大聚类、或者吸收了附近的离群值,那么认为,该聚类的独立性不太好。

在这里插入图片描述
聚类紧凑性 体现为一个可靠的聚类内的样本应该相互靠近,具有良好的类内距离。类似的,该文提出,缩紧聚类的标准,此时如果该聚类被拆解成了多个小聚类、或者拆出了一些聚类离群值,那么认为,该聚类的紧凑性不太好。
在这里插入图片描述

7. Training Process

初始化 (Initialization):图像编码器 (Encoder) 的初始化一般使用ImageNet Pre-trained Weights,混合记忆模型 (Hybrid Memory) 的初始化使用初始的编码器对所有的样本进行一次前向计算。

聚类和聚类离群值:在每个epoch前进行聚类,并根据聚类可靠性评价标准 (Cluster Reliability Criterion) 进行聚类的筛选,仅保留可靠的聚类,其余样本均视作聚类离群值。

网络和混合记忆模型的更新:在每个iteration中,首先利用编码器对mini-batch的样本进行特征编码,然后利用统一对比损失函数 (Unified Contrastive Loss) 进行网络的反向传播更新,最后利用编码的特征以动量更新 (Momentum Update) 的方式更新混合记忆模型 (Hybrid Memory) 。

参考链接:

https://zhuanlan.zhihu.com/p/146046066

https://zhuanlan.zhihu.com/p/272509525

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值