• 问答
  • 技术
  • 实践
  • 资源
TPAMI2020:无监督多类域适应:理论,算法与实践
技术讨论

作者丨豆豆@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/320057516
编辑丨极市平台
本文介绍我们最近的一篇TPAMI工作:Unsupervised Multi-Class Domain Adaptation: Theory, Algorithms, and Practice。 域适应(即domain adaptation)是迁移学习中的重要课题。该课题的目标是:

输入有标签的源域数据和无标签的目标域数据,输出一个适用于目标域的模型。 源域和目标域假设任务相同但是数据分布不同

既然源域和目标域的数据分布不同,该任务的经典解决方法是:

找到一个特征空间,将分布不同的源域和目标域数据映射到该特征空间后,希望源域和目标域的数据分布差异尽可能小; 这样基于源域数据训练的模型,就可以用于目标域数据上

如何找到该特征空间,更具体来说,如何衡量两个域数据分布之间的差异是域适应任务的核心问题。

通过对抗训练的方式实现两个域的数据分布对齐在域适应任务中被广泛采用[1]。近期很多对抗域适应的算法采用特征映射网络和分类器进行对抗的方式[2,3,4,5]。虽然基于分类器进行对抗训练的方法[2,3,4,5]取得了不错的结果,但是这些算法与现有理论并不是完全吻合的;也就是说,理论和算法之间存在一定的差距。 出于此目的,我们对现有的域适应理论进行了改进,使其可以更好的支撑现有算法。同时,基于该理论框架,我们提出了一系列新的算法,并在closed set, partial, and open set 域适应三个任务上验证了其有效性。该文章的要点可以总结如下:

  1. 理论方面:提出了Multi-Class Scoring Disagreement (MCSD) divergence来衡量两个域数据分布之间的差异;其中MCSD可以充分衡量两个scoring hypotheses(可以理解为分类器) 之间的差异。基于MCSD divergence, 我们提出了新的Adaptation Bound, 并详细讨论了我们理论框架和之前框架的关系。
  2. 算法方面:基于MCSD divergence 的理论,我们提出了一套新的代码框架Multi-class Domain-adversarial learning Networks (McDalNets)。McDalNets的不同实现与近期的流行方法相似或相同,因此从理论层面支撑了这些方法 [2,3,4,5]。此外,我们提出了一个新的算法SymmNets-V2, 该方法是我们之前会议工作[3]的改进版本。
  3. 实践方面:我们在closed set, partial, and open set 三种实验设置下验证了我们提出方法的有效性。代码链接:Code

理论方面:

如上文所言,如何衡量两个域之间的差异是域适应任务的核心问题。为了更加细粒度地衡量两个域之间的差异,我们引入了如下的 MCSD divergence:

$$
d^{(\rho)}_{MCSD}(P_x, Qx) := \sup\limits{\boldsymbol{f'},\boldsymbol{f}''\in \mathcal{F}}[\text{MCSD}_{Qx}^{(\rho)}(\boldsymbol f', \boldsymbol f'') - \text{MCSD}{P_x}^{(\rho)}(\boldsymbol f', \boldsymbol f'')] ,
$$

其中 $\text{MCSD}D^{(\rho)}(\boldsymbol f', \boldsymbol f'') := \frac{1}{K}\mathbb{E}{ \boldsymbol x\sim D} |\boldsymbol M^{(\rho)}(\boldsymbol f'(\boldsymbol x)) - \boldsymbol M^{(\rho)}(\boldsymbol f''(\boldsymbol x))|_1$ 充分衡量了scoring functions $\boldsymbol f', \boldsymbol f''$ 在域 $D$ 上的不一致性(相对于下面将要描述的其他度量方法). $\boldsymbol M^{(\rho)}(\boldsymbol f(\boldsymbol x))\in [0,1]^{K\times K}$ 的定义如下:

$$
\boldsymbol M^{(\rho)}{i,j}(\boldsymbol f(\boldsymbol x)) = \Phi\rho(\mui(\boldsymbol f(\boldsymbol x),j)), \ \Phi\rho(x) := \begin{cases} 0, & \rho \leq x \ 1 - x/{\rho}, & 0 < x < \rho \ 1, & x \leq 0 \end{cases},\ \mu_k(\boldsymbol f(\boldsymbol x),y) = \begin{cases} +f_k(\boldsymbol x), & k = y \ -f_k(\boldsymbol x), & k \in \mathcal{Y} \setminus {y} \end{cases}.
$$

$\Phi_\rho(x)$ 是ramp loss, $\muk(\boldsymbol f(\boldsymbol x),y)$ 指代absolute margin function $\boldsymbol u: \mathbb{R}^K \times \mathcal{Y} \rightarrow \mathbb{R}^K$ 的第 $k$ 个值。上述定义有些复杂,我们接下来对其直观描述: $\boldsymbol M^{(\rho)}$ 的每一列$\boldsymbol M^{(\rho)}{:,k}$ 计算了violations of absolute margin function $\boldsymbol u(\boldsymbol f(\cdot), k)$ ,进而 $ | \boldsymbol M^{(\rho)}{:,k} (\boldsymbol f') -\boldsymbol M^{(\rho)}{:,k} (\boldsymbol f'')|_1$ 度量了 $\boldsymbol f', \boldsymbol f''$ 之间margin violations的差异,一个直观的例子如Fig 1(c)所示:

到了这里,大家应该会疑惑:这个MCSD divergence 看上去挺复杂的,它有什么好处?MCSD的优势如下:

理论角度:MCSD可以充分度量 两个scoring functions 的差异!!同时导出后续的bound.
算法角度:对scoring functions 的差异的充分度量可以直接支撑基于分类器进行对抗训练的方法[2,3,4,5].

为了展示MCSD对scoring functions 差异的充分度量,我们基于absolute margin function $\boldsymbol u$ 引入其他domain divergence [6,7] 的变种或等效形式。

$\widetilde{\text{MCSD}}D^{(\rho)}(\boldsymbol f', \boldsymbol f'') := \mathbb{E}{\boldsymbol x\sim D}\Phi{\rho/2}[\mu{h{\boldsymbol f''}(\boldsymbol x)}(\boldsymbol f''(\boldsymbol x),h{\boldsymbol f'}(\boldsymbol x))]$ 是absolute margin-based variant of margin disparity (MD) [6]: $\mathbb{E}{ D}\Phi\rho(\rho{\boldsymbol f'}(\cdot, h{\boldsymbol f})) = \mathbb{E}{\boldsymbol x\sim D}\Phi\rho(\rho{\boldsymbol f'}(\boldsymbol x, h{\boldsymbol f}{(\boldsymbol x)}))$ , where $\rho_{\boldsymbol f}(\boldsymbol x, y) = \frac{1}{2} \left(fy(\boldsymbol x) - \max{y' \neq y} f_{y'}(\boldsymbol x) \right)$ 是relative margin function. 进而基于 $\widetilde{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 得到的divergence 是MDD 的变种。

$\widehat{\text{MCSD}}D^{(\rho)}(\boldsymbol f', \boldsymbol f'') := \mathbb{E}{\boldsymbol x\sim D}\mathbb{I}[\Phi{\rho}[\mu{h{\boldsymbol f''}(\boldsymbol x)}(\boldsymbol f''(\boldsymbol x),h{\boldsymbol f'}(\boldsymbol x))] = 1] $ 是ablolute margin-based equivalent of the hypothesis disagreement (HD) [7]$\mathbb{E}_{Qx} \mathbb{I}[h\neq h'] = \mathbb{E}{\boldsymbol x\sim Q_x} \mathbb{I}[h(\boldsymbol x)\neq h'(\boldsymbol x)]$. 进而基于 $\widehat{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 得到的divergence 等效于 $\frac{1}{2}\mathcal{H}\Delta\mathcal{H}-divergence$

$\text{MCSD}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') ,\widetilde{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f''), \widehat{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 作为3种不同的度量scoring functions差异的方法,其直观对比如Fig 1所示,可以总结如下:

  • _$\widehat{\text{MCSD}}D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 采用0-1二值loss只衡量了 $\boldsymbol f', \boldsymbol f''$ 的最终类别预测是否一致。
  • _相对 $\widehat{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ ,$\widetilde{\text{MCSD}}D^{(\rho)}(\boldsymbol f', \boldsymbol f'')$ 通过引入margin 在0和1之间做了一个平滑的过渡。
  • _以上两者都只考虑了scoring functions的部分输出,$\text{MCSD}D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 首次将scoring functions 的所有输出值加以考虑。故而MCSD可以充分度量scoring functions 的差异。

基于MCSD divergence, 我们可以得到如下的bound:

$\mathcal{E}Q(h{\boldsymbol f}) \leq \mathcal{E}^{(\rho)}P(\boldsymbol f) + d^{(\rho)}{MCSD}(P_x, Q_x) + \lambda$ ,其中 $\mathcal{E}Q(h{\boldsymbol f})$ 是targer error, $\mathcal{E}^{(\rho)}_P(\boldsymbol f)$ 是source error, $ \lambda$ 可视为与数据集合hypothesis space相关的常数。相应的PAC bound也可以导出。

总的来说,我们提出了一种MCSD divergence 来充分度量两个scoring functions的差异,进而提出了一种新的adaptation bound. 那么充分度量两个scoring functions的差异有什么好处呢?后续的对比实验经验性的回答了该问题。

算法方面:

上述理论可以推导出一系列的算法,我们将这些算法统一命名为McDalNets. 基于上述bound, 为了最小化target error $\mathcal{E}Q(h{\boldsymbol f})$ ,我们需要找到可以最小化 $d^{(\rho)}_{MCSD}(P_x, Q_x) $ 的feature extractor $\psi^$ 以及可以最小化source error $\mathcal{E}^{(\rho)}_P(\boldsymbol f)$ 的 $\psi^$ 和 $\boldsymbol f^*$ . 将 $d^{(\rho)}_{MCSD}$ 展开成 $\boldsymbol f', \boldsymbol f''$ 的形式可以得到如下的优化目标:

$$
\min\limits{\boldsymbol f,\psi}\ \mathcal{E}^{(\rho)}{\widehat{P}^{\psi}}(\boldsymbol f) + [\text{MCSD}_{\widehat{Q}x^{\psi}}^{(\rho)}(\boldsymbol f', \boldsymbol f'') - \text{MCSD}{\widehat{P}x^{\psi}}^{(\rho)}(\boldsymbol f', \boldsymbol f'') ], \ \max\limits{\boldsymbol f',\boldsymbol f''}\ [\text{MCSD}_{\widehat{Q}x^{\psi}}^{(\rho)}(\boldsymbol f', \boldsymbol f'') - \text{MCSD}{\widehat{P}_x^{\psi}}^{(\rho)}(\boldsymbol f', \boldsymbol f'')] ,
$$

其中 $\widehat{P}^{\psi}, \widehat{Q}^{\psi}$ 分别是分布 $\widehat{P},\widehat{Q}$ 经由 $\psi$ 映射得到的特征分布。该优化目标如下图所示:

上述目标仍然难以直接优化,因为ramp loss $\Phi_\rho(x)$ 会导致梯度消失的问题。为了便于优化,我们引入了一些MCSD的替代度量方法。这些替代度量方法应该具有如下特点:

  1. 当 $\boldsymbol f', \boldsymbol f''$ 在domain $D$ 上的输出越趋于一致,替代度量方法的值越小
  2. 当 $\boldsymbol f', \boldsymbol f''$ 在domain $D$ 上的输出越差异越大,替代度量方法的值越大

我们在本文中采用了三种MCSD的替代度量方法,分别是:

$$
(L1/\text{MCD} ): \mathbb{E}{\boldsymbol x\sim D}\frac{1}{K}|\phi(\boldsymbol f'(\psi(\boldsymbol x)))-\phi(\boldsymbol f''(\psi(\boldsymbol x)))|_1
$$

$$
(\text{KL}): \mathbb{E}_{\boldsymbol x\sim D} \frac{1}{2}[\text{KL}(\phi(\boldsymbol f'(\psi(\boldsymbol x))), \phi(\boldsymbol f''(\psi(\boldsymbol x)))) + \text{KL}(\phi(\boldsymbol f''(\psi(\boldsymbol x))), \phi(\boldsymbol f'(\psi(\boldsymbol x))))]
$$

$$
(\text{CE}): \mathbb{E}_{\boldsymbol x\sim D} \frac{1}{2}[\text{CE}(\phi(\boldsymbol f'(\psi(\boldsymbol x))), \phi(\boldsymbol f''(\psi(\boldsymbol x)))) + \text{CE}(\phi(\boldsymbol f''(\psi(\boldsymbol x))), \phi(\boldsymbol f'(\psi(\boldsymbol x))))]
$$

其中 $\psi(\cdot)$ 是softmax函数, $\text{KL}(\cdot,\cdot)$ 是KL散度, $\text{CE}(\cdot,\cdot)$ 是交叉熵函数. 其他具有上述两点特点且便于优化的函数都可以用来作为MCSD的替代度量方法。

当采用 $L_1$ loss 作为替代度量时,McDalNet与MCD [2] 方法极其相似。 需要强调的是,虽然MCD算法是从 $\mathcal{H}\Delta\mathcal{H}$ divergence [7] 推导而出的,但是MCD算法与 $\mathcal{H}\Delta\mathcal{H}$ divergence存在明显gap:MCD算法采用L_1 loss 衡量了classifiers ouputs 在element-wise的差异,而 $\mathcal{H}\Delta\mathcal{H}$ divergence 只考虑了classifiers 类别预测的不一致性。考虑到MCSD是基于对classifiers ouputs 在element-wise的差异的度量,因此MCSD divergence 可以更直接,更紧密的支撑MCD这类基于classifiers outputs 差异做对抗训练的方法。

类似 $\text{MCSD}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ ,我们也可以基于 $\widehat{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 和 $\widetilde{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'')$ 得到对应的类似McDalNet的算法。其中基于 $\widehat{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'') $ 得到的方法完全等效于DANN [1], 基于 $\widetilde{\text{MCSD}}_D^{(\rho)}(\boldsymbol f', \boldsymbol f'')$ 得到的方法是MDD [6] 的一个变种。

我们将不同McDalNet 的算法在标准的域适应数据集上进行对比,结果如下图所示:

除了上述的McDalNet框架,基于MCSD divergence, 我们还引入了一个Domain-Symmetric Networks (SymmNets)的新框架,如下图所示。

该框架是基于CVPR 的论文[3]做的改进,因此我们称之为SymmNets-V2. 相对于McDalNets, SymmNets-V2 没有额外的task classifier,而是将其与classifiers for 域对齐进行了合并。该方法在网络结构上的鲜明特点是将两个classifiers拼接到一起,并用拼接得到的classifier用作域对齐;通过这种方式,我们赋予了两个classifiers 明确的domain 信息,同时取得了更优的实验结果。SymmNets-V2 的优化目标如下:

$$
\min{\psi} \text{ConFUSE}{\widehat{P}^{\psi}}^{st} (\boldsymbol f^{s},\boldsymbol f^t) + \lambda \text{ConFUSE}_{\widehat{Q}x^{\psi}}^{st} (\boldsymbol f^{s},\boldsymbol f^t), \ \min{\boldsymbol f^s, \boldsymbol f^t} {\cal{L}}{\widehat{P}^{\psi}}^s (\boldsymbol f^s) + {\cal{L}}{\widehat{P}^{\psi}}^t (\boldsymbol f^t) + \text{DisCRIM}_{\widehat{P}^{\psi}, \widehat{Q}_x^{\psi}}^{st} (\boldsymbol f^{s},\boldsymbol f^t)
$$

其中 ${\cal{L}}{\widehat{P}^{\psi}}^s (\boldsymbol f^s) + {\cal{L}}{\widehat{P}^{\psi}}^t (\boldsymbol f^t)$ 是分类损失,用来赋予 $\boldsymbol f^{s},\boldsymbol f^t$ 类别信息, $\text{DisCRIM}_{\widehat{P}^{\psi}, \widehat{Q}x^{\psi}}^{st} (\boldsymbol f^{s},\boldsymbol f^t) $ 用来增大$\boldsymbol f^{s},\boldsymbol f^t$的输出差异, $\text{ConFUSE}{\widehat{P}^{\psi}}^{st} (\boldsymbol f^{s},\boldsymbol f^t)$ 和 $\text{ConFUSE}_{\widehat{Q}_x^{\psi}}^{st} (\boldsymbol f^{s},\boldsymbol f^t)$ 分别用来减小 $\boldsymbol f^{s},\boldsymbol f^t$ 在源域数据和目标域数据上的输出差异。其具体定义和与MCSD的联系请参考论文。

对于熟悉DANN [1] 的读者,可以将SymmNets看做将category information 引入DANN的直接扩展。具体来说,如果我们分别将 $\boldsymbol f^{s},\boldsymbol f^t$ 中的所有类别当成整体,那么整体化之后的 $\boldsymbol f^{s},\boldsymbol f^t$ 就分别对应着DANN 二分类domain classifier 中的源域和目标域;这样SymmNets中的增大/减小$\boldsymbol f^{s},\boldsymbol f^t$的输出差异就对应着DANN中的domain discrimination/domain confusion. 将DANN 二分类domain classifier 中的源域和目标域扩展成由$\boldsymbol f^{s},\boldsymbol f^t$拼接成的2K 分类器,可以为在域对齐过程中引入category information做好模型结构准备。

实践方面:

我们在closed set, partial, and open set domain adaptation三个任务共七个数据集上验证了我们提出的McDalNets和SymmNets的有效性。相对closed set 的任务,partial and open set domain adaptation任务中的难度增大很大程度是两个域中共享类别的样本与其中一个域中独有类别的样本在adaptation 过程中发生了错误对齐带来的;因此SymmNets中对category information 的引入和对category level alignment 的促进可以极大的缓解该错误对齐现象,从而对partial 和open set domain adaptation带来帮助。最后,我们通过如下的t-SNE可视化来说明我们提出的SymmNets的有效性。

[1] Domain-Adversarial Training of Neural Networks, JMLR16
[2] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation, CVPR18
[3] Domain-Symmetric Networks for Adversarial Domain Adaptation, CVPR19
[4] Unsupervised Domain Adaptation via Regularized Conditional Alignment, ICCV19
[5] Sliced wasserstein discrepancy for unsupervised domain adaptation, CVPR19
[6] Bridging Theory and Algorithm for Domain Adaptation, ICML19
[7] A theory of learning from different domains,ML10

  • 0
  • 0
  • 720
收藏
暂无评论