记录读论文的过程,如果哪里不对,请各位大佬指正。
文章题目:Unsupervised Domain Generalization by Learning a Bridge Across Domains
文章地址:CVPR 2022 Open Access Repository
代码有无:有
Abstract:
The ability to generalize learned representations across significantly different visual domains, such as between real photos, clipart, paintings, and sketches, is a fundamental capacity of the human visual system. In this paper, different from most cross-domain works that utilize some (or full) source domain supervision, we approach a relatively new and very practical Unsupervised Domain Generalization (UDG) setup of having no training supervision in neither source nor target domains. Our approach is based on selfsupervised learning of a Bridge Across Domains (BrAD) an auxiliary bridge domain accompanied by a set of semantics preserving visual (image-to-image) mappings to BrAD from each of the training domains. The BrAD and mappings to it are learned jointly (end-to-end) with a contrastive selfsupervised representation model that semantically aligns each of the domains to its BrAD-projection, and hence implicitly drives all the domains (seen or unseen) to semantically align to each other. In this work, we show how using an edge-regularized BrAD our approach achieves significant gains across multiple benchmarks and a range of tasks, including UDG, Few-shot UDA, and unsupervised generalization across multi-domain datasets (including generalization to unseen domains and classes).
在截然不同的视觉领域(如真实照片、剪贴画、油画和素描之间)泛化所学表征的能力,是人类视觉系统的一项基本能力。在本文中,与大多数利用某些(或全部)源域监督的跨域工作不同,我们采用了一种相对较新且非常实用的无监督域泛化(UDG)设置,即在源域和目标域中都没有训练监督。我们的方法基于对跨域桥梁(Bridge Across Domains,BRAD)的自我监督学习,BRAD 是一个辅助桥梁域,并附有一组语义保存的视觉(图像到图像)映射,可从每个训练域映射到 BrAD。BrAD 及其映射与一个对比性自我监督表示模型共同学习(端到端),该模型将每个域与其 BrAD 投影进行语义对齐,从而隐式地促使所有域(见过或未见过)在语义上相互对齐。在这项工作中,我们展示了我们的方法如何利用边缘规则化 BrAD 在多个基准和一系列任务(包括 UDG、Few-shot UDA 和跨多域数据集的无监督泛化(包括对未见域和类的泛化))中取得显著收益。
0.abstract总结:
1.提出一种一种相对较新且非常实用的无监督域泛化(UDG)设置,即在源域和目标域中都没有训练监督。这种方法是基于BRAD的
2.介绍BRAD:BRAD 是一个辅助桥梁域,并附有一组语义保存的视觉(图像到图像)映射,可从每个训练域映射到 BrAD。BrAD 及其映射与一个对比性自我监督表示模型共同学习(端到端),该模型将每个域与其 BrAD 投影进行语义对齐,从而隐式地促使所有域(见过或未见过)在语义上相互对齐。
1.Introduction总结:
第一段:以人类视角举例引入,(个人感觉这种写法比较平易近人,让我有一种读下去的欲望)拥有可以在几乎无监督的情况下进行学习的基本能力。
第二段:介绍UDA和DG(以前的一些工作),从而引入UDG以及Few-Shot UDA (FUDA)
UDA:目标领域可以是一系列未标记的图像
DG:目标领域甚至可以在训练过程中完全不可见
对于 UDA 和 DG 来说,泛化的成功意味着所需的下游任务(分类、检测等)将成功转移到新的可见或未知领域。然而,在大多数 UDA 和 DG 工作中,都假定对预期的下游任务有丰富的源领域监督。(在现实生活中不常见,因为在现实生活中下游任务的数据没有那么丰富)
提出UDG和Few-Shot UDA (FUDA)。
本文目标:限制最少(在标注要求方面)的 UDG 设置,即在训练时不需要任何源域监督,而且进一步泛化到具有新的未见类别的全新未见视觉域。
第三段:介绍物体边缘(物体边缘似乎是我们观察到的所有领域的共同通用视觉表征。)
物体边缘是BrAD的方法支撑。
介绍是我们的方法(BrAD): "可学习的跨域桥梁"(Bridge Across Domains,BRAD)概念--这是一个辅助的视觉 "桥梁 "域,可以相对容易地在视觉上映射(在图像到图像的意义上)所有感兴趣的域。
过程简单介绍:BrAD 仅在我们的模型进行对比性自我监督训练时使用,用于将每个训练域的表征(特征)与共享 BrAD 的表征(特征)进行语义对齐。通过这种特征空间语义对齐的反转性,所有领域的学习模型表征都与 BrAD 对齐,从而隐式地相互对齐。这就使得推理不需要学习到 BrAD 的映射,从而使训练好的模型在测试时甚至可以泛化到新的未见领域(我们没有 BrAD 映射)。(此处为原文翻译)
小总结:即使是简单地启发式实现 BrAD 理念,将图像映射到其边缘映射,也能比不利用 BrAD 的强自监督基线有很好的改进。(我们的BrAD是有用处滴....)我们进一步表明,利用可学习的 BrAD,我们的方法在各种数据集和任务中(UDG、FUDA 以及一项针对不同领域和类别的泛化任务。)都取得了良好的效果(并且BrAD很厉害.......)
第四段:是个概括,我们的贡献如下:(以下为原文翻译)
(1) (我们提出一个什么东西,他具体能干啥)我们提出了一个可学习 BrAD 的新概念--一个辅助的视觉 "桥梁 "领域,它可以相对容易地从感兴趣的领域(可见或未见)中映射出来,并且可以驱动学习到的表征特征在跨领域的语义上保持一致(泛化);
(2) (他怎么做的)我们展示了如何利用 BrAD 概念结合自监督对比学习和一些额外的想法,为不同类型的受源标签限制的跨域任务训练有效(高效)的模型,包括 UDG、FUDA,甚至是在没有监督的情况下跨多域基准的泛化;
(3)(它具体有多牛) 我们展示了比 UDG 和 FUDA 分别显著提高 14% 和 13%.
我去查了一下语义对齐(因为原文里反复提及):
最初,相同领域的实例之间的距离比其他领域相同类别的实例之间的距离更近。
但是!最初流行的自我监督学习技术,往往会先于类别将域分开(注意,图上表达的就是这个意思)
作者提出的方法就是学习一个辅助桥梁域(边缘图像)(ps, 就是图里面灰色的图),它有助于跨域对齐同一类别的实例。
2.related work相关工作
Unsupervised Domain Adaptation (UDA):UDA是指将知识从有标记的源域转移到无标记的目标域。
Domain Generalization (DG)
Self-Supervised Learning (SSL)
Self-Supervised Learning for UDA and DG.
3. Method
一些定义:
作者目标是训练一个骨干模型 B,它能将任意图像 I投射到一个 d 维表示空间 ,然后做一个语义对齐。此外,总体目标是,这种语义对齐特性也将推广到其他领域,即使在训练过程中没有看到它们。
本篇文章的基本架构师来自于MOCO v2,作者列出了训练结构:
以上总结:
(1)Backbone (B)是训练后唯一保留的部分,其他部分仅用于训练,之后会被丢弃
(2)projection head ,并在顶部进行 L2 归一化
(3)由于域之间的分离比类之间的分离要容易得多,我们观察到,为所有域设置一个单一队列(如 [9] 所述)会降低性能(如第 4.4 节所述)(此处为原文翻译)
(4)一组图像到图像模型 Ψn : Dn → Ω,(将每个域 Dn∈ D 映射到共享的辅助 BrAD 域 Ω),这个跨域指的是跨越所有可见和未可见域 。
(5)域判别器 A :它是一种对抗式域分类器,只适用于 Ω 图像表征,并试图预测投射到 Ω 的任何图像 In∈Dn 的原始域索引 n。(这块什么原始索引我不太明白什么意思.....)
(6)The momentum models 动量编码器Bm and Pm:定义对比损失函数公式(1),
然后说了一堆解释(这块我看的糊了八嘟的反正,建议大家直接看英文,我看了中文翻译更懵逼了,最后后看了英文才明白一点点他在具体说什么......),最终是为了说:我们可以在训练后丢弃 BrAD 映射模型 Ψn 并将 B 应用于我们没有学习到 BrAD 映射的未知域。
公式(2)解释了动量编码器是如何形成队列的:(此处为原文翻译:每个批次处理完毕后,批次图像的 "动量 "表示将根据其源域(循环)排队)
通过这种方式保持队列,未来训练批次中的 Dn 图像不仅可以与其他 Dn 图像的 Ω 投影形成对比(在 F 中),还可以与来自 Dn 的其他图像形成对比,从而使我们的表示模型 B 能够用一些 Dn 特有的特征(如颜色特征)来补充其特定于 Ω 的特征集。此外,我们还使用了以下对抗损失:
在每批训练中,领域判别器 A 在阻断 B 和 Ψn 梯度的同时,使 Ladv 最小化,而 B 和 Ψn 则使负损失最小化: -Ladv,同时阻止 A 梯度。此外,为了减少 Ladv 和 Lcont 之间的 "竞争",我们直接在 B 生成的表征(最终特征)上使用域判别器 A,而不是在投影头 P 生成的表征(用于提高 Lcont 效率的临时特征)上使用域判别器 A。最后,我们定义了 BrAD 损失,它可以规范化 Ψn 模型,生成包含共享辅助 BrAD 域 Ω 的类边缘图像:(这块作者写的好明白,赞)
最后整合公式:
其中,在计算梯度以训练对抗域判别器 A 时,Ladv 前面的符号变为正数。
下面放一张传统MOCO和simclr的结构图以供对比:
Implementation details.
我们的代码1 采用 PyTorch [11],基于 [9] 的代码。我们在实验中设定 α1, α2, α3 = 1。骨干 B 在 UDG 实验中使用 ResNet-18 [20](与 [68] 相同),在 FUDA 和跨基准泛化实验中使用 ResNet-50(与 [26] 相同)。我们使用了大小为 256 的批次、动量为 0.9 的 SGD、余弦 LR-schedule(从 LR 0.03 到 0.002),并对 FUDA 训练了 250 个 epochs,对 UDG 训练了 1000 个 epochs(与 [68] 相同)。我们设置 |Qn| = min(64K,2 - |Dn|),并只存储由每个域图像 In 及其 Ω 投影(Ψn)生成的一对(动量)表示。此外,我们发现在计算 Lnce(q, k+, k-) 损失时,将 q 的缓存版本从其 k- 负键集中排除会略有好处。对于 A,我们使用了带有 LeakyReLU 的 3 层 MLP(1024, 512, 256),然后是线性域分类器。对于 BrAD 映射模型 Ψn 架构,我们使用了 HED [62] 在其 PyTorch 实现 [40] 中的架构。(此处为翻译)
4. Results
由于我们的 BrAD 方法在训练过程中完全不受监督,因此我们使用了无监督或有限监督的跨域任务,特别是无监督域泛化(UDG)[68] 和 Few-shot UDA(FUDA)[26, 65],来评估其性能,并与其他自监督或源标签受限的跨域方法进行比较。此外,我们还评估了 BrAD 和其他自监督方法在大规模无标记跨域数据(如 DomainNet [43])上进行训练后,对未知域和未知类的泛化情况。(此处为翻译)
Datasets.
DomainNet:6 domains: Real, Painting, Sketch, Clipart, Infograph and Quickdraw
PACS:4 domains: Photo, Art, Cartoon and Sketch
VisDA
officeHome:4 domains: Art, Clipart, Product and Real
4.1. Unsupervised Domain Generalization
先定义了UDG步骤 (i) 在一组源域上进行无监督训练;(ii) 仅使用源域图像的一小部分标注子集,在无监督模型产生的(冻结)特征之上拟合线性分类器;(iii) 在一组目标域上评估由此产生的分类器性能,这些目标域在训练期间未见过。
DomainNet :用 Clipart、Infograph 和 Quickdraw 进行训练,然后使用未见过的 Painting、Real 和 Sketch 进行测试。
PACS ,我们使用其他三个域作为源,进行了单域测试(在所有域中重复进行)。DIUL [68]在源标签量达到源数据量的 10% 时使用了额外的全模型微调,而我们的自监督模型则不同,它从未使用源标签进行过微调(在所有情况下)。此外,我们还为我们的方法提供了 kNN 结果,我们直接使用我们得出的特征,而无需任何额外的训练。
table1的几个对比:这个是在domainnet的实验
对比以前的模型,我们的更好;对比KNN;对比微调标签数据的占比
table2:在PACS的实验,对于每个目标域,其他 3 个域均用作训练源域。
4.2. Few-shot Unsupervised Domain Adaptation
数据集:DomainNet 4 domains: Clipart, Real, Painting and Sketch
实验细节:作者沿用了文献 [65] 中定义的 FUDA 协议,其中源域的每个类别都有一张(1 张)或三张(3 张)已标记图像,其余图像均为未标记图像。为了重复性起见,我们在每种情况下都使用了与 [65] 所提供的相同类别和标记样本的精确指数。
文章中反复提及的文献65链接:CVPR 2021 Open Access Repository
文献65这篇文章以后会写(计划中)
总结在图3中:
作者用了两种模式训练:
在预定模式下(表 3 中的ours),我们对所有领域联合训练一个模型。
在配对模式下(表 3 中的 "我们的配对模式"),我们对 7 个单独的模型进行训练,每个源-目标域对训练一个模型。
4.3. Generalization to unseen domains and classes
这一小节没说很多内容,大概就是做了一些对比试验。
为了测试领先的自监督方法 [5, 6, 9, 10, 66](这里就是表格里模型的名称Dino,SWAV,SimSiam,BarlowTwins,MoCo v2) 如何处理所提出的情况(泛化到可见和未知领域的混合,以及大部分未知类别),并将其性能与我们的方法进行比较,我们进行了以下跨数据集 FUDA 泛化实验,实验结果见表 4。
结果如图:
4.4. Ablation Studies
这段主要讲消融实验
具体来说,作者展示了在 DomainNet 上的 1 次/3 次 FUDA 中,MocoV2 [9]开始并添加新内容所产生的模型的平均性能是如何演变的:
(i) DD: a domain discriminator (A in Eq. (3)) - on its own it has a minor impact on performance (-0.3/+0.1);
(ii) MQ: multiple negative queues (Qn) for contrastive loss - adds good boost to 1-shot case (+4.2/+0.4) on its own, and strong boost for both modes when combined with DD (+3.8/+6.0);
(iii) Canny BrAD: Ψn in heuristic Canny [4] edge detector form - leads to a very strong performance boost (+10.9/+11.9) underlining the effectiveness of the BrAD idea;
(iv) HED BrAD: Ψn being a frozen HED [62] edge detector pre-trained on BSDS500 [1] dataset - we observe that even using a strong pre-trained edge detector model is not sufficient to further improve relative to the simpler Canny BrAD (-1.7/-1.8), this clearly highlights that BrAD models Ψn need to be learned jointly (end-to-end) with the representation model B as we propose in our main approach; (v) learned BrAD: Ψn being a HED [62] model trained end-to-end with the other components of our BrAD approach as described in Sec. 3 - underlining the need to learn the BrAD Ψn models, this introduces a noticeable boost relative to the heuristic Canny BrAD (+2.8/+2.3) and overall compared to not using BrAD (+13.7/+14.2); (vi) Typical examples of comparison of edges generated by Canny, pretrained HED [62], and our learned BrAD are shown in Fig. 3 - as can be seen, both BrAD and HED discard the background noise, but unlike HED, BrAD learns to retain semantic details of shape and texture like house windows, giraffe spots, or person arm (additional examples are provided in Appendix A); (vii) Transductive / ImageNet pretrained: according to the FUDA experimental setting of PCS [65], used for all methods in our FUDA evaluation in Sec. 4.2, training starts from an ImageNet pretrained model and transductive paradigm is used for the unlabeled domains data - we have verified that the transductive setting consistently adds ∼ 4% regardless of pretraining, while ImageNet pretraining has a more significant impact, adding ∼ 10% to the performance.
以下为翻译
(i) DD:域判别器(公式 (3) 中的 A)--单独使用时对性能影响较小(-0.3/+0.1);
(ii) MQ:用于对比损失的多重负队列 (Qn)--单独使用时对单发情况有很好的提升(+4. 2/+0.4),当与 DD 结合使用时,两种模式都有很强的提升(+3.8/+6.0);
(iii) Canny BrAD:启发式 Canny [4] 边缘检测器形式的 Ψn - 带来了非常强的性能提升(+10.9/+11. 9),强调了 BrAD 思想的有效性;
(iv) HED BrAD:Ψn 是在 BSDS500 [1] 数据集上预先训练的冻结 HED [62] 边缘检测器--我们观察到,即使使用强大的预先训练的边缘检测器模型,也不足以进一步提高相对于更简单的 Canny BrAD 的性能(-1. 7/-1.8),这清楚地表明 BrAD 模型 Ψn 需要与我们在主要方法中提出的表示模型 B 共同学习(端对端);
(v)学习的 BrAD:Ψn 是一个 HED [62] 模型,与我们的 BrAD 方法的其他组成部分一起进行端对端训练,如第 3 章所述。(vi) 图 3 显示了 Canny、预训练的 HED [62] 和我们学习的 BrAD 所生成的边缘的典型对比示例。
(vii) Transductive / ImageNet 预训练:根据 PCS 的 FUDA 实验设置[65],我们在第 4.2 节的 FUDA 评估中使用了所有方法。4.2 中的 FUDA 评估中所有方法都采用了这一实验设置,即从 ImageNet 预训练模型开始训练,并对未标记的领域数据采用转导范式--我们已经验证,无论采用哪种预训练,转导设置都能使性能提高 4%,而 ImageNet 预训练的影响更为显著,能使性能提高 10%。
后面就是作者写得的具体操作了,说实话看的有点糊涂,我研究一下,有新的进度会在这继续更新
5. Conclusions and Limitations
Conclusion
In this paper, we have proposed a novel self-supervised cross-domain learning method based on semantically aligning (in feature space) all the domains to a common BrAD domain - a learned auxiliary bridge domain accompanied with relatively easy to learn image-to-image mappings to it. We have explored a special case of the edge-regularized BrAD - specifically driving BrAD to be a domain of edgemap-like images. In this implementation, we have shown significant advantages of our proposed approach for the important limited-source-labels tasks such as FUDA and UDG, as well as for a proposed task of generalization between cross-domain benchmarks to potentially unseen domains and classes. We observed a significant improvement over previous unsupervised and partially supervised methods for these tasks. Future work may also include exploration of the edge-like transforms used here as potentially useful augmentations for contrastive SSL in general.
在本文中,我们提出了一种新颖的自监督跨域学习方法,该方法基于将所有域(在特征空间中)语义对齐到一个共同的 BrAD 域--一个学习过的辅助桥域,并伴有相对容易学习的图像到图像映射。我们探索了边缘规则化 BrAD 的一个特例--特别是将 BrAD 驱动为一个类似边缘地图的图像域。在这一实施过程中,我们展示了我们提出的方法在 FUDA 和 UDG 等重要的有限源标签任务中的显著优势,以及在跨领域基准到潜在未知领域和类别之间的泛化任务中的拟议优势。在这些任务中,我们观察到比以前的无监督和部分监督方法有了明显改善。未来的工作还可能包括探索这里使用的类边缘变换作为一般对比 SSL 的潜在有用增强功能。
Limitation
Limitations of the current paper include: (i) intentional focusing only on edge-like bridge domains, which is one of the simplest BrAD one may construct. Naturally this bares limitations, e.g., lowering the relative importance of representing non-edge related features such as color. Thus, exploring other non-edge bridge domains is an important topic for future work; (ii) our current approach is built on top of a very useful, yet a single SSL method, namely, MoCo [9]. A direct extension could be employing our approach on top of a vision transformer backbone using the SSL method of [6], or more broadly, making it applicable to any SSL method; (iii) finally, our approach being completely unsupervised in pre-training, lacks control over which semantic classes are formed in the learned representation space, which is a common problem shared with most current SSL techniques that might lead to missing the classes that are under-represented in terms of different instance count in the unlabeled data. Addressing this in a follow-up work may include adding such control via some form of zero-shot or few-shot priming, or by training with coarse labels [3].
本文的局限性包括 (i) 故意只关注类似边缘的桥域,这是可构建的最简单的 BrAD 之一。当然,这也有其局限性,例如,降低了表示颜色等非边缘相关特征的相对重要性。因此,探索其他非边缘桥域是未来工作的一个重要课题;(ii) 我们目前的方法建立在一个非常有用但单一的 SSL 方法(即 MoCo [9])之上。直接的扩展可以是在使用 [6] 的 SSL 方法的视觉转换器骨干之上采用我们的方法,或者更广泛地说,使其适用于任何 SSL 方法;(iii) 最后,我们的方法在预训练中完全是无监督的,缺乏对所学表征空间中形成的语义类别的控制,这是当前大多数 SSL 技术的共同问题,可能会导致遗漏未标记数据中不同实例数量代表性不足的类别。在后续工作中要解决这个问题,可能需要通过某种形式的零次或少数次引物,或通过粗标签训练来增加这种控制[3]。
后续还会更新一些,感觉自己的知识储备不是很够用,大概也是看明白了是怎么回事了,一些小小的细节还需要进一步学习,谢谢大家看到这里啦。