论文地址:ECCV 2020《Minimum Class Confusion for Versatile Domain Adaptation》
代码地址:https://github.com/thuml/Versatile-Domain-Adaptation
研究动机:之前的方法将源域和目标域的特征对齐,有可能降低特征的可区分性并阻碍可移植性[ 5 ],而且域对齐的归纳偏差在域不能自然对齐(例如部分集DA场景[ 2,3,51 ])时会受到影响。本文探索除域对齐之外的更通用的inductive bias,提出了一种通用域自适应(VDA),即一种方法可以处理几种不同的DA场景而无需任何修改。
研究思路:基于类混淆提出了一个通用的损失函数:最小类混淆( MCC )。类混淆,即分类器混淆目标示例的正确类和模糊类之间的预测的趋势
本文提出了一个一般的损失函数:最小类混淆(MCC):
(1)一种非对抗性的DA方法,无需域对齐,收敛速度更快;
(2)一种通用方法,可以处理四种现有场景:闭集,部分集,多源和多目标DA,在这些场景中优于最先进的方法。
可以用作与各种现有DA方法正交和互补的通用正则器,加速收敛。
使用场景:
Unsupervised Domain Adaptation (UDA);
Partial Domain Adaptation (PDA);
Multi-Source Domain Adaptation (MSDA);
Multi-Target Domain Adaptation (MTDA);
Multi-Source Partial Domain Adaptation (MSPDA);
Multi-Target Partial Domain Adaptation (MTPDA)
Y ^ t = G ( F ( X t ) ) ∈ R B × ∣ C ∣ \widehat{\mathbf{Y}}_t=G\left(F\left(\mathbf{X}_t\right)\right) \in \mathbb{R}^{B \times|\mathcal{C}|} Y t=G(F(Xt))∈RB×∣C∣
B B B:为batch size, ∣ C ∣ |C| ∣C∣:源域类别数, F F F:特征提取器, G G G:分类器, Y ^ \hat{\mathbf{Y}} Y^ 为分类器对于一个batch中样本的预测结果
根据[12],DNN倾向于做出overconfident prediction,阻碍了直接对类混淆进行推理。采用了temperature rescaling[14,12]来矫正这种过度自信预测的负面 影响。利用温度缩放,第i个样本属于第j类的概率重新校准为
第i个样本属于第j类的概率为
Y ^ i j = exp ( Z i j / T ) ∑ j ′ = 1 ∣ C ∣ exp ( Z i j ′ / T ) \widehat{Y}_{i j}=\frac{\exp \left(Z_{i j} / T\right)}{\sum_{j^{\prime}=1}^{|\mathcal{C}|} \exp \left(Z_{i j^{\prime}} / T\right)} Y ij=∑j′=1∣C∣exp(Zij′/T)exp(Zij/T)
Z i j Z_{i j} Zij是分类器层的logit输出, T \mathrm{T} T 是温度超参数,当 T = 1 \mathrm{T}=1 T=1 的时候退化为softmax。
定义两个类j和j′之间的类相关性为
C j j ′ = y ^ ⋅ j ⊤ y ^ ⋅ j ′ \mathbf{C}_{j j^{\prime}}=\widehat{\mathbf{y}}_{\cdot j}^{\top} \widehat{\mathbf{y}}_{\cdot j^{\prime}} Cjj′=y ⋅j⊤y ⋅j′
y ^ ⋅ j \widehat{\mathbf{y}}_{\cdot j} y ⋅j 定义为每个批次中 B B B 个样本属于第j类的概率。类别相关性测量分类器同时将 B B B 个样本分类到第 j j j 个和第 j ′ j^{\prime} j′ 个类别的可能性。这样定义的好处在于,对于一个具有较高置信度的错误预测,对应的类相关性仍然较低。也就是说,高置信度的错误预测对类别相关性的影响可以忽略不计。
不同类别的样本给出的信息量是不同的,因而对于类相关性的贡献也是不同的。当预测结果更接近均匀分布时,没有表现出明显的峰值(某些类别的概率明显偏大),我们认为分类器对这个样本一无所知。相反,当预测出现多个峰值时,表明分类器在多个歧义类(例如汽车和卡车)之间是犹豫的。显然,这些使得分类器跨类不明确的例子将更适合体现类混淆。引入基于不确定性的加权机制可以更准确地量化类混淆,使用信息熵作为分布不确定性度量:
H ( y ^ i . ) = − ∑ j = 1 ∣ C ∣ Y ^ i j log Y ^ i j . H\left(\widehat{\mathbf{y}}_{i .}\right)=-\sum_{j=1}^{|\mathcal{C}|} \widehat{Y}_{i j} \log \widehat{Y}_{i j} . H(y i.)=−j=1∑∣C∣Y ijlogY ij.
虽然熵是不确定性的度量,但我们想要的是一个概率分布,它将更大的概率放在类预测具有更大确定性的示例上。采用了类似于softmax的概率变换权重计算公式:
W i i = B ( 1 + exp ( − H ( y ^ i ⋅ ) ) ) ∑ i ′ = 1 B ( 1 + exp ( − H ( y ^ i ′ . ) ) ) , W_{i i}=\frac{B\left(1+\exp \left(-H\left(\widehat{\mathbf{y}}_{i \cdot}\right)\right)\right)}{\sum_{i^{\prime}=1}^B\left(1+\exp \left(-H\left(\widehat{\mathbf{y}}_{i^{\prime} .}\right)\right)\right)}, Wii=∑i′=1B(1+exp(−H(y i′.)))B(1+exp(−H(y i⋅))),
其中 W i i W_{i i} Wii是量化第i个样本对类混淆模型重要性的概率,W是对应的对角矩阵。取熵的相反值来反映确定性。拉普拉斯平滑[ 38 ] (即在softmax函数的每个加法项中增加一个常数1)用来形成一个重尾的权重分布,即能够更突出具有高确信度的样本,同时避免过度惩罚其他样本。为了更好地缩放,对每批大小为B的样本的概率进行了重新缩放,使得每个样本的平均权重为1。借助这种加权机制,类混淆的初步定义为
C j j ′ = y ^ ⋅ j ⊤ W y ^ ⋅ j ′ \mathbf{C}_{j j^{\prime}}=\widehat{\mathbf{y}}_{\cdot j}^{\top} \mathbf{W} \widehat{\mathbf{y}}_{\cdot j^{\prime}} Cjj′=y ⋅j⊤Wy ⋅j′
对于小批量SGD优化,类混淆自然定义为基于批次的。然而,当类数目较多时,在每一个批次中都会陷入严重的类不平衡(样本不均衡)。为了解决这个问题,我们采用了在随机游走中广泛使用的类别归一化技术[ 26 ]:
C ~ j j ′ = C j j ′ ∑ j ′ ′ = 1 ∣ C C j j ′ ′ \widetilde{\mathbf{C}}_{j j^{\prime}}=\frac{\mathbf{C}_{j j^{\prime}}}{\sum_{j^{\prime \prime}=1}^{\mid C} \mathbf{C}_{j j^{\prime \prime}}} C jj′=∑j′′=1∣CCjj′′Cjj′
如果两个类有很高的类混淆,那么从一个类走到另一个类(导致错误的分类)是可能的。
理想情况下,同一样本不会属于不同类别。而最小化类间混淆度意味着最大化类内混淆度。
C ~ j j ′ \widetilde{\mathbf{C}}_{j j^{\prime}} C jj′ 能够很好的衡量两个类间的混淆度,这里只需要最小化跨类别的混淆度即可(即 j ≠ j ′ j \neq j^{\prime} j=j′ ),最终得到损失函数的具体形式Minimum Class Confusion (MCC) :
L M C C ( Y ^ t ) = 1 ∣ C ∣ ∑ j = 1 ∣ C ∣ ∑ j ′ ≠ j ∣ C ∣ ∣ C ~ j j ′ ∣ L_{\mathrm{MCC}}\left(\widehat{\mathbf{Y}}_t\right)=\frac{1}{|\mathcal{C}|} \sum_{j=1}^{|\mathcal{C}|} \sum_{j^{\prime} \neq j}^{|\mathcal{C}|}\left|\widetilde{\mathbf{C}}_{j j^{\prime}}\right| LMCC(Y t)=∣C∣1j=1∑∣C∣j′=j∑∣C∣ C jj′
本文提出的针对多种域适应场景的通用性方法(为清晰起见,也用MCC表示)表述如下
min F , G E ( x s , y s ) ∈ S L C E ( y ^ s , y s ) + μ E X t ⊂ T L M C C ( Y ^ t ) \min _{F, G} \mathbb{E}_{\left(\mathbf{x}_s, \mathbf{y}_s\right) \in \mathcal{S}} L_{\mathrm{CE}}\left(\widehat{\mathbf{y}}_s, \mathbf{y}_s\right)+\mu \mathbb{E}_{\mathbf{X}_t \subset \mathcal{T}} L_{\mathrm{MCC}}\left(\widehat{\mathbf{Y}}_t\right) minF,GE(xs,ys)∈SLCE(y s,ys)+μEXt⊂TLMCC(Y t)
其中LCE是交叉熵损失, μ \mu μ是MCC损失的超参数。利用这种联合损失,深度DA模型的特征提取器F和分类器G可以通过反向传播进行端到端的训练。
以基于领域对抗训练的标准领域对齐框架[ 8、22]为例。将MCC损失作为正则化进行积分,得到
min F , G max D E ( x s , y s ) ∈ S L C E ( y ^ s , y s ) + μ E X t ⊂ T L M C C ( Y ^ t ) − λ E x ∈ S ∪ T L C E ( D ( f ^ ) , d ) \min _{F, G} \max _D \mathbb{E}_{\left(\mathbf{x}_s, \mathbf{y}_s\right) \in \mathcal{S}} L_{\mathrm{CE}}\left(\widehat{\mathbf{y}}_s, \mathbf{y}_s\right)+\mu \mathbb{E}_{\mathbf{X}_t \subset \mathcal{T}} L_{\mathrm{MCC}}\left(\widehat{\mathbf{Y}}_t\right)-\lambda \mathbb{E}_{\mathbf{x} \in \mathcal{S} \cup \mathcal{T}} L_{\mathrm{CE}}(D(\widehat{\mathbf{f}}), \mathbf{d}) F,GminDmaxE(xs,ys)∈SLCE(y s,ys)+μEXt⊂TLMCC(Y t)−λEx∈S∪TLCE(D(f ),d)
其中第三项为领域判别器D努力区分源和目标的领域对抗损失,d为领域标签, f ^ = F ( X t ) \hat{\mathbf{f}}=F(\mathbf{X}_t) f^=F(Xt)为学习到的混淆领域判别器的特征表示。整体框架是两个局中人F和D之间的极小极大博弈,其中 λ \lambda λ和 μ \mu μ是不同损失函数之间的权衡超参数。一般而言,MCC损失也很容易与其他代表性的领域自适应框架对接,例如矩匹配[ 21 ]和大范数[ 49 ]。
常规的UDA方法都在特征空间上处理,但是不同问题标签空间不同,因此方法不具备普适性。本文认为从不同域难以区分的类相同。本文的思路是不同类别间的混淆程度一致,可以通过分类器预测和它们的置换之间的示例加权内积自然地反映出来。类混淆通过分类器预测和它们的置换之间的示例加权内积,让样本在某个类上的概率更明确,只有在一个类上的概率明确接近为1,其他类的概率才会为0,那么整体相乘才会趋近为0。
(差异大的域难以区分的类不一定一样)