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

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

简介

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

Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第1张图片    Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第2张图片

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

多源域迁移

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

Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第3张图片

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

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

域聚类

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

Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第4张图片

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

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

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

Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第9张图片

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

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

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

由此,各相关概率如下:

Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第10张图片

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

Discovering Latent Domains for Multisource Domain Adaptation 聚类在域适应中的应用_第11张图片

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

  • Z i j L Z_{ij}^L ZijL:对于每个数据点 x i x_i xi,给最小化 ( x i − μ j ) 2 (x_i-\mu_j)^2 (xiμj)2的聚群j设置 Z i j L = 1 Z_{ij}^L=1 ZijL=1
  • μ j \mu_j μ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 μj=ZijLZijLxi+ZjkGmk+ZjkG
  • Z j k G Z_{jk}^G ZjkG:对于一个聚群j,给最小化 Z j k G ( μ j − m k ) 2 Z_{jk}^G(\mu_j - m_k)^2 ZjkG(μjmk)2的域设置 Z j k G = 1 Z_{jk}^G=1 ZjkG=1
  • m k m_k mk:对于一个域,设置 m k = ∑ Z i j G μ j ∑ Z j k G m_k = \frac{\sum Z_{ij}^G \mu_j}{\sum Z_{jk}^G} mk=ZjkGZijGμj

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

参考

  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)

你可能感兴趣的:(迁移学习,聚类,域适应,多源域,EM算法,K-means)