论文信息
-
论文标题:Unsupervised Domain Adaptation via Regularized Conditional Alignment
-
论文作者:Safa Cicek, Stefano Soatto
-
研究机构:UCLA Vision Lab; University of California, Los Angeles
-
论文出处:ICCV 2019
-
引用信息:
@inproceedings{DBLP:conf/iccv/CicekS19,author = {Safa Cicek andStefano Soatto},title = {Unsupervised Domain Adaptation via Regularized Conditional Alignment},booktitle = {2019 {IEEE/CVF} International Conference on Computer Vision, {ICCV}2019, Seoul, Korea (South), October 27 - November 2, 2019},pages = {1416--1425},publisher = { {IEEE}},year = {2019},url = {https://doi.org/10.1109/ICCV.2019.00150},doi = {10.1109/ICCV.2019.00150},timestamp = {Thu, 05 Mar 2020 13:43:22 +0100},biburl = {https://dblp.org/rec/conf/iccv/CicekS19.bib},bibsource = {dblp computer science bibliography, https://dblp.org} }
-
代码链接:None
论文主要贡献和参考价值
-
主要贡献:
- 对源域和目标域的数据对齐,同时考虑输入和输出的联合条件分布
-
参考价值:
- 域适应考虑层次
-
损失函数设计
论文要点翻译
- 摘要
- 本文提出无监督域适应方法用于训练共享的特征编码器进而对输入和输出的联合分布进行对齐,这样的方式使得分类器是域无关的,联合对齐确保不仅域的边缘分布可以对齐,连域的标签也可以对齐
- 本文提出了新的目标函数,鼓励类的条件分布可以在特征空间有单独的支持
- 本文进一步使用对抗式的正则改进分类器的性能,这些分类器都是域的标注数据不可达的
- 引言
- 在分类场景中,无监督域适应主要是讲标注的源数据训练的模型迁移和适应到无标的目标数据域,通常来说,意图训练的模型可以同时在源域和目标域数据上进行输入数据的操作,虽然后者缺乏标注数据,比如某个应用可能能够获取很多带有精确标注的合成场景数据,但是希望训练的模型能够在真实数据上也有较好的性能,而真实数据中的手工标注则通常难以获取
- 在神经网络中最成功的学习参数的方法就是使用对抗策略,思想即是同时讲输出的类别和域进行识别,训练的的分类器尽可能好地在两个数据集上进行分类,其中的编码器需要欺骗真实数据场景的判别器。此时,可能分类器变成和域没有关系的,此时可以理解为将两个数据域的输入的边缘分布进行对齐,但是,这并不能保证成功的迁移,因为很有可能源域图像和目标与图像能够完美对齐,但是对齐的结果可能并不是预想的对齐结果(例如一张合合成场景的狗图和真实场景的猫图进行对齐了),因此,对于理想情况,域适应应当把输入和输出都需要做对齐,也就是说,域适应应当是输入输出的联合条件分布对齐,而不仅仅是域的边缘分布对齐,但是,这也产生了两个问题:(1)目标域数据的标签未知;(2)由于输入存在共享的特征表示,联合分布的对齐可能导致模式崩塌,进而失去模型的判别能力
- 为了解决上述问题,本文提出新方法进行联合分布的对齐,本文使用自监督学习的思想改进泛化性能,提出使用两折的标签空间的优化策略,得到的方法可以不要求超参数优化的情况下达到 SOTA 性能,本文具体分析了提出的目标函数,证明其中的优化方案有条件地对分布进行对齐,同时保持了模型的判别能力
- 形式化表示:给定 NsN^sNs 张标注源数据样本 xs∈Xsx^s\in X^sxs∈Xs 及其对应的标签 ys∈Ysy^s\in Y^sys∈Ys ,结合 NtN^tNt 张无标注的目标域数据样本 xt∈Xtx^t \in X^txt∈Xt, 其中整个训练集表示为 XXX 其大小为 N=Ns+NtN=N^s+N^tN=Ns+Nt,标注数据和无标注数据的采样来自两个不同分布,即 (xs,ys)?Ps,(xt,yt)?Pt(x^s,y^s)\sim P^s,(x^t,y^t)\sim P^t(xs,ys)?Ps,(xt,yt)?Pt 其中的 KL 散度 KL(Ps∥Pt)>0KL(P^s\|P^t)\gt 0KL(Ps∥Pt)>0 ,两个分布都是定义在 X×YX \times YX×Y 上的,其中 Y=1,…,KY={1,\ldots,K}Y=1,…,K,定义在 X 上的边缘分布以及采样样本
- 本文的目标在于训练分类器 f:X→Yf:X \to Yf:X→Y 以最小风险值将源域学习模型泛化到目标域,该风险可以使用交叉熵 min?fE(x,y)?Pt?CE(f(x);y)\min_f E_{(x,y)\sim P^t} \ell_{CE}(f(x);y)minf?E(x,y)?Pt??CE?(f(x);y) ,其中的 ?CE(f(x);y):=?<y,log?f(x)>\ell_{CE}(f(x);y):=-<y,\log f(x)>?CE?(f(x);y):=?<y,logf(x)>
- 方法
- 边缘分布的对齐可以通过域对抗神经网络实现,主要对源域数据加上标准的分类损失,以及一个对于域分类的二元分类损失,如果实现较好,则类分类器可以准确预测分类源数据,而二元的域预测其无法辨别源域和目标域数据之间的差异,因此,类预测器也可能正确对目标域数据进行分类,但是由于输出空间的误对齐,这个过程无法保证,可能导致源域中的某些类在目标域中被映射到不同的类别
- 本文方法的核心思想在于在域对齐的过程中不适用二元的对抗损失,而是使用 2K 的对抗损失,因为数据对应 2K 中不同的分类结果,前 K 中是源域的类别,后 K 中则是未知的目标域数据类别,从联合的域-类别预测其中的结果或者简言之成为联合预测其,由于在域和类变量层面学习分布,编码器需要通过最小化源域和目标域中的分类损失
- 在训练过程中,对于目标域数据,指派给联合预测器前 K 类标签的概率值很小,而这些值最终会收敛到 0.因此,本文需要独立的机制提供目标样本的伪标签,以期和源域进行联合预测器的对齐,为此,本文训练另一个预测其,本文叫做类别预测器,该预测器只输出类标签,类别预测器使用真实标签的源域数据进行监督训练,并通过半监督学习的方式在目标域上也进行训练
- 推理过程中,联合的预测器以及类预测器都可以用于推理,但是本文发现类预测器结果稍好,这主要因为联合预测器训练的是更难的域和类别的预测,而推理过程只需要类别的预测
- 本文将 UDA 从两方面考虑:第一步是解决 domain shift 的问题,主要是通过特征空间的分布对齐实现的,给定较好的对齐结果,则理论上可以使用源域训练的模型进行目标域的推理,但是一旦域之间匹配,有可能标签空间上的行为可以进一步改进泛化能力
- 网络架构
- 本文用 ggg 表示共享编码器,类别预测器是 hch_chc? 而联合预测器是 hjh_jhj? 总网络可以表示为 fc=hc?gf_c=h_c\circ gfc?=hc??g 以及 fj=hj?gf_j=h_j \circ gfj?=hj??g ,这样,给定输入 xxx 后可以得到对应的类别预测输出 fc(x)=hc(g(x))∈RKf_c(x)=h_c(g(x)) \in \mathbb R^Kfc?(x)=hc?(g(x))∈RK,相似地可以得到联合预测器的输出 fj(x)=hj(g(x))∈R2Kf_j(x)=h_j(g(x)) \in \mathbb R^{2K}fj?(x)=hj?(g(x))∈R2K
- 损失函数
- 类预测器是网络的主要组件,该组件的边缘特征可以通过联合预测器提供的损失进行对齐,类预测器使用标注样本中的交叉熵损失进行训练,这个源分类损失可以写为 Lsc(fc)=E(x,y)?Ps?CE(fc(x),y)L_{sc}(f_c)=E_{(x,y)\sim P^s} \ell_{CE}(f_c(x),y)Lsc?(fc?)=E(x,y)?Ps??CE?(fc?(x),y),其中的编码器 ggg 和类预测器 hch_chc? 都在更新过程中对此损失进行最小化
- 对于联合预测器也使用相同的标注数据的分类损失进行更新,即 Ljsc(hj)=E(x,y)∈Ps?CE(hj(g(x)),[y,0])L_{jsc}(h_j)=E_{(x,y)\in P^s} \ell_{CE}(h_j(g(x)),[y,0])Ljsc?(hj?)=E(x,y)∈Ps??CE?(hj?(g(x)),[y,0])
- 相似的,联合预测器在目标域样本上也进行训练,由于目标域数据标签不可达,因此使用的是类别预测器预测结果作为伪标签实现 Ljtc(hj)=E(x,y)∈Pxt?CE(hj(g(x)),[0,y^])L_{jtc}(h_j)=E_{(x,y)\in P^t_x} \ell_{CE}(h_j(g(x)),[0,\hat y])Ljtc?(hj?)=E(x,y)∈Pxt???CE?(hj?(g(x)),[0,y^?]) ,其中的 y^=ek,k=arg?max?kfc(x)[k]=arg?max?khc(g(x))[k]\hat y=e_k,k=\arg \max_k f_c(x)[k]=\arg\max_k h_c(g(x))[k]y^?=ek?,k=argmaxk?fc?(x)[k]=argmaxk?hc?(g(x))[k]
- 训练目标是对齐特征分布,因此,编码器需要混淆联合预测器,利用联合源对齐损失 Ljsa=E(x,y)∈Ps?CE(hj(g(x)),[0,y])L_{jsa}=E_{(x,y)\in P^s} \ell_{CE}(h_j(g(x)),[0,y])Ljsa?=E(x,y)∈Ps??CE?(hj?(g(x)),[0,y])
- 目标域:Ljta=E(x,y)∈Pxt?CE(hj(g(x)),[y^,0])L_{jta}=E_{(x,y)\in P^t_x} \ell_{CE}(h_j(g(x)),[\hat y,0])Ljta?=E(x,y)∈Pxt???CE?(hj?(g(x)),[y^?,0])
- SSL 正则的方式探索无标注数据
- 当源域和目标域特征匹配,此时 UDA 的主要目的在于半监督学习问题,一方面,对抗的源域适应可以处理源域和目标域数据之间存在的 domain shift 问题,对抗的输入平滑则将预测结果之间的偏差移除
- 对于判别模型,为了探索无标签数据,需要有模型参数的先验知识,应用熵最小化算法是一个广为人知的正则方法,这个方法强制决策边界在低密度区域,主要是在聚类假设的属性下进行设计,本文的类别预测器即是对该目标熵损失进行最小 Lte(fc)=Ex?Pxt?E(hc(g(x)))L_{te}(f_c)=E_{x\sim P_x^t}\ell_E(h_c(g(x)))Lte?(fc?)=Ex?Pxt???E?(hc?(g(x))) 其中的 ?E(f(x)):=?<f(x),log?f(x)>\ell_E(f(x)):=-<f(x),\log f(x)>?E?(f(x)):=?<f(x),logf(x)>
- 由于联合预测其在低熵估计训练,最小化熵已经满足了聚类假设,但是这个只对 Lipschitz 分类器满足,L 条件可以利用对抗学习的方法进行实现,VAT 使用二阶相似的方法近似对对抗输入变化 Δx\Delta xΔx 并且提出下列的近似用于对抗噪声,即 Δx≈?xr∥r∥2\Delta x\approx \epsilon_x\frac{r}{\|r\|_2}Δx≈?x?∥r∥2?r?
- 结合上述,可以得到最终的正则化损失 ?VAT(f(x)):=?CE(f(x),f(x+?xr∥r∥2))\ell_{VAT}(f(x)):=\ell_{CE}(f(x),f(x+\epsilon_x \frac{r}{\|r\|_2}))?VAT?(f(x)):=?CE?(f(x),f(x+?x?∥r∥2?r?))
- 因此,源域和目标域分别写为 Lsvat=E(x,y)?Ps?VAT(fc(x))L_{svat}=E_{(x,y)\sim P^s}\ell_{VAT}(f_c(x))Lsvat?=E(x,y)?Ps??VAT?(fc?(x)) 以及 Ltvat(fc)=Ex?Pxt?VAT(fc(x))L_{tvat}(f_c)=E_{x\sim P_x^t}\ell_{VAT}(f_c(x))Ltvat?(fc?)=Ex?Pxt???VAT?(fc?(x))
- 结合对抗损失 Ladv(g)=λjsaLjsa+λjtaLjtaL_{adv}(g)=\lambda_{jsa}L_{jsa}+\lambda_{jta}L_{jta}Ladv?(g)=λjsa?Ljsa?+λjta?Ljta?
- 摘要