Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用

论文地址:http://www.icsi.berkeley.edu/pubs/vision/Hoffman_ECCV2012.pdf。

简介

这篇论文为Hoffman发于2012年ECCV,虽然是12年的,但是新颖之处在于其将聚类的方法用到了域适应中。该方法针对于多源域域适应场景,并且还不知道数据属于哪个域的情况-----因为在一个数据集中可能数据就属于不同的域,如下情况:

   

为了在不知道数据哪个域的情况下进行多源域迁移,文中提出的方法包含两个部分:1.多源域迁移(在知道源域数据属于哪个域的情况下进行迁移) 2.域聚类(明确数据属于哪个域)

多源域迁移

文中提出的多源域迁移是在一篇关于单源域特征转换方法[2]的基础上做出的改进,直接上优化方法:

其中c表示K个类别中的一个,y为一个测试点,以上优化方法的含义就是,在得到数据y的情况下,将它属于K个类别中拥有最大概率的类别作为y的标签。而p(c|y)又由p(d=k|y)p(c|d=k,y)得到,意思是:已知y的情况下,y属于域k的概率是多少,而在y属于域k的情况下,y属于类c的概率又是多少,通过概率最大化,获得最优标签。另外,概率p(c|d=k,y)的求解如下:

其中 ϕ A ϕ B \phi_{\mathcal{A}}、\phi_{\mathcal{B}} 表示源域和目标域上的数据映射, x k ( y ) x_k^*(y) 表示在域k中离数据点y最近的点。 W j W_j 则为在域j上的一个变换矩阵。公式很容易理解,也就是获取y在域k下,通过与y最近的点代表所属类别,除上在全部域上的相同的计算下获得的概率。

最后,通过在已知域标签和源训练数据上训练一个SVM分类器,该分类器的概率输出就是p(d=k|y)。

域聚类

对于不包含有域标签的数据集,则通过域聚类推断出最接近真实域标签 a a 的预测域标签 a ^ \hat{a} 。域聚类分为四步,以一个例子说明,假如目标是如下:

即:将异构的数据分为同构的数据(线条图像的特征空间和普通图像特征空间),为了完成这个目标,域聚类将通过四个步骤进行:

1.     2.
3.     4.
  • 第一步:根据图像类别标签(人脸or单车)划分为两类
  • 第二步:在上一步划分为两部分的情况下,在每类样本上独立的进行聚类,得到四种不同的类别:线条型人脸、普通人脸图像、普通单车图像、线条性自行车图像
  • 第三步:在第二步的基础上,为聚类加上约束
  • 第四步:迭代2-3步,输出域标签

另外域聚类的思路图如下:

其中 π G π L \pi^G、\pi^L 为权重向量, Z j G ( 0 , 1 ) Z_j^G \in (0,1) 用于指示集群j是否要被分配到某个域中。 Z j L ( 0 , 1 ) Z_j^L \in (0,1) 用于指示数据点i是否要被分配到某个集群中。 x i x_i 为数据点。 μ j \mu_j 为局部聚群的均值,代表一个局部聚群。 m m 为一个域的均值,用于代表一个域。

所以以上的思路是:1.对于数据点 x i x_i ,根据对各聚群的权重值获取各聚群的指示向量(0 or 1),然后通过各聚群的均值 μ i \mu_i ,决定出数据点 x i x_i 应该属于哪个聚群。

2.类似的,对于一个聚群 μ i \mu_i ,根据对各域的权重值获取各域的指示向量(0 or 1),然后通过各域的均值 m m ,决定出 μ i \mu_i 应该属于哪个域。

由此,各相关概率如下:

其中 σ I \sigma I 为聚群上的协方差。公式很好理解,在此不做解释。
到此为止,算是完成了第一、二步了,在第三步中,我们需要对聚类加上约束条件,即:一个聚群只包含了来自一个类别的数据,并且一个域只包含了一个聚群,也是一个域包含的类别数和聚群的类别数相同。其优化过程由K-means目标函数和EM算法完成,优化函数如下:

其中 δ ( l i l j ) Z i j L = 0 \sum \delta(l_i \neq l_j)Z_{ij}^L=0 表示所有分配到聚群j的数据点 x i x_i 必须包含有相同的类别标签。 δ ( l a b e k ( j ) = c ) Z j k G = 1 \sum \sum \delta(labek(j)=c)Z_{jk}^G=1 表示每个域必须与它所包含的聚群有着相同的类别标签。最后关于几个参数的优化如下:

  • Z i j L Z_{ij}^L :对于每个数据点 x i x_i ,给最小化 ( x i μ j ) 2 (x_i-\mu_j)^2 的聚群j设置 Z i j L = 1 Z_{ij}^L=1
  • μ j \mu_j :对于一个聚群j,设置 μ j = Z i j L x i + Z j k G m k Z i j L + Z j k G \mu_j = \frac{\sum Z_{ij}^L x_i + \sum Z_{jk}^G m_k}{\sum Z_{ij}^L} + \sum Z_{jk}^G
  • Z j k G Z_{jk}^G :对于一个聚群j,给最小化 Z j k G ( μ j m k ) 2 Z_{jk}^G(\mu_j - m_k)^2 的域设置 Z j k G = 1 Z_{jk}^G=1
  • m k m_k :对于一个域,设置 m k = Z i j G μ j Z j k G m_k = \frac{\sum Z_{ij}^G \mu_j}{\sum Z_{jk}^G}

通过迭代优化,完成第二、三步,就可以给数据分配上域标签了,这时就是多源域情况,在该情况下就可以进行上面的多源域迁移了。

参考

  1. Hoffman J, Kulis B, Darrell T, et al. Discovering Latent Domains for Multisource Domain Adaptation[C]// European Conference on Computer Vision. Springer, Berlin, Heidelberg, 2012:702-715.

  2. Kulis, B., Saenko, K., Darrell, T.: What you saw is not what you get: Domain
    adaptation using asymmetric kernel transforms. In: Proc. CVPR. (2011)

猜你喜欢

转载自blog.csdn.net/LiGuang923/article/details/83865053