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

完整文章移步:https://www.guyuehome.com/35271

论文

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

主要贡献

  • 提出Hybrid memory混合记忆模型
  • 在无监督方法中将聚类得到的异常值也加以利用
  • 提出统一对比损失
  • 提出聚类可靠性评估方法

Pipeline

  • 初始化1:在ImageNet上初始化cnn编码网络F
  • 初始化2:使用F对源域数据以及目标域数据编码
  • 初始化3:源域数据选择类中心存入Hybird memory,目标域数据所有特征存入Hybird menmory。
  • 训练1:使用F对输入的batch编码,与Hybird memory中的对应特征进行对比损失计算。
    • 如果属于源域则与Hybird memory中对应类的中心特征进行计算
    • 如果属于目标域聚类的类别,则与Hybird memory中聚类类别的类中心特征进行计算
    • 如果属于目标域聚类异常值,则与Hybird memory中同一个特征进行计算
  • 训练2:得到损失反向传播修正F
  • 训练3:使用F对源域数据以及目标域数据编码
  • 训练4:对特征进行聚类,使用聚类可靠性评估将不可靠的聚类拆成聚类异常值
  • 训练5:根据新的编码使用动量更新Hybird memory中对应的值
  • 重复训练步骤

对比损失公式

在这里插入图片描述

  • z+是表示特征向量f属于那个类别的特征,对应于pipline中的训练1中的分析
  • <a,b>表示a和b向量点乘,因为向量都L2 nomal处理了所以点乘来代替余弦计算
  • 分母就是特征向量与其他类别的余弦距离的计算和。
  • 整个式子优化到0则log的对数优化到1,则优化分子等于分母,即f和z+的距离最近其他都最小。

动量更新Hybird memory

对于源域类别的更新,对同一类别的图片编码的特征求均值对应更新Hybird memory同一类别:
在这里插入图片描述
对于目标域类别的更新,直接根据索引找到对应的向量更新:
在这里插入图片描述

聚类可靠性

通俗的说就是:一个可靠的聚类应当在多尺度的聚类环境下保持稳定。从每个点来看,正常聚类用一个面积为10的包围圈包括了它,然后用一个面积为8的包围圈也包括了他并且这次的包围圈和面积为10的包围圈包围相同的点的个数大于一个设置的阈值超参,然后用一个面积为8的包围圈也包括了他并且这次的包围圈和面积为12的包围圈包围相同的点的个数大于一个设置的阈值超参。满足上面两个条件这个点就属于聚类结果,不然就属于离群点。

SpCL的两种任务

任务一:UDA,无监督领域泛化
这个主要是利用源域的数据来优化目标域的性能,目标域数据无标签。

任务二:USL,无监督
只使用目标域的数据,且目标域数据无标签。

任务一和任务二在使用SpCl的主要区别在于对比损失的计算有差异(去掉了和源域类中心计算对比损失)以及memory存储的特征不同(不存源域的类中心特征)。
对于任务一,对比损失如下:

在这里插入图片描述
对于任务二,对比损失如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37668436/article/details/119148794