无源域适应(SFDA)方向的领域探究和论文复现(第一部分)

一.领域综述

\quad\quad领域自适应(DA)的目标是通过源数据驱动的两阶段框架为目标域重用源域知识。首先,收集源数据并进行标注,以训练源模型P。接着,自适应阶段是利用未标记的目标数据和已标记的源数据对预先训练好的模型P进行微调,得到目标模型Q。在无源数据域自适应(SFDA)场景中,未标记的目标XtX^tXt只能从预先训练好的源模型P中提取有价值的知识,而不能直接接触使用源域数据。为了实现这一点,一种方法是通过自监督训练来利用目标样本,另一种方法是重构虚拟源数据以进行知识转换。没有特定说明的情况下,源模型和目标模型通常共享相同的模型体系结构。

1.1自适应训练

\quad\quad[1]和[2]是SFDA领域两个先驱性的研究,他们主要研究的是解决目标域标签少的问题。只拥有一个预训练模型P和无标签的目标数据XtX^tXt,一个直接的适应方法是生成一组噪声伪标签:
Y~t=arg⁡max⁡P(Xt)\tilde{Y}^{t}=\arg \max \mathcal{P}\left(X^{t}\right) Y~t=argmaxP(Xt)
\quad\quad然后通过以下方式对目标模型Q进行微调:
min⁡QLadap (Q∣Xt,Y~t)\min _{\mathcal{Q}} \mathcal{L}_{\text {adap }}\left(\mathcal{Q} \mid X^{t}, \tilde{Y}^{t}\right) Qmin​Ladap ​(Q∣Xt,Y~t)
\quad\quad其中Ladap \mathcal{L}_{\text {adap }}Ladap ​是适应性损失函数。事实上,由于生成的伪标签容易出错,这可能误导目标模型。

\quad\quad来源于半监督学习的一些源驱动的DA方法[3],[4]通过探索为目标集生成可信度最高的伪标签来逐渐完善模型。在这种情况下,源集参与了联合训练,避免了在训练过程中源域知识被遗忘。在源域数据缺失的条件下,具有可靠的伪标签Y^t\hat{Y}^tY^t的目标数据对校准模型Q非常重要。如下图所示,有两种主要的方式用来探索可靠和有价值的目标样本用于自监督,即伪标签聚类和过滤。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PAwbGJrC-1656066484884)(C:\Users\86133\AppData\Roaming\Typora\typora-user-images\image-20220623173732567.png)]

图1
1.1.1伪标签聚类法

\quad\quad如图1(a)所示,噪声伪标签可以首先由源模型输入目标数据生成。然后,他们可以通过聚类算法被进一步分类。基于带有标定伪标签的目标数据,可以学习目标模型。伪标签聚类的思想是:通过预先训练好的源模型对部分目标样本正确预测,在和他们有关系的目标域中发挥作用。

\quad\quad作为一项早期研究,Liang等人[5]在最近临分类器的基础上建立了一种方法,寻找目标中心点移动的子空间,并迭代地使之移动越来越小。后来,受假设转移学习(HTL)的启发,Liang等人提出了源假设转移(SHOT)[6]框架。它冻结了源模型的分类器,并学习了目标特定的特征提取器。这是通过信息最大化和自监督伪标签来实现的,以隐方式将目标领域的特征和源假设对齐。事实上,信息最大化是为了迭代地减少预测的不确定性,这与数据驱动的DA相似。此外,伪标签是通过加权k-means聚类和最近邻分类器获得的。之后,他们用一种新的标签转移策略进一步扩展了SHOT,称为SHOT++[7]。它根据预测的置信度将目标数据分成两个部分,然后通过半监督学习来提高目标域中置信度较低的预测的准确性。此外,Tang等人[8]在遵循SHOT[6]的基础上,引用入了渐进式KD和Mixup技术。Chen等人[9]利用自适应批量归一化来更新目标数据,然后通过深度转移聚类生成伪标签。此外,他们将目标集分成干净和嘈杂的部分,用指数动量平均法(EMA)进行稳定训练。G-SFDA[10]是一种广义的SFDA方法,它将局部结构聚类和稀疏领域统一了起来。前者利用特征空间中的局部邻域信息,将每个目标实例与其最近邻进行聚类,以实现自监督适应,而后者旨在通过正则化反向传播的梯度保持源域的信息。Tang等人[11]提出了隐藏在单个数据的局部几何中的语义约束,以鼓励对目标域进行稳健的聚类。他们还在新的几何学中引入语义可信度约束。Yang等人[12]通过定义目标数据的局部亲和力来利用内在的邻域结构,以鼓励类与邻域亲和力的一致性。

\quad\quad除了解决SFDA的基本挑战外,还有一些专注于其他特定SFDA场景的工作。USFDA[13]是一个两阶段的学习框架,用于解决普遍的无源域适应问题。在刚开始的阶段,它为未来的无源部署模型配备了一个人工生成的负面数据集。这促使了一个分类良好的紧密源集群的生成。在部署阶段,它通过利用源相似性指标来定义无源域适应目标。为了解决多源无数据适应问题,Ahmed等人利用了信息最大化和基于聚类的伪标签策略,对所有源模型的目标标签进行加权组合。基于SHOT,Agarwal等人提出了一个新的问题,即在无源环境下的无监督鲁棒域适应。类似的,Yang等人[14]将SHOT扩展到了基于Transformer的网络,并提出了一个带有EMA的自我蒸馏SFDA框架,将聚类标签知识转移到目标网络。与现有的专注于训练阶段的方法不同,T3A[15]专注于领域泛化发的测试阶段。它用无标签的目标数据为每个类别计算出一个伪原型表示,然后根据每个样本与伪原型的距离进行分类。

1.1.1伪标签过滤

\quad\quad尽管没有源数据,一些目标样本可以分布在源域的周围,并且和源域非常相似。因此,这些目标样本可以被用来近似地描述源域。这类SFDA方法通常通过将目标数据分成两个子集来过滤目标伪标签,即伪源集和剩余的目标集。它们分别对应于源假设保持和目标知识探索。图1(b)描述了伪标签过滤策略的原理。

\quad\quadKim等人[16]观察到,由预训练的源模型测量的自熵较低的目标样本有可能被正确分类。为此,他们选择熵值小于0.2的可靠样本进行目标模型训练。所选样本的伪标签由源模型生成。BAIT[17]将当前批次分成两组,它为最小化整个双分类器架构的分歧找到了潜在的游走特征。CAiDA[18]是在没有源数据的情况下,对从多个源域到未标记的目标域的知识适应性的先驱性探索。它开发了一个语义最近的自信锚,以选择自监督适应的伪标签。它还设计了一个类关系意识的一致性损失,以确保语义的一致性。此外,它从理论上证明了在一些温和的假设下,多源模型可以提高获得更可靠的伪标签的可能性。Huang等人[19]建立了一个历史对比学习(HCL)范式,而不是僵硬地分割目标数据集,并为每个样本分配特定的权重以决定其在自监督训练中的影响,具体来说,他们从实例层面和类别层面设计了两种历史对比辨别策略,利用历史来源假设,学习辨别性的目标表征。A2A^2A2Net是一种自适应的对抗性网络,他包括三个方面的组成部分:(1)适应性对抗推理是为了发现在双分类器结构下,源相似和源不相似的目标样本。(2)对比性类别匹配是为了在目标样本的两个部分之间进行类别匹配。(3)自监督的旋转旨在增强模型以学习额外的语义。Du等人[20]也将目标数据分成两个不相干的部分,即伪源部分和剩余的目标部分,并且采用MixUp策略来对齐分布。

\quad\quad与常见的SFDA场景不同,Zhang等人[21]研究了预训练的模型被视为一个黑盒,只有预测可以访问的设置。他们提出了一种迭代噪声标签学习(IterNLL)算法,该算法在用过滤的目标子集改进目标模型和通过统一的先验假设更新噪声标签之间交替进行。

\quad\quad值得注意的是,由于聚类算法的限制,带有伪标签聚类的SFDA方法只自然地支持分类任务。但是,由于预测图的可分性,伪标签过滤算法可以应用于其他复杂任务,如语义分割和物体检测。

1.2应用

\quad\quad前文已经说明了不同种类的SFDA分类方法,从理论原理到具体实施。以下简要介绍以下SFDA的具体应用,即语义分割和物体检测。

1.2.1语义分割

\quad\quad语义分割是一项像素级的预测任务,旨在为图像的每个像素分配一个语义类别标签。分割模型的预测输出是一个标签图。因此,图像层面的伪标签聚类策略并不适合这项任务。然而,伪标签图可以根据预测置信度分成正负两部分。只有正部分被用来通过自监督训练来更新模型。在次基础上,虚拟源知识转移方法可以很容易地扩展到语义分割模型。大多数的SFDA方法遵循基于伪标签过滤和信息最大化的自监督训练范式,这对于分割来说简单而有效。[22]是SFDA用于分割的开创性研究,但它利用了预先存储的源域元数据,这不能满足SFDA的隐私要求。TENT[23]创新地对BN层中的归一化和转换参数进行简单的微调,以适应目标模型,仅仅需要较少的计算量,就能拥有较大的改进。You等人[24]提出通过混合源和目标统计量来校准BNS,以减轻域转移,并在进行测试时保留鉴别性结构。SF-OCDA[25]提出了交叉补丁式的交换和光度变换来模拟风格的变化,这可以促进模型在语义分割中的表现。除了在选定的像素上通过熵值最小化来更新模型外,You等人还引入了负学习来判断负类别。DAS3DAS^3DAS3[26]采用 ClassMix技术来合并难和容易的分割来正则化半监督技术。S4T建立了一个选择性自我训练框架,以减少图像的不同视图之间的不一致性。[27]和[28]都采用了一个发生器来生成基于BNS的图像,将源域知识转移到目标模型。此外,他们还在目标模型之后引入了一个判别器,以最小化正负分裂之间的误差。

1.2.2物体检测

\quad\quad物体检测是一个长期的挑战,其目的是预测物体的边界和相应的类别。领域自适应物体检测任务对准了图像和物体两个层面。而检测模型的预测图也是可分的,与语义分割类似。

\quad\quadSFOD[29]首先试图通过将物体检测建模为一个带噪声标签的学习问题来解决物体检测中的SFDA。由于伪标签的质量参差不齐,它引入了一种度量方法(名为自熵下降)来搜索过滤可靠伪标签的近似阈值。Xiong等人[30]向目标数据添加扰动,构建了一个超级目标域,协助探索领域不变和特定的空间。通过三种一致性正则化,该模型可以将目标域与源域进行空间对齐。

二.数据集介绍

\quad\quadSFDA方向的论文主要应用了以下四个数据集:

$\quad\quad$1.Office数据集(Saenko等人,2010),这是一个标准的DA基准测试,它包含三个域(Amazon(A)、DSLR(D)和Webcam(W)),每个域由办公环境下的31个对象类组成。(Gongetal,2012)进一步提取了Office和Caltech-256 ©之间的10个共享类别,并形成了一个名为Office-Caltech的新基准数据集。这两个基准数据集都比较小,图片数量不太多。

$\quad\quad$2.Office-Home(Venkateswaraetal.,2017),这是一个具有挑战性的中型基准数据集,它包括四个不同的领域(艺术图像(Ar)、剪贴画艺术(Cl)、产品图像(Pr)和现实世界图像 (Rw))。在每个领域中总共有65个日常物品类别。

$\quad\quad$3.VisDA-C(Pengetal.,2017)是一个具有挑战性的大规模基准测试集,主要专注于12类合成-真实对象识别任务。其源域包含15.2万个合成图像,而目标域有从微软COCO采样的5.5万张真实目标图像。

$\quad\quad$4.Digits是一个专注于数字识别的标准DA基准测试数据集。由(Hoffmanetal.,2018)提出使用协议,主要利用了其中的三个子集:SVHN(S)、MNIST(M)和USPS(U)。

三.论文精读与复现

1. Domain Adaptation without Source Data

\quad\quad这篇论文是SFDA方向较早的一篇论文之一,该论文主要解决了以下几个问题:

$\quad\quad$1.由于隐私问题,无法得到源数据集,只能得到源数据集上面训练的模型,在这种情况下进行迁移学习。故论文设计了一种新的网络结构,使之在只有源域训练模型的情况下也能进行迁移学习。

$\quad\quad$2. 由于target data上无标注,如何判断target data属于具体哪个class。并且因为target data没有ground truth,无法计算模型训练时的loss。故论文设计了APM模块对target data进行分类,并且设计了Confidence-based filtering来约束训练时发生的分类偏移情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-llzd8aBm-1656066484886)(C:\Users\86133\AppData\Roaming\Typora\typora-user-images\image-20220623173833941.png)]

图2

\quad\quad图2即为作者设计的新的网络结构,该网络主要分为三个部分:pre-trained model,Trainable model和APM.

\quad\quad其中,pre_trained model是在source data上预训练好的模型,在整个训练过程中不会改变。该模型参数存储在source_pretrained_weight文件下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nVLD9Tc3-1656066484886)(file:///C:\Users\86133\AppData\Local\Temp\ksohtml21816\wps2.jpg)]

\quad\quadTrainable model是要在target data上面训练的模型。

\quad\quadAPM部分存放每个类别的代表样本,当有样本送到网络中时,与里面的代表样本计算距离,然后进行打分,样本就属于分高的类别。

$\quad\quad$1.1训练过程:

$\quad\quad1.初始化trainablemodel:使用1.初始化trainable model :使用1.初始化trainablemodel:使用F_{S}初始化初始化初始化F_{t},使用,使用,使用C_{S}初始化初始化初始化C_{s2t}和和和C_{t}$。

$\quad\quad2.将targetdata送到pretrainedmodel中得到伪标签2.将target data送到pre_trained model中得到伪标签2.将targetdata送到pret​rainedmodel中得到伪标签\hat{y}{s}$,根据 y^s\hat{y}_{s}y^​s​计算LsourceL_{source}Lsource​,计算公式如下:
Lsource (Dt)=−Ext∼Dt∑c=1Nc1[c=ys^log⁡(σ(Cs2t(Ft(xt))))L_{\text {source }}\left(D_{t}\right)=-\mathbb{E}_{x_{t} \sim D_{t}} \sum_{c=1}^{N_{c}} \mathbb{1}_{\left[c=\hat{y_{s}}\right.} \log \left(\sigma\left(C_{s 2 t}\left(F_{t}\left(x_{t}\right)\right)\right)\right) Lsource ​(Dt​)=−Ext​∼Dt​​c=1∑Nc​​1[c=ys​^​​log(σ(Cs2t​(Ft​(xt​))))
$\quad\quad3.targetdata送到trainablemodel中,提取出特征ft,ft再送入APM中得到类别,和对应的伪标签3.target data送到trainable model中,提取出特征ft,ft再送入APM中得到类别,和对应的伪标签3.targetdata送到trainablemodel中,提取出特征ft,ft再送入APM中得到类别,和对应的伪标签\hat{y}
{t}$,计算如下:
sc(xt)=1∣Mc∣∑pc∈McpcTft∥pc∥2∥ft∥2s_{c}\left(x_{t}\right)=\frac{1}{\left|M_{c}\right|} \sum_{p_{c} \in M_{c}} \frac{p_{c}^{T} f_{t}}{\left\|p_{c}\right\|_{2}\left\|f_{t}\right\|_{2}} sc​(xt​)=∣Mc​∣1​pc​∈Mc​∑​∥pc​∥2​∥ft​∥2​pcT​ft​​
$\quad\quad$4.计算ft打分最高的两个类别,然后计算ft与两个类别的霍斯达夫距离,判断是否舍弃不合理的样本,公式如下:
dH(Q,Mt1)=max⁡{sup⁡q∈Qinf⁡p∈Mt1d(q,p),sup⁡p∈Mt1inf⁡q∈Qd(q,p)}=max⁡{max⁡q∈Qmin⁡p∈Mt1d(q,p),max⁡p∈Mt1min⁡q∈Qd(q,p)}=max⁡{min⁡p∈Mt1d(ft,p),max⁡p∈Mt1d(ft,p)}=max⁡p∈Mt1d(ft,p).d(a,b)=1−a⋅b∥a∥2∥b∥2dH∗(Q,Mt2)=min⁡{sup⁡q∈Qinf⁡p∈Mt2d(q,p),sup⁡p∈Mt2inf⁡q∈Qd(q,p)}=min⁡p∈Mt2d(ft,p).w(xt)={1,if dH(Q,Mt1)<dH∗(Q,Mt2)0,otherwise \begin{aligned} &d_{H}\left(Q, M_{t 1}\right)=\max \left\{\sup _{q \in Q} \inf _{p \in M_{t 1}} d(q, p), \sup _{p \in M_{t 1}} \inf _{q \in Q} d(q, p)\right\} \\ &=\max \left\{\max _{q \in Q} \min _{p \in M_{t 1}} d(q, p), \max _{p \in M_{t 1}} \min _{q \in Q} d(q, p)\right\} \\ &=\max \left\{\min _{p \in M_{t 1}} d\left(f_{t}, p\right), \max _{p \in M_{t 1}} d\left(f_{t}, p\right)\right\}=\max _{p \in M_{t 1}} d\left(f_{t}, p\right) . \\ &d(a, b)=1-\frac{a \cdot b}{\|a\|_{2}\|b\|_{2}} \\ &d_{H}^{*}\left(Q, M_{t 2}\right)=\min \left\{\sup _{q \in Q} \inf _{p \in M_{t 2}} d(q, p), \sup _{p \in M_{t 2}} \inf _{q \in Q} d(q, p)\right\}=\min _{p \in M_{t 2}} d\left(f_{t}, p\right) . \\ &w\left(x_{t}\right)= \begin{cases}1, & \text { if } d_{H}\left(Q, M_{t 1}\right)<d_{H}^{*}\left(Q, M_{t 2}\right) \\ 0, & \text { otherwise }\end{cases} \end{aligned} ​dH​(Q,Mt1​)=max{q∈Qsup​p∈Mt1​inf​d(q,p),p∈Mt1​sup​q∈Qinf​d(q,p)}=max{q∈Qmax​p∈Mt1​min​d(q,p),p∈Mt1​max​q∈Qmin​d(q,p)}=max{p∈Mt1​min​d(ft​,p),p∈Mt1​max​d(ft​,p)}=p∈Mt1​max​d(ft​,p).d(a,b)=1−∥a∥2​∥b∥2​a⋅b​dH∗​(Q,Mt2​)=min{q∈Qsup​p∈Mt2​inf​d(q,p),p∈Mt2​sup​q∈Qinf​d(q,p)}=p∈Mt2​min​d(ft​,p).w(xt​)={1,0,​ if dH​(Q,Mt1​)<dH∗​(Q,Mt2​) otherwise ​​
$\quad\quad5.根据5.根据5.根据\hat{y}{s}和w计算和w计算和w计算L{self}$和总的Loss,计算公式如下:
Lself (Dt)=−Ext∼Dt∑c=1Ncw(xt)1[c=y^tlog⁡(σ(Ct(Ft(xt))))Ltotal (Dt)=(1−α)Lsource (Dt)+αLself (Dt)\begin{aligned} &L_{\text {self }}\left(D_{t}\right)=-\mathbb{E}_{x_{t} \sim D_{t}} \sum_{c=1}^{N_{c}} w\left(x_{t}\right) \mathbb{1}_{\left[c=\hat{y}_{t}\right.} \log \left(\sigma\left(C_{t}\left(F_{t}\left(x_{t}\right)\right)\right)\right) \\ &L_{\text {total }}\left(D_{t}\right)=(1-\alpha) L_{\text {source }}\left(D_{t}\right)+\alpha L_{\text {self }}\left(D_{t}\right) \end{aligned} ​Lself ​(Dt​)=−Ext​∼Dt​​c=1∑Nc​​w(xt​)1[c=y^​t​​log(σ(Ct​(Ft​(xt​))))Ltotal ​(Dt​)=(1−α)Lsource ​(Dt​)+αLself ​(Dt​)​

$\quad\quad$1.2设计APM模块:

\quad\quadAPM模块中存放的是每个类别的代表性样本(样板),作者提出自熵越小的样本越有资格作为样板。那么每个类别应该有多少个样板呢,作者提出了用自适应的阈值来计算样本的个数。

\quad\quadAPM的初始化和更新方式如下:

$\quad\quad1、计算样本的熵,l(1、计算样本的熵,l(1、计算样本的熵,l(x_{t})为)为)为c_{t}$得到的类别概率。

$\quad\quad$2、对于每个类别,得到一个熵集。

$\quad\quad$3、取所有熵集中的最小值的最大值作为阈值。

$\quad\quad$4、遍历所有样本,如果一个样本的熵值小于阈值,就将这个样本作为样板。

\quad\quad上述过程的公式如下所示:
H(xt)=−1log⁡Nc∑l(xt)log⁡(l(xt))Hc={H(xt)∣xt∈Xc}η=max⁡{min⁡(Hc)∣c∈C}Mc={Ft(xt)∣xt∈Xc,H(xt)≤η}\begin{aligned} &H\left(x_{t}\right)=-\frac{1}{\log N_{c}} \sum l\left(x_{t}\right) \log \left(l\left(x_{t}\right)\right) \\ &\mathcal{H}_{c}=\left\{H\left(x_{t}\right) \mid x_{t} \in X_{c}\right\} \\ &\eta=\max \left\{\min \left(\mathcal{H}_{c}\right) \mid c \in \mathcal{C}\right\} \\ &M_{c}=\left\{F_{t}\left(x_{t}\right) \mid x_{t} \in X_{c}, H\left(x_{t}\right) \leq \eta\right\} \end{aligned} ​H(xt​)=−logNc​1​∑l(xt​)log(l(xt​))Hc​={H(xt​)∣xt​∈Xc​}η=max{min(Hc​)∣c∈C}Mc​={Ft​(xt​)∣xt​∈Xc​,H(xt​)≤η}​

$\quad\quad$1.3设计Confidence-based filtering:

\quad\quad这个模块主要解决的一个问题是:由于target data 没有正确的ground truth,训练的过程中很容易发生偏移,所以增加了基于置信度的过滤。其基本思想是:用集合-集合距离估计一个伪标签的置信度,在考虑两个集合之间corner的情况下会很有效。

\quad\quad第一个集合是一个单独的元素集(包括一个目标样本),另一个集合可以是每个类的多prototypes。准确地说,对每个目标样本得到最相似的类Mt1M_{t1}Mt1​和次相似的类Mt2M_{t2}Mt2​的多prototypes,然后衡量单独集合Q=ftf_{t}ft​和Mt1M_{t1}Mt1​之间的距离(Hausdorff距离),公式如下:
dH(Q,Mt1)=max⁡p∈Mt1d(ft,p)dH∗(Q,Mt2)=min⁡p∈Mt2d(ft,p)\begin{aligned} d_{H}\left(Q, M_{t 1}\right) &=\max _{p \in M_{t 1}} d\left(f_{t}, p\right) \\ d_{H}^{*}\left(Q, M_{t 2}\right) &=\min _{p \in M_{t 2}} d\left(f_{t}, p\right) \end{aligned} dH​(Q,Mt1​)dH∗​(Q,Mt2​)​=p∈Mt1​max​d(ft​,p)=p∈Mt2​min​d(ft​,p)​
\quad\quad当且仅当样本与最相似类比与次相似类更近时,将样本定义为一个可靠样本。最后为每个目标样本分配一个置信度分数:
w(xt)={1ifd dH(Q,Mt1)<dH∗(Q,Mt2)0otherwise w\left(x_{t}\right)= \begin{cases}1 & \text { ifd } d_{H}\left(Q, M_{t 1}\right)<d_{H}^{*}\left(Q, M_{t 2}\right) \\ 0 & \text { otherwise }\end{cases} w(xt​)={10​ ifd dH​(Q,Mt1​)<dH∗​(Q,Mt2​) otherwise ​

$\quad\quad$1.4模型分析:

$\quad\quad$1.基于置信度的过滤能有效解决不完美伪标签的不确定性。为了进一步验证过滤机制,作者测量了有效训练样本的百分比,可以发现目标样本中只有一小部分用来在开始的时候训练,随着训练的不断进行有效样本的数量逐渐增加。

$\quad\quad$2.特征可视化为视觉上验证此方法提供了有效性,论文中的方法可以有效对齐源和目标数据,结论说明了可以在不接触源数据的情况下减少两个不同域之间的差距。

$\quad\quad$3.可靠样本的统计数据将熵值小于0.2的样本作为可靠样本,占据了整个样本的30%。在训练过程中这些数据随着SFDA的发展会改变。训练结束时发现可靠样本的百分比超过了总样本的50%,可靠样本伪标签的准确率也随之增加了。

$\quad\quad$4.APM更新周期:通过周期性跟新APM来反映目标域的数据,作者提出了逐渐增进的目标模型。更新周期越短,准确率更好,但训练过程要求更多计算。相反,增加更新周期会降低性能,因为目标模型不能完全利用它的自学习机制。最后对所有数据集将更新周期设为100。

$\quad\quad$1.5代码复现结果:
$\quad\quad$1.5.1实验参数设置:

\quad\quad源模型使用在ImageNet上预训练的ResNet-50或ResNet-101作为基本特征提取器。对固定的源模型和要训练的目标模型使用相同的网络架构。此外,将Office-31数据集的最大迭代步数(即算法中的max_iter)设置为5000,Office-Home数据集设置为20000,Visda-C数据集设置为15000。在所有的数据集中,将batch_size设置为32。在实验中,训练图像被resize为256×256尺寸,并通过随机水平翻转随机裁剪为224×224尺寸。实验使用SGD作为优化器,其权重衰减为0.0005,momentum设置为0.9。learning rate设置为10−310^{-3}10−3,并对预训练的特征提取器中的所有微调层以学习速率10−410^{-4}10−4进行优化。之后,将学习率按如下公式进行变化:lrp=lr0(1+α⋅p)−βl r_{p}=l r_{0}(1+\alpha \cdot p)^{-\beta}lrp​=lr0​(1+α⋅p)−β,其中lr0lr_0lr0​是一个基本学习率,p是在训练过程中从0逐渐变化到1,α初始化为10,β初始化为0.75。对于所有的数据集,每100次迭代更新一次APM模块。

$\quad\quad$1.5.2实验结果如下:

\quad\quad(因为时间有限,只在Office数据集上测试了性能)

Method A⇒W\mathrm{A} \Rightarrow \mathrm{W}A⇒W D⇒W\mathrm{D} \Rightarrow \mathrm{W}D⇒W W⇒D\mathrm{W} \Rightarrow \mathrm{D}W⇒D A⇒D\mathrm{A} \Rightarrow \mathrm{D}A⇒D D⇒A\mathrm{D} \Rightarrow \mathrm{A}D⇒A W⇒A\mathrm{W} \Rightarrow \mathrm{A}W⇒A AVG\mathrm{AVG}AVG
ResNet(Source only) 79.8 98.3 99.9 83.8 66.1 65.1 82.2
SFDA 91.1 98.2 99.5 92.2 71.0 71.2 87.2

2.Unsupervised Multi-source Domain Adaptation Without Access to Source Data

\quad\quad这篇论文和上一篇论文一样,解决的是无法访问到源域数据,只能利用训练好的模型进行域适应的问题。不同的是,该论文解决了一个更具实用性的情景:之前的论文中的源模型是直接给定的最好的源模型,里面的参数都由论文作者给出,我们并不知道该源模型是怎么生成 的。而本文是根据数据现场生成所需的一组源模型,由于每个源域与目标之间的关联程度不同,而且调整模型不仅需要综合来自多个模型的先验知识,还同时需要防止负迁移的可能性。故该论文开发了一个基于伪标签和信息最大化原则的算法,同时最小化了负迁移的影响。

$\quad\quad$1.加权信息最大化

\quad\quad由于无法访问到标记的源或者目标数据,作者转而尝试调整源分类器{ψSi}i=1n\left\{\psi_{S}^{i}\right\}_{i=1}^{n}{ψSi​}i=1n​,因为该源分类器包含源域的类分布信息,并且通过信息最大化原则仅仅调整特征映射{φSi}i=1n\left\{\varphi_{S}^{i}\right\}_{i=1}^{n}{φSi​}i=1n​。该适应过程背后的原理是半监督学习中的聚类假设,该假设认为判别模型的决策边界位于输入空间中密度不密集的区域。为了实现这一点,作者最小化了条件熵项,公式如下:
Lent =−ExT∈DT[∑j=1Kδj(θT(xT))log⁡(δj(θT(xT)))]\mathcal{L}_{\text {ent }}=-\mathbb{E}_{x_{T} \in \mathcal{D}_{T}}\left[\sum_{j=1}^{K} \delta_{j}\left(\theta_{T}\left(x_{T}\right)\right) \log \left(\delta_{j}\left(\theta_{T}\left(x_{T}\right)\right)\right)\right] Lent ​=−ExT​∈DT​​[j=1∑K​δj​(θT​(xT​))log(δj​(θT​(xT​)))]
\quad\quad该公式为条件熵的公式。其原理就是把源分类器进行加权组合,然后对于目标域数据xTx_TxT​输出结果,进行softmax,最后求交叉熵。如果源

θSj\theta_{S}^{j}θSj​在目标域上具有良好的可转移性,则条件熵的值较小,那么优化{θSj\theta_{S}^{j}θSj​,αj\alpha_{j}αj​}上的项就会导致αj\alpha_{j}αj​的值高于其余权重。

\quad\quad当使用部分标签进行训练时,熵最小化有效地捕获了聚类,但在无监督的环境中,它可能导致解的退化,比如总是预测单个类以尝试最小化条件熵。为了控制这种退化的解决方案,作者结合了类多样性的思想:跨数据集均匀分配类标签的配置,最大化经验标签分布的熵。公式如下:
Ldiv=∑j=1K−pˉjlog⁡pˉj\mathcal{L}_{\mathrm{div}}=\sum_{j=1}^{K}-\bar{p}_{j} \log \bar{p}_{j} Ldiv​=j=1∑K​−pˉ​j​logpˉ​j​
\quad\quad该公式的意义就是:要最大化该公式,符号和log的符号相互抵消,意思就是使|pˉjlog⁡pˉj\bar{p}_{j} \log \bar{p}_{j}pˉ​j​logpˉ​j​|越大越好,也就是pˉ\bar{p}pˉ​越大越好,就是要每个类的和最大 ,意味着对于每个类来说,都是概率越大岳昊,这样就可以促进往每个类去预测而不是偏向于某个类。

\quad\quad这是聚合模型θT\theta_TθT​下目标数据和标签之间互信息的经验估计。尽管最大化该损失使目标数据的预测更加可信,单还是无法抑制错误标签的分配。作者提出了一种伪标记策略来遏制这种错误标记。

$\quad\quad$2.加权伪标记

\quad\quad作为域转移的结果,信息最大化可能会导致某些实例使用错误的类集群。这些错误在预测的训练过程中得到加强,并导致一种称为确认偏差的现象。为了抑制这种影响,作者采用了一种自监督聚类策略。首先,计算每个源模型为整个目标数据集诱导的簇质心,公式如下:
μkj(0)=∑xT∈DTδk(θ^Sj(xT))ϕ^Sj(xT)∑xT∈DTδk(θ^Sj(xT))\mu_{k_{j}}^{(0)}=\frac{\sum_{x_{T} \in \mathcal{D}_{T}} \delta_{k}\left(\hat{\theta}_{S}^{j}\left(x_{T}\right)\right) \hat{\phi}_{S}^{j}\left(x_{T}\right)}{\sum_{x_{T} \in \mathcal{D}_{T}} \delta_{k}\left(\hat{\theta}_{S}^{j}\left(x_{T}\right)\right)} μkj​(0)​=∑xT​∈DT​​δk​(θ^Sj​(xT​))∑xT​∈DT​​δk​(θ^Sj​(xT​))ϕ^​Sj​(xT​)​
\quad\quad其中,第i次迭代源域j获得的类别k的簇质心表示为μkj(i)\mu_{k_{j}}^{(i)}μkj​(i)​,且θS′j=(ψSjφS′j)\theta_{S}^{\prime j}=\left(\psi_{S}^{j} \varphi_{S}^{\prime j}\right)θS′j​=(ψSj​φS′j​)表示来自上一次迭代的源。这些源根据每个源模型上的当前聚合权重进行组合:
μk(0)=∑j=1nαjμkj(0)\mu_{k}^{(0)}=\sum_{j=1}^{n} \alpha_{j} \mu_{k_{j}}^{(0)} μk(0)​=j=1∑n​αj​μkj​(0)​
\quad\quad然后计算每个样本的伪标签,将其分配到特征空间中最近的簇质心:
y^T(0)=arg⁡min⁡k∥θ^T(xT)−μk(0)∥22\hat{y}_{T}^{(0)}=\arg \min _{k}\left\|\hat{\theta}_{T}\left(x_{T}\right)-\mu_{k}^{(0)}\right\|_{2}^{2} y^​T(0)​=argkmin​∥∥∥​θ^T​(xT​)−μk(0)​∥∥∥​22​
\quad\quad然后重复次过程,以获得更新的质心和伪标签,公式如下:
μkj(1)=∑xT∈DT1{y^T(0)=k}ϕ^Sj(xT)∑xT∈DT1(y^f^0=k)μk(1)=∑j=1nαjμkj(1)y^T(1)=arg⁡min⁡k∥θ^T(xT)−μk(1)∥22\begin{aligned} &\mu_{k_{j}}^{(1)}=\frac{\sum_{x_{T} \in \mathcal{D}_{T}} \mathbb{1}\left\{\hat{y}_{T}^{(0)}=k\right\} \hat{\phi}_{S}^{j}\left(x_{T}\right)}{\sum_{x_{T} \in \mathcal{D}_{T}} \mathbb{1}\left(\hat{y}^{\hat{f}_{0}=k}\right)} \\ &\mu_{k}^{(1)}=\sum_{j=1}^{n} \alpha_{j} \mu_{k_{j}}^{(1)} \\ &\hat{y}_{T}^{(1)}=\arg \min _{k}\left\|\hat{\theta}_{T}\left(x_{T}\right)-\mu_{k}^{(1)}\right\|_{2}^{2} \end{aligned} ​μkj​(1)​=∑xT​∈DT​​1(y^​f^​0​=k)∑xT​∈DT​​1{y^​T(0)​=k}ϕ^​Sj​(xT​)​μk(1)​=j=1∑n​αj​μkj​(1)​y^​T(1)​=argkmin​∥∥∥​θ^T​(xT​)−μk(1)​∥∥∥​22​​
\quad\quad虽然这种计算簇质心和伪标记的交替过程可以重复多次以获得固定的伪标记,但作者认为对于所有实际目的来说,只进行一轮就足够了。然后可以得到关于这些伪标签的交叉熵损失如下:
Lpl(QT,θT)=−ExT∈DT∑k=1K1{y^T=k}log⁡δk(θT(xT))\mathcal{L}_{\mathrm{pl}}\left(Q_{T}, \theta_{T}\right)=-\mathbb{E}_{x_{T} \in \mathcal{D}_{T}} \sum_{k=1}^{K} \mathbb{1}\left\{\hat{y}_{T}=k\right\} \log \delta_{k}\left(\theta_{T}\left(x_{T}\right)\right) Lpl​(QT​,θT​)=−ExT​∈DT​​k=1∑K​1{y^​T​=k}logδk​(θT​(xT​))
\quad\quad模型的总览图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hpDS80r3-1656066484888)(C:\Users\86133\AppData\Roaming\Typora\typora-user-images\image-20220623173632410.png)]

\quad\quad简单概括一下,算法的整体思想就是:对于LentL_{ent}Lent​的训练,就是对于某个类,将所有用源分类器分类的结果使用αi\alpha_{i}αi​加权组合,然后通过softmax变成目标域的分类预测结果。然后计算条件熵(因为目标域没有标签,无法计算交叉熵)的期望,也就是计算条件熵的和然后对每个目标域样本进行平均。刚开始的时候α\alphaα初始化为1,且α\alphaα就是要优化的项。如果源θSj\theta_S^jθSj​在目标上具有良好的可转移性,那么条件熵的值就会越小,优化{θSj\theta_{S}^{j}θSj​,αj\alpha_{j}αj​}上的项就会导致αj\alpha_jαj​的值高于其余权重,以上就是上图LentL_{ent}Lent​部分对应的过程。

\quad\quad LdivL_{div}Ldiv​过程和LentL_{ent}Lent​有一些相似,它先求出目标域的分类结果的期望,也就是总的所有目标域样本的分类向量,我们希望这个向量对于每个类是基本均衡的而不是总是预测某个类,所以对这个向量再求一下条件熵。它与LentL_{ent}Lent​的区别就是,后者先求的不是目标域的分类预测结果的期望,而是对单个目标域样本的分类预测结果,然后对此求条件熵,再在所有样本上面平均一下,相当于求一个平均损失。

\quad\quad最后是伪标签损失LplL_{pl}Lpl​,首先是质心计算,对每个类,对每个源域模型,对每个目标样本,首先计算softmax损失(虽然softmax得到的是一个向量,但是这里只考虑某个类,所以这里其实是一个实数),根据损失给样本的特征加权,然后将所有目标域样本的特征累加起来,除以softmax实数的累加和。以上只是一个域的结果,之后要使用α\alphaα对所有域加权得到最终每个类的质心,因为有了伪标签所以不再是目标域样本特征与softmax实数相乘,而是根据伪标签是否是对应的类,决定权重是1还是0,也就是只对本类的样本求质心。

$\quad\quad$3.优化

\quad\quad根据给定的源假设{θSj}j=1n={ψSjφSj}j=1n\left\{\theta_{S}^{j}\right\}_{j=1}^{n}=\left\{\psi_{S}^{j} \varphi_{S}^{j}\right\}_{j=1}^{n}{θSj​}j=1n​={ψSj​φSj​}j=1n​和目标数据 DT={xTi}i=1nTD_{T}=\left\{x_{T}^{i}\right\}_{i=1}^{n_{T}}DT​={xTi​}i=1nT​​,固定来自每个源的分类器,并优化参数{φSj}j=1n\left\{\varphi_{S}^{j}\right\}_{j=1}^{n}{φSj​}j=1n​和聚合权重{αj}j=1n\left\{\alpha_{j}\right\}_{j=1}^{n}{αj​}j=1n​。最终目标是:Ltot =Lent−Ldiv+λLpl\mathcal{L}_{\text {tot }}=\mathcal{L}_{\mathrm{ent}}-\mathcal{L}_{\mathrm{div}}+\lambda \mathcal{L}_{\mathrm{pl}}Ltot ​=Lent​−Ldiv​+λLpl​。

\quad\quad上述目标用于解决以下优化问题:
minimize⁡{ϕSj}j=1n,{αj}j=1nLtot subject to αj≥0,∀j∈{1,2,…,n},∑j=1nαj=1\begin{aligned} \underset{\left\{\phi_{S}^{j}\right\}_{j=1}^{n},\left\{\alpha_{j}\right\}_{j=1}^{n}}{\operatorname{minimize}} & \mathcal{L}_{\text {tot }} \\ \text { subject to } & \alpha_{j} \geq 0, \forall j \in\{1,2, \ldots, n\}, \\ & \sum_{j=1}^{n} \alpha_{j}=1 \end{aligned} {ϕSj​}j=1n​,{αj​}j=1n​minimize​ subject to ​Ltot ​αj​≥0,∀j∈{1,2,…,n},j=1∑n​αj​=1​
\quad\quad一旦得到最优集合φSj∗\varphi_{S}^{j*}φSj∗​和αj∗\alpha_j^*αj∗​、最佳目标假设计算为θT=∑j=1nαj∗(ψSjφSj∗)\theta_{T}=\sum_{j=1}^{n} \alpha_{j}^{*}\left(\psi_{S}^{j} \varphi_{S}^{j *}\right)θT​=∑j=1n​αj∗​(ψSj​φSj∗​),解决优化问题的算法如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wn8haDR9-1656066484888)(C:\Users\86133\AppData\Roaming\Typora\typora-user-images\image-20220623173612063.png)]

$\quad\quad$4.理论支撑

\quad\quad个人认为,该论文出色的地方在于充足且逻辑缜密的数学推理,下面我根据文章中的内容尽量理解一下原文中的理论动机:

\quad\quad该论文的算法旨在找到每个源模型的最佳权重{αj}j=1n\left\{\alpha_{j}\right\}_{j=1}^{n}{αj​}j=1n​,并采用源预测器的凸组合来获得目标预测器、作者认为在源和目标分布的直观假设下,存在一种简单的目标预测器选择,其性能优于或等于直接应用于目标数据的最佳源模型。

\quad\quad形式上,假设L是一个损失函数,它将模型预测标签和ground-truth标签对映射到一个标量。使用源预测器θ\thetaθ通过L(QSk,θ)=Ex[L(θ(x),y)]=∫xL(θ(x),y)QSk(x)dxL\left(Q_{S}^{k}, \theta\right)=E_{x}[L(\theta(x), y)]=\int_{x} L(\theta(x), y) Q_{S}^{k}(x) d xL(QSk​,θ)=Ex​[L(θ(x),y)]=∫x​L(θ(x),y)QSk​(x)dx表示在第k个源分布QSkQ_{S}^kQSk​上的预期损耗。现在,设θSk\theta_S^kθSk​为由θSk=argmin⁡θL(QSk,θ)∀1≤K≤N\theta_{S}^{k}=\operatorname{argmin}_{\theta} L\left(Q_{S}^{k}, \theta\right) \forall 1 \leq K \leq NθSk​=argminθ​L(QSk​,θ)∀1≤K≤N给出的最佳源预测器。文章还假设目标分布在源分布的范围内,通过将目标分布表示为源分布的放射组合来将其形式化(因为没办法接触源数据,最直接的思路就是对最优的源域分类器进行组合,也就是仿射变换),即QTQ_TQT​(x) = ∑k=1nλkQSk(x):λk≥0,∑k=1nλk=1\sum_{k=1}^{n}\lambda_{k} Q_{S}^{k}(x):\lambda_{k}\geq 0,\sum_{k=1}^{n} \lambda_{k}=1∑k=1n​λk​QSk​(x):λk​≥0,∑k=1n​λk​=1。在这个假设下,如果将目标预测器表示为:θT(x)=∑k=1nλkQSk(x)∑j=1nλjQSj(x)θSk(x)\theta_{T}(x)=\sum_{k=1}^{n} \frac{\lambda_{k} Q_{S}^{k}(x)}{\sum_{j=1}^{n} \lambda_{j} Q_{S}^{j}(x)} \theta_{S}^{k}(x)θT​(x)=∑k=1n​∑j=1n​λj​QSj​(x)λk​QSk​(x)​θSk​(x),就建立了作者提出的引理1中所述的理论主张。

\quad\quad引理1:假设损失L(θ(x),y)L(\theta(x), y)L(θ(x),y)在其中一个参数是凸的,并且存在λ∈Rn\lambda \in R^{n}λ∈Rn ,其中 λ≥0\lambda \geq 0λ≥0 和 λ⊤1=1\lambda^{\top} 1=1λ⊤1=1,使得目标分布正好等于源分布的混合,即QT=∑i=1nλQSiQ_{T}=\sum_{i=1}^{n} \lambda Q_{S}^{i}QT​=∑i=1n​λQSi​。将目标预测器设置为以下最佳源预测器的凸组合:
θT(x)=∑k=1nλkQSk(x)∑j=1nλjQSj(x)θSk(x)\theta_{T}(x)=\sum_{k=1}^{n} \frac{\lambda_{k} Q_{S}^{k}(x)}{\sum_{j=1}^{n} \lambda_{j} Q_{S}^{j}(x)} \theta_{S}^{k}(x) θT​(x)=k=1∑n​∑j=1n​λj​QSj​(x)λk​QSk​(x)​θSk​(x)
\quad\quad对于该目标预测器,在目标分布上,伪标签引起的无监督损失和监督损失都小于或等于最佳源预测器引起的损失。特别地L(QT,θT)≤min⁡1≤j≤nL(QT,θSj)\mathcal{L}\left(Q_{T}, \theta_{T}\right) \leq \min _{1 \leq j \leq n} \mathcal{L}\left(Q_{T}, \theta_{S}^{j}\right)L(QT​,θT​)≤min1≤j≤n​L(QT​,θSj​)。此外,如果λ\lambdaλ的项时严格正的,那么这个不等式是严格的,并且存在严格i使得不等式

L(QSi,θSi)<L(QSi,θSα)L\left(Q_{S}^{i}, \quad \theta_{S}^{i}\right)<L\left(Q_{S}^{i}, \quad \theta_{S}^{\alpha}\right)L(QSi​,θSi​)<L(QSi​,θSα​)成立。

\quad\quad需要注意的是,在引理1中定义的预期损失是有监督的损失,里面包含标签信息。作者提出的目标预测器的监督损失至少与最好的单个源模型一样好。由于我们并不知道源数据分布(因为源数据不可用),作者考虑分布最少的信息,即根据最大熵原理的源均匀分布。假设在目标支撑集X上存在这种均匀性。从数学上讲,当限制在支撑集x∈Xx \in Xx∈X 时,作者的假设是 QSk(x)=ckU(x)Q_{S}^{k}(x)=c_{k} U(x)QSk​(x)=ck​U(x),其中ckc_kck​是一个比例因子,用于捕获源域k和U(X)的相对贡献值。如果在引理1的组合规则中插入这个分布值,可以得到:
θT(x)=∑k=1nλkck∑j=1nλjcjθSk(x)\theta_{T}(x)=\sum_{k=1}^{n} \frac{\lambda_{k} c_{k}}{\sum_{j=1}^{n} \lambda_{j} c_{j}} \theta_{S}^{k}(x) θT​(x)=k=1∑n​∑j=1n​λj​cj​λk​ck​​θSk​(x)
\quad\quad这个由λ\lambdaλ构成的项本质上成为算法中的加权项αk\alpha_kαk​。因此,在源分布一致性假设下,这种优化讲返回源假设的有利组合,满足引理1中的边界条件。

$\quad\quad$5.代码复现结果:
$\quad\quad$5.1网络基本设置:

\quad\quad网络架构:对于目标识别任务,作者使用了一个预先训练过的ResNet-50作为特征提取器的主干网络,将倒数第二个全连接层替换为一个瓶颈层和一个任务特定的分类器层。在瓶颈层之后使用批处理归一化,在最后一层中使用权重归一化。对于数字识别任务,网络使用了类似于LeNet的一个变体。

\quad\quad源模型训练:网络使用平滑的标签来训练源模型,而不是常用的独热编码标签。这增加了模型的鲁棒性,并有助于在自适应过程形成均匀分离的团簇。Digits、office、Office-Home和Office-Caltech数据集的epoch分别设置为30、100、50和100.此外,在数字识别实验中,将每个域的图像大小调整为32×32,并且将灰度图转换为RGB图。

\quad\quad超参数设置:整个框架通过反向传播以端到端的方式进行训练。对于具体的参数,将momentum数值设置为0.9,权重衰减率为10−310^{-3}10−3 .瓶颈层和分类器层的学习速率设置为10−210^{-2}10−2,而主干层的训练速率为10−310^{-3}10−3。此外,还使用了学习率调整策略,其中学习率随着训练的进展呈指数衰减。batch size被设置为32。作者设置使用λ=0.3进行所有的目标识别任务,使用λ=0.1进行数字基准测试。在将模型应用到目标域上时,epoch被设置为15,并且在每个epoch开始时更新伪标签。

$\quad\quad$5.2实验结果:

\quad\quad(因为时间有限,只在Office数据集上进行了测试)

Method A,D⇒W\mathrm{A},\mathrm{D} \Rightarrow \mathrm{W}A,D⇒W A,W⇒D\mathrm{A},\mathrm{W} \Rightarrow \mathrm{D}A,W⇒D D,W⇒A\mathrm{D},\mathrm{W} \Rightarrow \mathrm{A}D,W⇒A AVG\mathrm{AVG}AVG
Source-best 96.3 98.4 62.5 85.7
Source-worst 75.6 80.9 62.0 72.8
SHOT-Ens 94.9 97.8 75.0 89.3
DECISIONS 98.4 99.6 75.4 91.1

3.Do We Really Need to Access the Source Data?

$\quad\quad$1.算法方法

\quad\quad该论文仅用一个预训练模型,不使用源数据来解决无监督DA任务。特别的,对于K-way分类问题,给定nSn_SnS​个来自源域DSD_SDS​的带标签样本{xsi,ysi}i=1ns\left\{x_{s}^{i}, y_{s}^{i}\right\}_{i=1}^{n_{s}}{xsi​,ysi​}i=1ns​​,其中xsi∈Xs,ysi∈Ysx_{s}^{i} \in \mathcal{X}_{s}, y_{s}^{i} \in \mathcal{Y}_{s}xsi​∈Xs​,ysi​∈Ys​,以及ntn_tnt​个来自目标域的无标签样本{xti}i=1nt\left\{x_{t}^{i}\right\}_{i=1}^{n_{t}}{xti​}i=1nt​​,其中xti∈Xtx_{t}^{i} \in \mathcal{X}_{t}xti​∈Xt​。DA的目标是预测目标域中的标签{yti}i=1nt\left\{y_{t}^{i}\right\}_{i=1}^{n t}{yti​}i=1nt​ ,其中 yti∈Yty_{t}^{i} \in \mathcal{Y}_{t}yti​∈Yt​ ,源任务 Xs→Ys\mathcal{X}_{s} \rightarrow \mathcal{Y}_{s}Xs​→Ys​ 假定与目标任务 Xt→Yt\mathcal{X}_{t} \rightarrow \mathcal{Y}_{t}Xt​→Yt​相同。这里SHOT旨在学习一个目标方程ftf_tft​:Xt→Yt\mathcal{X}_{t} \rightarrow \mathcal{Y}_{t}Xt​→Yt​,然后仅用{xti}i=1nt\left\{x_{t}^{i}\right\}_{i=1}^{n_{t}}{xti​}i=1nt​​和源方程fsf_sfs​:Xs→Ys\mathcal{X}_{s} \rightarrow \mathcal{Y}_{s}Xs​→Ys​ 来推断 {yti}i=1nt\left\{y_{t}^{i}\right\}_{i=1}^{n_{t}}{yti​}i=1nt​​。

\quad\quad论文提出了通过三个步骤UDA的模型转移任务。首先从源数据生成源模型。其次丢弃源数据并转移模型(包括源假设)到目标域而不接触源数据。最后进一步研究如何为两个模型都设计更好的网络架构来提升性能。

$\quad\quad$1.1源模型生成

\quad\quad考虑构建一个深度神经网络然后学习源模型fs:Xs→Ysf_{s}: \mathcal{X}_{s} \rightarrow \mathcal{Y}_{s}fs​:Xs​→Ys​通过最小化下面的标准交叉熵损失:
Lsrc(fs;Xs,Ys)=−E(xs,ys)∈Xs×Ys∑k=1Kqklog⁡δk(fs(xs))\mathcal{L}_{s r c}\left(f_{s} ; \mathcal{X}_{s}, \mathcal{Y}_{s}\right)=-\mathbb{E}_{\left(x_{s}, y_{s}\right) \in \mathcal{X}_{s} \times \mathcal{Y}_{s} \sum_{k=1}^{K} q_{k} \log \delta_{k}\left(f_{s}\left(x_{s}\right)\right)} Lsrc​(fs​;Xs​,Ys​)=−E(xs​,ys​)∈Xs​×Ys​∑k=1K​qk​logδk​(fs​(xs​))​
\quad\quad其中δk(a)=exp⁡(ak)∑iexp⁡(ai)\delta_{k}(a)=\frac{\exp \left(a_{k}\right)}{\sum_{i} \exp \left(a_{i}\right)}δk​(a)=∑i​exp(ai​)exp(ak​)​表示一个k维向量a的softmax输出的第k个元素,其中qkq_kqk​对正确类是1,其余是0.为了进一步增加源模型的判别性并帮助下面的目标数据对齐,作者提出采用标签平滑方法,鼓励样本集中于紧密分布的簇中,有了标签平滑方法,目标方程变成了公式1:
Lsrcls(fs;Xs,Ys)=−E(xs,ys)∈Xs×Ys∑k=1Kqklslog⁡δk(fs(xs))L_{s r c}^{l_{s}}\left(f_{s} ; \mathcal{X}_{s}, \mathcal{Y}_{s}\right)=-\mathbb{E}_{\left(x_{s}, y_{s}\right) \in \mathcal{X}_{s} \times \mathcal{Y}_{s}} \sum_{k=1}^{K} q_{k}^{l_{s}} \log \delta_{k}\left(f_{s}\left(x_{s}\right)\right) Lsrcls​​(fs​;Xs​,Ys​)=−E(xs​,ys​)∈Xs​×Ys​​k=1∑K​qkls​​logδk​(fs​(xs​))
\quad\quad这里qkls=(1−α)qk+α/Kq_{k}^{l_{s}}=(1-\alpha) q_{k}+\alpha / Kqkls​​=(1−α)qk​+α/K是平滑后的标签,α\alphaα是平滑参数,经验上设为0.1.

$\quad\quad$1.2信息最大化的源假设迁移

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2mI7Er60-1656066484889)(C:\Users\86133\AppData\Roaming\Typora\typora-user-images\image-20220619144600981.png)]

\quad\quad源模型通过上图中的深度神经网络进行参数化,包括两个模块:特征编码模块gs:Xs→Rdg_{s}: \mathcal{X}_{s} \rightarrow \mathbb{R}^{d}gs​:Xs​→Rd ,和分类器模块 Rd→RK\mathbb{R}^{d} \rightarrow \mathbb{R}^{K}Rd→RK,即fs(x)=hs(gs(x))f_{s}(x)=h_{s}\left(g_{s}(x)\right)fs​(x)=hs​(gs​(x))。这里d是输入特征的维数。之前的UDA方法通过匹配特征空间Rd\mathbb{R}^{d}Rd的数据分布来对齐不同域(使用MMD或者域对抗对齐)。然鹅,这两种策略都假设源和目标域共享同样的特征编码器,并需要在适应中接触源域数据。

\quad\quad作者提出了一个源假设转移SHOT框架,通过学习域特定特征加码模块但固定源分类器模块。具体地,SHOT对不同域特定特征学习模块使用相同分类器模块,即hth_tht​ =hSh_ShS​。旨在学习最优目标特征学习模块gt:Xt→Rdg_{t}: \mathcal{X}_{t} \rightarrow \mathbb{R}^{d}gt​:Xt​→Rd,以使输出目标特征可以很好的匹配源特征分布,并且可以通过源假设直接被准确分类。值得注意的是SHOT很少使用源数据,只用一次来生成源假设。

\quad\quad作者希望学习最优的目标编码器gtg_tgt​以使得目标数据分布p(gt(xt))p\left(g_{t}\left(x_{t}\right)\right)p(gt​(xt​))能匹配源数据分布p(gs(xs))p\left(g_{s}\left(x_{s}\right)\right)p(gs​(xs​))。然而,因为不可能估计p(gs(xs))p\left(g_{s}\left(x_{s}\right)\right)p(gs​(xs​))的分布,特征级别的对齐不好使。如果从另一个角度看待问题:如果域差异被减少,无标签的目标数据应该会有什么样的输出?作者认为理想的目标输出应该与one-hot编码类似。因此,作者采用了信息最大化IM损失,来让目标输出单独确定并且全局不同。作者选择最小化LentL_{ent}Lent​和LdivL_{div}Ldiv​一起构成IM损失:
Lent (ft;Xt)=−Ext∈Xt∑k=1Kδk(ft(xt))log⁡δk(ft(xt))Ldiv (ft;Xt)=∑k=1Kp^klog⁡p^k=DKL(p^,1K1K)−log⁡K\begin{aligned} &L_{\text {ent }}\left(f_{t} ; \mathcal{X}_{t}\right)=-\mathbb{E}_{x_{t} \in \mathcal{X}_{t}} \sum_{k=1}^{K} \delta_{k}\left(f_{t}\left(x_{t}\right)\right) \log \delta_{k}\left(f_{t}\left(x_{t}\right)\right) \\ &L_{\text {div }}\left(f_{t} ; \mathcal{X}_{t}\right)=\sum_{k=1}^{K} \hat{p}_{k} \log \hat{p}_{k}=D_{K L}\left(\hat{p}, \frac{1}{K} 1_{K}\right)-\log K \end{aligned} ​Lent ​(ft​;Xt​)=−Ext​∈Xt​​k=1∑K​δk​(ft​(xt​))logδk​(ft​(xt​))Ldiv ​(ft​;Xt​)=k=1∑K​p^​k​logp^​k​=DKL​(p^​,K1​1K​)−logK​
\quad\quad其中,p^=Ext∈Xt[δ(ft(k)(xt))]\hat{p}=\mathbb{E}_{x_{t} \in \mathcal{X}_{t}}\left[\delta\left(f_{t}^{(k)}\left(x_{t}\right)\right)\right]p^​=Ext​∈Xt​​[δ(ft(k)​(xt​))]是整个目标域的平均输入嵌入。IM相比之前的DA工作中广泛使用的条件熵最小化更好,因为IM可以避免琐碎的解决方案。

$\quad\quad$1.3使用自监督伪标签的源假设转移加强

\quad\quad作者展示了仅仅通过SHOT-IM和源模型学习到的特征t-SNE可视化。直观上,目标特征表示仅在源模型分布混乱,使用IM损失可以帮助对齐目标数据。然而,目标数据也可能以一定程度匹配到错误的源假设。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Drdm5Jhh-1656066484890)(C:\Users\86133\AppData\Roaming\Typora\typora-user-images\image-20220619160440600.png)]

\quad\quad作者认为:有害的影响源自于不准确的网络输出。比如,来自第二个类的一个样本[0.4,0.3,0.1,0.1,0.1]可能会被迫输出为[1.0,0.0,0.0,0.0,0.0]。为了减轻这种影响,进一步对未标记数据应用伪标签来更好的监督目标数据编码训练。受到DeepCluster影响,作者提出了一种新颖的自监督伪标签策略。首先对目标域的每个类得到质心,类似于带权重的k-means簇,公式如下:
ck(0)=∑xt∈Xtδk(f^t(xt))g^t(xt)∑xt∈Xtδk(f^k(xt))c_{k}^{(0)}=\frac{\sum_{x_{t} \in \mathcal{X}_{t}} \delta_{k}\left(\hat{f}_{t}\left(x_{t}\right)\right) \hat{g}_{t}\left(x_{t}\right)}{\sum_{x_{t} \in \mathcal{X}_{t}} \delta_{k}\left(\hat{f}_{k}\left(x_{t}\right)\right)} ck(0)​=∑xt​∈Xt​​δk​(f^​k​(xt​))∑xt​∈Xt​​δk​(f^​t​(xt​))g^​t​(xt​)​
\quad\quad其中,f^t=g^t∘ht\hat{f}_{t}=\hat{g}_{t} \circ h_{t}f^​t​=g^​t​∘ht​表示之前学到的目标假设。这些质心可以更可靠地区分目标域内不同类别的分布。然后作者通过最近质心分类器得到伪标签:
y^t=argmin⁡kDf(g^t(xt),ck(0))\hat{y}_{t}=\operatorname{argmin}_{k} D_{f}\left(\hat{g}_{t}\left(x_{t}\right), c_{k}^{(0)}\right) y^​t​=argmink​Df​(g^​t​(xt​),ck(0)​)
\quad\quad其中DfD_fDf​(a,b)衡量a和b之间的cos距离。最后,作者基于新的伪标签计算目标质心:
ck(1)=∑xt∈Xt1(y^k=k)g^t(xt)∑xt∈Xt1(y^t=k)c_{k}^{(1)}=\frac{\sum_{x_{t} \in \mathcal{X}_{t}} 1\left(\hat{y}_{k}=k\right) \hat{g}_{t}\left(x_{t}\right)}{\sum_{x_{t} \in \mathcal{X}_{t}} 1\left(\hat{y}_{t}=k\right)} ck(1)​=∑xt​∈Xt​​1(y^​t​=k)∑xt​∈Xt​​1(y^​k​=k)g^​t​(xt​)​
\quad\quad作者将yt^\hat{y_t}yt​^​记作自监督伪标签,因为他们是以一种自监督方式得到质心生成的。在多轮训练中继续用上述公式更新质心和标签。实验验证更新一次就可以给出足够好的伪标签。

\quad\quad总结:给定源模型fs=gs∘hsf_{s}=g_{s} \circ h_{s}fs​=gs​∘hs​和上面生成的伪标签,SHOT冻结来自源hth_tht​=hSh_ShS​的假设,并学习特征编码器gtg_tgt​,完整的目标为:
L(gt)=Lent(ht∘gt;Xt)+Ldiv (ht∘gt;Xt)−βE(xt,y^t)∈Xt×Y^t∑k=1K1[k=y^t]log⁡δk(ht(gt(xt)))\mathcal{L}\left(g_{t}\right)=\mathcal{L}_{e n t}\left(h_{t} \circ g_{t} ; \mathcal{X}_{t}\right)+\mathcal{L}_{\text {div }}\left(h_{t} \circ g_{t} ; \mathcal{X}_{t}\right)-\beta \mathbb{E}_{\left(x_{t}, \hat{y}_{t}\right) \in \mathcal{X}_{t} \times \hat{\mathcal{Y}}_{t}} \sum_{k=1}^{K} 1_{[k=\hat{y} t]} \log \delta_{k}\left(h_{t}\left(g_{t}\left(x_{t}\right)\right)\right) L(gt​)=Lent​(ht​∘gt​;Xt​)+Ldiv ​(ht​∘gt​;Xt​)−βE(xt​,y^​t​)∈Xt​×Y^​t​​k=1∑K​1[k=y^​t]​logδk​(ht​(gt​(xt​)))
\quad\quad其中β\betaβ>0是一个平衡超参数。

$\quad\quad$1.4源模型的网络架构

\quad\quad作者还研究了如何为问题训练一个更好的源假设。作者讨论了能参数化特征编码模块和假设的神经网络模型。首先回看交叉熵损失的期望网络输出。如果ySy_SyS​=k,那么最大化fs(k)(xs)=exp⁡(wkTgs(xs))∑iexp⁡(wiTgs(xs))f_{s}^{(k)}\left(x_{s}\right)=\frac{\exp \left(w_{k}^{T} g_{s}\left(x_{s}\right)\right)}{\sum_{i} \exp \left(w_{i}^{T} g_{s}\left(x_{s}\right)\right)}fs(k)​(xs​)=∑i​exp(wiT​gs​(xs​))exp(wkT​gs​(xs​))​意味着最小化gSg_SgS​(xSx_SxS​)和wkw_kwk​之间的距离,其中wkw_kwk​是最后FC层的第k个权重向量。在理想情况下,所有来自第k类的样本将有一个和wkw_kwk​相似的特征嵌入。

\quad\quad由于权重归一化导致了在softmax输出内的內部距离问题,我们采用权重归一化来保持每个权重向量wiw_iwi​的准则与FC分类层中的相同。而且,批归一化BN可以减少內部数据集偏移,因为不同域共享相同的平均值和方差。

$\quad\quad$2.实验结果:
$\quad\quad$2.1网络参数:

\quad\quad网络架构:对于数字识别任务,使用经典的LeNet-5网络或LeNet的一个变体网络。对于目标识别任务,使用预先训练过的ResNet-50或ResNet-101模型作为骨干模块。接下来使用一个瓶颈层(256个单元)和一个FC分类层替换了原来的FC层。在瓶颈层内的FC层后放置一个BN层,在最后一层FC层中使用一个权值归一化层。

\quad\quad网络超参数:通过反向传播对整个网络进行训练,对于网络中新添加的层,学习率是网络主干层的10倍。具体来说,训练时采用动量为0.9的小批量SGD优化器,权重衰减为1e−31e^{-3}1e−3,学习率为1e−21e^{-2}1e−2.作者还进一步采用了η=η0⋅(1+10⋅p)−0.75\eta=\eta_{0} \cdot(1+10 \cdot p)^{-0.75}η=η0​⋅(1+10⋅p)−0.75公式来变换学习率,其中p随着训练的过程从0变为1。此外,所有任务的batch size大小均为64。所有数据集中β值都设置为0.3。

\quad\quad对于没有训练验证分割的数据集,我们在源数据集中随机指定一个0.9/0.1的分割,并基于验证集生成最优的源假设。Digits、Office、Office-Home、VisDA-C和Office-Caltech数据集的的epoch分别设置为30、100、50、10和100。在将模型调整到目标领域中时,epoch数被设置为15。

$\quad\quad$2.2实验结果如下:

\quad\quad(因为时间有限,只在Office数据集上测试了性能)

Method A⇒W\mathrm{A} \Rightarrow \mathrm{W}A⇒W D⇒W\mathrm{D} \Rightarrow \mathrm{W}D⇒W W⇒D\mathrm{W} \Rightarrow \mathrm{D}W⇒D A⇒D\mathrm{A} \Rightarrow \mathrm{D}A⇒D D⇒A\mathrm{D} \Rightarrow \mathrm{A}D⇒A W⇒A\mathrm{W} \Rightarrow \mathrm{A}W⇒A AVG\mathrm{AVG}AVG
Source only 76.9 95.3 98.7 80.8 60.3 63.6 79.3
SHOT 90.1 98.4 99.9 94.0 74.7 74.3 88.6

无源域适应(SFDA)方向的领域探究和论文复现(第一部分)相关推荐

  1. 智能反射面(IRS)在无线通信安全领域应用的论文复现

    引言 Zhang Rui老师的将IRS引入无线通信安全的论文<Secure Wireless Communication via Intelligent Reflecting Surface&g ...

  2. 计算机图形学博士论文,关于计算机图形学探究的论文(2)

    关于计算机图形学探究的论文篇二 <关于计算机图形学的发展及应用探究> [摘要]计算机图形学经过三十多年的发展,在计算机艺术.计算机动画.自然景物仿真.图形实时绘制的方面都有很大程度的成就. ...

  3. 计算机发展最新趋势素材,计算机方面论文范文素材,与关于计算机科学与技术的趋势探究相关论文网...

    计算机方面论文范文素材,与关于计算机科学与技术的趋势探究相关论文网 本论文是一篇计算机方面论文网,关于关于计算机科学与技术的趋势探究相关毕业论文格式模板范文.免费优秀的关于计算机及计算机技术及量子计算 ...

  4. 怎么在一个领域搜索相关论文?

    大多做科研的童鞋们大概都会遇到一个头疼的问题:怎么找文献?如何保证找到的文献都是相关领域的经典文献?其实不光是你们,这件事折磨着每一个科研领域的"新秀"今天我就带领大家了解一下&q ...

  5. 【领域泛化】论文介绍《Respecting domain relations Hypothesis invariance for domain generalization》

    [领域泛化]论文介绍<Respecting domain relations Hypothesis invariance for domain generalization> 论文地址 摘 ...

  6. 【领域泛化】论文介绍《Learning to balance specificity and invariance for in and out of domain generalization》

    [领域泛化]论文介绍<Learning to balance specificity and invariance for in and out of domain generalization ...

  7. 计算机在微电子材料中的应用,新型纳米材料在微电子技术中的应用探究的论文...

    新型纳米材料在微电子技术中的应用探究的论文 摩尔定律一直是指导微电子行业发展速度的准则之一.根据摩尔定律,以硅材料为主的微电子器件的集成度越来越高,器件的特征尺度越来越小,从而使集成电路的性价比越来越 ...

  8. 【杂谈】如何学会看arxiv.org才能不错过自己研究领域的最新论文?

    文章首发于微信公众号<有三AI> [杂谈]如何学会看arxiv.org才能不错过自己研究领域的最新论文? 今天介绍一个用于追踪arxiv.org平台上最新论文的工具arxiv-sanity ...

  9. 计算机在盲童音乐教学中的具体应用,盲童钢琴教学实践和教学方法探究-特殊教育论文-教育论文.docx...

    盲童钢琴教学实践和教学方法探究-特殊教育论文-教育论文 --文章均为WORD文档,下载后可直接编辑使用亦可打印-- 盲童钢琴启蒙教学实践探析 摘要:近年来, 国家对素质教育的建设越来越重视并大力发展, ...

最新文章

  1. Anaconda环境管理
  2. 1090 Highest Price in Supply Chain 需再做
  3. 微软总裁:比尔盖茨人生简介和名言
  4. Java基础day20
  5. 一个RGB-T工作的小小感悟与总结
  6. iotop--补齐系统监视工具缺失的一环
  7. 学习总结:机器学习(六)
  8. Linux用户组笔记整理
  9. 如何将内核静态库编译连接到驱动程序中去【转】
  10. 今天 ,给大家变个魔术!!!
  11. python mysql in 参数_python mysql中in参数化说明
  12. 7-9 计算摄氏温度 (5 分)
  13. 计算机中那些事儿(二):如何神操作你的电脑
  14. scp 不输入密码登录
  15. 关于三维扫描仪,你需要知道这些
  16. 亚洲前沿科技展望:人工智能与区块链的融合发展
  17. 2020年系统架构师案例分析
  18. 【安装windows10 RTX3090 tensorflow的开发环境】
  19. 关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决。
  20. 面试官问的最后一个问题应该怎么回答?

热门文章

  1. 阿里SendSms短信服务
  2. 如何解决Office 2010中Excel文档双击打不开问题?
  3. Web3D应用开发在线IDE【中文版】
  4. 自定义表单开发过程及思路笔记
  5. 常用java工具代码备忘
  6. abaqus子程序 c语言,Abaqus的Vuamp子程序基本概念
  7. 使用JFlash读STM23 Flash 失败 经验分享
  8. 什么是URL和URI
  9. SAP系统权限配置一
  10. 算法-斐波那契数列 java