Category Contrast for Unsupervised Domain Adaptation in Visual Tasks
视觉任务中无监督域自适应的类别对比
摘要
无监督表征学习的实例对比(对比学习) → \rightarrow → 无监督域自适应的类别对比
1. 引言
- 无监督域自适应:
- DNNs 视觉任务良好,但跨域不匹配。
- 现有方法:
- adversarial loss 加强目标表示,使其类似源域
- image translation loss 将源图像转换为类似目标域的风格和外观
- self-training loss 用自信的伪标记目标样本迭代地重新训练网络
- 无监督对比学习:
- 从无标签数据中学习判别嵌入
- 实例对比方法可以被认为是字典查找任务,它通过将编码查询 q q q 与编码键 k k k 的字典匹配来训练视觉编码器:查询 q q q 应该与正例 k p o s k_{pos} kpos 相似,而与负例 k n e g k_{neg} kneg 不同。
- 正例一般为查询样本的随机增强,负例为其他所有样本。
- 动机:
- category-aware, domian-mixed 且 category-balanced 的UDA字典能够帮助学习有判别性且无偏的表示
- 工作:
- Categoty Contrast(CaCo):利用UDA相应的对比损失构建 category-aware 且domain-mixed 的字典
- L C a t N C E \mathcal{L}_{CatNCE} LCatNCE:同一类别的样本被拉近,而不同类别的样本被推远。
- Categoty Contrast(CaCo):利用UDA相应的对比损失构建 category-aware 且domain-mixed 的字典
- 分析:
- 通过 category-aware 字典,它同时最小化类内差异和最大化类间距离
- 通过 domain-mixed,实现域间和域内同步对齐
- 通过 category-balanced 极大地缓解了数据平衡问题,允许在学习过程中均匀地计算所有类别的对比损失。
- 总结:
- 探索了UDA的实例对比,旨在学习无标记目标域样本的判别表示
- 提出了类别对比的概念,建立了一个具有 category-aware 和 domain-mixed 的字典。它鼓励学习完全符合UDA目标的类别区分但领域不变的表示法。
- 实验证明,CaCo具有优越的UDA性能。此外,CaCo补充了先前的UDA方法,并推广到涉及未标记数据的其他学习设置。
2. Related Works
两个主要的相关工作:
2.1 无监督域自适应(Unsupervised domain adaptation,UDA)
- 目的:利用无监督的数据提高目标域上的性能
- 已有方法
- adversarial loss:驱动模型提取类似源的目标域特征表示
- image translation loss:生成具有目标域类似风格的源域数据
- self-training loss:用伪标记的目标样本迭代重新训练
2.2 实例对比学习(Instance Contrastive Learning)
- 目的:利用无监督的数据学习特征表示,其中正样本被拉到锚点附近,负样本被推离
- 思路:实例对比方法可以被认为是字典查找任务,它通过将编码查询 q q q 与编码键 k k k 的字典匹配来训练视觉编码器:查询 q q q 应该与正例 k p o s k_{pos} kpos 相似,而与负例 k n e g k_{neg} kneg 不同。
- 典型字典构建方法:
- memory bank:存储训练期间所有样本的 k k k
- momentum-encoded queue:动量编码队列,在线收集编码作为 k k k,先进先出
- end-to-end dictionary:当前 batch 的样本作为
k
k
k
- 应用在UDA中的局限性:
- 语义特征低级。实例对比学习类别先验少,偏向捕获丰富的低级特征,这对于依赖有区分性的高级语义特征的视觉任务(分类、检测和分割)来说是次优的。最近的研究证实了这一问题。
- 类别碰撞。大多数现有的实例对比学习方法采用了一个超大型/类别未知字典,可能会引入类别碰撞,其中负对共享相同的语义类别,但在特征空间中被不希望地推开。
- 工作独特性:提出的CaCo引入了一个范畴域混合字典,该字典引入了范畴先验,有效地解决了这两个问题。
3. Method
3.1. 形式化任务
- source domain: { X s , Y s } \{X_s, Y_s\} {Xs,Ys}
- target domain: X t X_t Xt
- baseline model G G G 在源域上训练得到
L s u p = l ( G ( X s ) , Y s ) (1) \mathcal{L}_{s u p}=l\left(G\left(X_s\right), Y_s\right) \tag{1} Lsup=l(G(Xs),Ys)(1)
3.2 实例对比学习预备知识
- 思想:为字典查找任务训练编码器
- 损失:
- query: q q q,keys: { k 0 , k 1 , … , k N } \{k_0, k_1, \dots, k_N\} {k0,k1,…,kN}
- InfoNCE损失:最小化它将把q拉到它的正键附近,并将它推离所有其他键(对q来说是负例):
L I n f o N C E = ∑ x q ∈ X − log ∑ i = 0 N 1 ( k i ∈ q ) exp ( q ⋅ k i / τ ) ∑ i = 0 N exp ( q ⋅ k i / τ ) (2) \mathcal{L}_{\mathrm{InfoNCE}}=\sum_{x_q \in X}-\log \frac{\sum_{i=0}^N \mathbb{1}\left(k_i \in q\right) \exp \left(q \cdot k_i / \tau\right)}{\sum_{i=0}^N \exp \left(q \cdot k_i / \tau\right)} \tag{2} LInfoNCE=xq∈X∑−log∑i=0Nexp(q⋅ki/τ)∑i=0N1(ki∈q)exp(q⋅ki/τ)(2)
3.3 UDA的类别对比
从实例对比学习的角度来研究UDA
- 概述:
- 模型:
- G ( ⋅ ) = h ( f q ( ⋅ ) ) G(\cdot) = h(f_q(\cdot)) G(⋅)=h(fq(⋅))
- query encoder: f q f_q fq,
- key momentum encoder: f k f_k fk,其中: θ f k = b θ f k + ( 1 − b ) θ f q \theta_{f_k} = b\theta_{f_k} + (1-b)\theta_{f_q} θfk=bθfk+(1−b)θfq
- 训练
- 源域数据监督训练:由公式 ( 1 ) (1) (1)优化
- 目标域无监督训练:
- 均匀地从源域和目标域采样 x k ∈ X s , X t x_k \in X_s, X_t xk∈Xs,Xt,利用 f k f_k fk 得到类别感知字典 K \mathsf{K} K
- 从目标域中采样 x q ∈ X t x_q \in X_t xq∈Xt,利用 f q f_q fq 得到 q k q_k qk 再利用 K \mathsf{K} K 进行类别对比学习
- 模型:
- 分类域混合字典
- category-aware:同类拉紧、异类推开
- domain-mixed:鼓励学习跨域的不变表示
- 定义:
- 字典 K = { k 1 , k 2 , … , k C } \mathsf{K} = \{k^1, k^2, \ldots, k^C\} K={k1,k2,…,kC},其中 k c k^c kc 表示其属于第 c c c 类
- 键 k k k 的预测类别标签 y ^ k \hat{y}_k y^k 由 arg max y ^ k ∑ c = 1 C y ^ k ( c ) log p ( c ; k , θ h ) , s.t. y ^ k ∈ Δ C , ∀ k \underset{\hat{y}_k}{\arg \max } \sum_{c=1}^C \hat{y}_k^{(c)} \log p\left(c ; k, \theta_h\right), \text { s.t. } \hat{y}_k \in \Delta^C, \forall k y^kargmax∑c=1Cy^k(c)logp(c;k,θh), s.t. y^k∈ΔC,∀k,其中 p p p 表示分类器 h h h 对 k k k 属于第 c c c 类的概率, Δ C \Delta^C ΔC为概率单纯形,保证属于C类的概率和为1.
- y ^ = \hat{y}= y^= ( y ^ ( 1 ) , y ^ ( 2 ) , … , y ^ ( C ) ) \left(\hat{y}^{(1)}, \hat{y}^{(2)}, \ldots, \hat{y}^{(C)}\right) (y^(1),y^(2),…,y^(C)) 为预测标签.
- 实践中,字典扩充为 M M M: i . e . , { k m c } 1 ≤ c ≤ C , 1 ≤ m ≤ M i.e., \{k^c_m\}_{1\leq c \leq C, 1\leq m \leq M} i.e.,{kmc}1≤c≤C,1≤m≤M,即每个类别的队列有 { k 1 c , k 2 c , … , k M c } \{k^c_1, k^c_2, \dots, k^c_M\} {k1c,k2c,…,kMc}
- 队列遵循先进先出
3.4 类别对比损失
定义:
- 已有 K = { k m c } 1 ≤ c ≤ C , 1 ≤ m ≤ M \mathsf{K} = \{k^c_m\}_{1\leq c \leq C, 1\leq m \leq M} K={kmc}1≤c≤C,1≤m≤M,目标域数据 X t X_t Xt
- L C a t N C E = ∑ x q ∈ X t − ( 1 M ∑ m = 1 M log ∑ c = 1 C exp ( q ⋅ k m c / τ m c ) ( y ^ q × y ^ k m c ) ∑ c = 1 C exp ( q ⋅ k m c / τ m c ) ) \mathcal{L}_{\mathrm{CatNCE}} = \sum_{x_q \in X_t}-\left(\frac{1}{M} \sum_{m=1}^M \log \frac{\sum_{c=1}^C \exp \left(q \cdot k_m^c / \tau_m^c\right)\left(\hat{y}_q \times \hat{y}_{k_m^c}\right)}{\sum_{c=1}^C \exp \left(q \cdot k_m^c / \tau_m^c\right)}\right) LCatNCE=∑xq∈Xt−(M1∑m=1Mlog∑c=1Cexp(q⋅kmc/τmc)∑c=1Cexp(q⋅kmc/τmc)(y^q×y^kmc)),其中 q = f q ( x q ) q = f_q(x_q) q=fq(xq), y ^ q × y ^ m c = 1 if refer to the same category else 0 \hat{y}_q \times \hat{y}_m^c = \text{1 if refer to the same category else 0} y^q×y^mc=1 if refer to the same category else 0
细节:
- L C a t N C E \mathcal{L}_{CatNCE} LCatNCE 与 L I n f o N C E \mathcal{L}_{InfoNCE} LInfoNCE 相似,后者可以解释为前者的特例,即每个实例及其增强为一个类别。
- CaCo中温度 τ \tau τ 由标签的不确定性 H ( ⋅ ) H(\cdot) H(⋅) 缩放。
- f q f_q fq 和 f k f_k fk 可以是相同的、部分共享或不同。
理论:CaCo可以被建模为期望最大化(EM)的一个例子
- 推论1:类别对比学习可以被建模为通过期望最大化(EM)优化的最大似然问题。
- 推论2:范畴对比学习在一定条件下是收敛的。
4. 实验
4.1 数据集
- 语义分割:
数据集 | 类别数 | 样本数 |
---|---|---|
GTA5 | 19 | 24,966 |
Cityscapes | 16 | 2,975+500 |
SYNTHIA | 16 | 9,400 |
任务:GTA5 → \rightarrow →Cityscapes,SYNTHIA → \rightarrow →Cityscapes
-
目标检测:
任务:Cityscapes → \rightarrow →Foggy Cityscapes,Cityscapes → \rightarrow →BDD-daytime -
图像分类:
数据集 | 类别数 | 域 | 样本数 |
---|---|---|---|
VisDA17 | 12 | 源域 | 152,409 |
目标域 | 55,400 | ||
Cityscapes | 16 | Amazon | 2817 |
Webcam | 795 | ||
DSLR | 498 |
4.2 实验细节
任务 | 架构 | 骨干网络 |
---|---|---|
语义分割 | DeepLabV2 | ResNet-101 |
目标检测 | Faster R-CNN | VGG16 |
图像分类 | ResNet101(VisDA17) | |
ResNet50(Office-31) |
4.3 对比实验
- 对比 CaCo-S(只用源域 keys)、CaCo-S(只用目标域 keys)和 CaCo(domain-mixed)
- 对比其他先进方法
- 其他先进方法 + CaCo
- 字典大小的影响
- 三种变体:
- 固定温度
- 使用两个单独的字典而非混合
- 按内存库或当前的小批量更新字典