论文地址: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)的求解如下:
其中 表示源域和目标域上的数据映射, 表示在域k中离数据点y最近的点。 则为在域j上的一个变换矩阵。公式很容易理解,也就是获取y在域k下,通过与y最近的点代表所属类别,除上在全部域上的相同的计算下获得的概率。
最后,通过在已知域标签和源训练数据上训练一个SVM分类器,该分类器的概率输出就是p(d=k|y)。
域聚类
对于不包含有域标签的数据集,则通过域聚类推断出最接近真实域标签 的预测域标签 。域聚类分为四步,以一个例子说明,假如目标是如下:
即:将异构的数据分为同构的数据(线条图像的特征空间和普通图像特征空间),为了完成这个目标,域聚类将通过四个步骤进行:
- 第一步:根据图像类别标签(人脸or单车)划分为两类
- 第二步:在上一步划分为两部分的情况下,在每类样本上独立的进行聚类,得到四种不同的类别:线条型人脸、普通人脸图像、普通单车图像、线条性自行车图像
- 第三步:在第二步的基础上,为聚类加上约束
- 第四步:迭代2-3步,输出域标签
另外域聚类的思路图如下:
其中 为权重向量, 用于指示集群j是否要被分配到某个域中。 用于指示数据点i是否要被分配到某个集群中。 为数据点。 为局部聚群的均值,代表一个局部聚群。 为一个域的均值,用于代表一个域。
所以以上的思路是:1.对于数据点 ,根据对各聚群的权重值获取各聚群的指示向量(0 or 1),然后通过各聚群的均值 ,决定出数据点 应该属于哪个聚群。
2.类似的,对于一个聚群 ,根据对各域的权重值获取各域的指示向量(0 or 1),然后通过各域的均值 ,决定出 应该属于哪个域。
由此,各相关概率如下:
其中
为聚群上的协方差。公式很好理解,在此不做解释。
到此为止,算是完成了第一、二步了,在第三步中,我们需要对聚类加上约束条件,即:一个聚群只包含了来自一个类别的数据,并且一个域只包含了一个聚群,也是一个域包含的类别数和聚群的类别数相同。其优化过程由K-means目标函数和EM算法完成,优化函数如下:
其中 表示所有分配到聚群j的数据点 必须包含有相同的类别标签。 表示每个域必须与它所包含的聚群有着相同的类别标签。最后关于几个参数的优化如下:
- :对于每个数据点 ,给最小化 的聚群j设置
- :对于一个聚群j,设置
- :对于一个聚群j,给最小化 的域设置
- :对于一个域,设置
通过迭代优化,完成第二、三步,就可以给数据分配上域标签了,这时就是多源域情况,在该情况下就可以进行上面的多源域迁移了。
参考
-
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.
-
Kulis, B., Saenko, K., Darrell, T.: What you saw is not what you get: Domain
adaptation using asymmetric kernel transforms. In: Proc. CVPR. (2011)