阅读笔记:Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID
paper: https://arxiv.org/pdf/2006.02713.pdf
code: Github: https://github.com/yxgeee/SpCL
参考请引用:
Ge, Y., Chen, D., Zhu, F., Zhao, R., & Li, H. (2020). Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID. ArXiv, abs/2006.02713.
背景:
- 现阶段行人重识别在训练第二阶段目标域fine tune的时候一般不再训练源域数据,或者发现如果将源域数据和目标域一起训练时性能会下降由于他们的框架限制,导致在第二阶段训练时无法充分利用有价值的源域数据。
- 为了确保聚类的准确性,现阶段的方法都适直接丢失在聚类中被归为离群值的样本。然而这是在目标域中有很多,并且很有价值的样本,直接丢弃有损于最后的性能。
贡献:
- 提出了一个统一的对比学习框架联合学习来自源域和目标域的融合数据。并且动态的更新混合memory提供class-level, cluster-level and instance-level supervisions
- 设计了一个聚类准确度标准可以自配速的对比学习,可以防止由噪声伪类标签带来的误差放大。它可以逐渐生成更可靠的目标域聚类簇,进一步提升性能
方法:
-
统一对比学习:
定义了一个同一对比损失 L f L_f Lf,目的是为了让相同类之间的相似度最高。
若f是源域样本,那z+是源域中和f同一类的类中心
若f是目标域中聚类簇样本,则z+是目标域聚类簇样本中和f同一簇的簇中心
若f是目标域中离群样本,则z+是目标域中离群样本中和f相匹配的样本(???论文中未说明)
W k W_k Wk: 源域第k个类别的类中心。 C k C_k Ck:目标域第K个聚类簇的簇中心。 v k v_k vk:目标域离群样本的第v个样本
Hybrid Memory:
目标:提供源域类中心,目标域聚类簇中心,目标域离群样本特征
方法:建立一个Hybrid Memory缓存源域类中心{ W 1 , … … , W n s W_1,……, W_{n^s } W1,……,Wns}和目标域所有样本特征{ v 1 , … … , n n t v_1, ……, n_{n^t } v1,……,nnt},作者假设目标域样本中索引{ 1 , … … , n 0 t 1,……,n_0^t 1,……,n0t}为目标域中离群样本,索引{ n 0 t + 1 , … … , n n t n_0^t+1, ……, n_{n^t } n0t+1,……,nnt}为聚类样本。
Memory initialization:
源域类中心:用源域训练好的模型提取源域样本特征,算出类中心;
目标域样本:用训练好的模型直接提取特征
目标域样本聚类簇中心:用初始化的样本进行DBSCAN聚类,然后计算簇中心
I k I_k Ik表示第k个类或聚类簇中的所有样本特征,|.|表示总数; 初始化只在训练最开始进行,后续epoch只进行不更新,不再初始化
Memory update:
源域类中心的更新:每一个Mini-batch中学习到特征后用ground-truth直接进行更新,ms=0.2
目标域聚类簇中心更新:①首先更新每一个目标域样本的特征:
②然后再一次用更新的特征去计算②式(参考源域类中心的更新) -
Self-paced Learning with Reliable Clusters
自配速策略:每一次epoch开始时进行重新聚类,只有最可靠的样本簇参与目标域聚类簇中心的更新,不可靠的样本归为un-clustered outliers。因此作者提出两个聚类可靠性评判标准:独立性和紧凑型(the independence and compactness).
独立性(Independence of clusters):
思想:如果一个聚类簇可靠性较高,那么当放松密度标准后的聚类簇应当并没有多出许多样本,即两个聚类簇之间的距离应当较大。
紧凑型(Compactness of clusters):
思想:如果一个聚类簇较可靠,那么当以更高的密度标准聚类后的聚类簇中应当并没有少出许多标准,即同一个聚类簇中的样本应当距离更紧密。我们在每一个epoch最开始的聚类后,要计算每个聚类簇中的点的独立性和紧凑型得分,只有 R i n d e p > α , R c o m p > β R_{indep}>α, R_{comp}>β Rindep>α,Rcomp>β时,才将这个点进行后续的类中心更新操作,否则就讲这个点归为un-clustered outliers。
随着模型参数 f θ f_θ fθ 和Hybrid Memory中所有目标域样本特征的不断更新,在epoch的不断更迭下,会逐渐有更可靠的聚类被生成,用于后续的训练。
实验结果:
可以看到在第四个试验源域类中心和目标域聚类带有自配速策略的试验已经大大提升了性能,说明这个自配速策略可以不断的生成更可靠的聚类簇,然后再加上un-clustered outliers之后,性能进一步提升,达到了最好的性能mAP77.5。
注意到:倒数第二个试验Oracle是采用了目标域标签在全监督情况下的结果,是作者方法的顶峰指标,可以看到与作者的域适应方法仅仅差了6个点,说明作者的聚类方法已经很接近用groud-truth监督的试验。
作者又说:
Note that previous unsupervised re-ID methods [25, 53] which abandoned outliers did not fail, since they did not utilize a memory bank that requires all the entries to be continuously updated.
这个直接丢弃un-clustered outliers操作导致性能大幅度下降作者说好像只出现在使用memory bank时。
作者说采用自配速聚类策略后,聚类的簇中心个数也逐渐接近真实的标签数,但是距离真实的标签数还有一些距离。
算法步骤: