Minimum Class Confusion for Versatile Domain Adaptation论文笔记


关键词:域适应(Domain Adaptation,DA)
本篇论文出自ECCV 2020《Minimum Class Confusion for Versatile Domain Adaptation》[^1]

1 动机阐明

现有的DA方法往往针对特定的问题进行设计,对于特定的场景表现不佳。本文设计了一种多功能域适应,旨在一个方法不经过的境况下处理多种DA问题,具体如下图所示:

  1. Unsupervised Domain Adaptation (UDA);
  2. Partial Domain Adaptation (PDA);
  3. Multi-Source Domain Adaptation (MSDA);
  4. Multi-Target Domain Adaptation (MTDA);
  5. Multi-Source Partial Domain Adaptation (MSPDA);
  6. Multi-Target Partial Domain Adaptation (MTPDA)

VDA
这里简单说一下个人的理解:常规的UDA方法都在feature space空间上做文章,但是对于不同的上述问题而言,label space是不同的,不能直接套用。本文的思路就是从class confusion出发,因为类别间的混淆程度无论是在源域还是目标域都是一致的。

类混淆:分类器混淆目标域上正确类和歧义类之间的预测的趋势
class confusion

2 方法介绍

先引入几个简单符号:

  • y i ⋅ \mathbf{y}_{i \cdot} yi:第i行
  • y ⋅ j \mathbf{y}_{\cdot j} yj:第j列
  • Y i j \mathbf{Y}_{i j} Yij:矩阵 Y \mathbf{Y} Y的第(i,j)个元素

对于 Y ^ = G ( F ( X ) ) ∈ R B × ∣ C ∣ \hat{\mathbf{Y}}=G(F(\mathbf{X})) \in \mathbb{R}^{B \times |C|} Y^=G(F(X))RB×C,其中 B B B为batch size, ∣ C ∣ |C| C为源域数据类别数, F F F为特征提取器, G G G为分类器。这里可以理解 Y ^ \hat{\mathbf{Y}} Y^为分类器对于一个batch中样本的预测结果。

概率缩减

由于我们更希望关注于分类器的预测信息,使得预测结果不会偏向于其中几类,这里采用了temperature rescaling:
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=1Cexp(Zij/T)exp(Zij/T)

其中, Y ^ i j \hat{Y}_{ij} Y^ij表示第 i i i个样本属于 j j j类别的概率。 Z Z Z为分类器输出的结果。 T T T为温度系数,可作为超参进行调整。显然当 T = 1 T=1 T=1时,上式即为为softmax函数。

类相关性

由于 Y ^ i j \hat{Y}_{ij} Y^ij揭示了第i个实例和第j个类之间的关系,文中将两个类 j j j j ′ j^′ j之间的类相关性定义为
C j j ′ = y ^ ⋅ j ⊤ y ^ ⋅ j ′ C_{jj^′}=\hat{\mathbf{y}}_{\cdot j}^{\top}\hat{\mathbf{y}}_{\cdot j^′} Cjj=y^jy^j

而这也是对类混淆的粗略估计。直观上来说, y ^ ⋅ j \hat{\mathbf{y}}_{\cdot j} y^j表示每个batch中 B B B个样本来自第 j j j类的概率,而这种类别相关性衡量分类器同时将 B B B个样本分为第 j j j类和第 j ′ j^′ j类的概率。值得一提的是,这样定义的好处在于,对于一个具有较高置信度的错误预测,对应的类相关性仍然较低。也就是说,高置信度的错误预测对类别相关性的影响可以忽略不计。

不确性度量

由于不同类别的样本给出的信息量是不同的,因而对于类相关性的贡献也是不同的,对于一个样本 i i i,文中采用信息熵作为其不确定性度量:
H ( y ^ i ⋅ ) = − ∑ j = 1 ∣ C ∣ Y ^ i j log ⁡ Y ^ i j H(\hat{\mathbf{y}}_{i \cdot})=-\sum_{j=1}^{|C|} { \hat{Y}}_{ij} \log{\hat{Y}_{ij}} H(y^i)=j=1CY^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 .}\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_{ii} Wii是量化第 i i i个样本对类混淆建模的重要性的概率, W W W为相应的对角矩阵。这里加1是在做一次Laplace Smoothing,使之形成一个重尾分布( h e a v i e r − t a i l e d heavier-tailed heaviertailed weight distribution),即能够更突出具有高确信度的样本,同时避免过度惩罚其他样本。为了更好地缩放,每个大小为B的批次中的示例的概率被重新缩放为总和为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 jWy j

类正则化

上式还存在一个问题就是,当类别数很多的时候,在一个batch中可能存在样本不均衡问题,这里采用了一种随机游走的策略:
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′′=1CCjj′′Cjj

即如果两个类有较高的类混淆,则有可能从一个类走到另一个(导致错误的分类)。

直观上来看,两个类混淆度较为相似,则得到的 C ~ j j ′ \widetilde{\mathbf{C}}_{j j^{\prime}} C jj也十分接近。

最小化类混淆度

由于 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)=C1j=1Cj=jC C jj

即理想情况下,同一样本不会属于不同类别。而最小化类间混淆度意味着最大化类内混淆度。

参考文献

[^1]:Jin等, 《Minimum class confusion for versatile domain adaptation》.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
# DDC-transfer-learning A simple implementation of Deep Domain Confusion: Maximizing for Domain Invariance which is inspired by [transferlearning][https://github.com/jindongwang/transferlearning]. The project contains *Pytorch* code for fine-tuning *Alexnet* as well as *DDCnet* implemented according to the original paper which adds an adaptation layer into the Alexnet. The *office31* dataset used in the paper is also used in this implementation to test the performance of fine-tuning *Alexnet* and *DDCnet* with additional linear *MMD* loss. # Run the work * Run command `python alextnet_finetune.py` to fine-tune a pretrained *Alexnet* on *office31* dataset with *full-training*. * Run command `python DDC.py` to fine-tune a pretrained *Alexnet* on *office31* dataset with *full-training*. # Experiment Results Here we have to note that *full-training* protocol, which is taking all the samples from one domain as the source or target domain, and *dowm-sample* protocol, which is choosing 20 or 8 samples per category to use as the domain data, are quite different data preparation methods with different experiment results. | Methods | Results (amazon to webcame) | | :------: | :------: | | fine-tuning Alexnet (full-training) in *Pytorch* | Around 51% | | DDC ( pretrained Alexnet with adaptation layer and MMD loss) in *Pytorch* | Around 56% | # Future work - [ ] Write data loader using *down-sample* protocol mentioned in the paper instead of using *full-training* protocol. - [ ] Considering trying a tensorflow version to see if frameworks can have a difference on final experiment results. # Reference Tzeng E, Hoffman J, Zhang N, et al. Deep domain confusion: Maximizing for domain invariance[J]. arXiv preprint arXiv:1412.3474, 2014.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值