Open Set Domain Adaptation 开放集域适应

论文地址:
http://openaccess.thecvf.com/content_ICCV_2017/papers/Busto_Open_Set_Domain_ICCV_2017_paper.pdf。

简介

开放集域适应,何谓开放集?既然是Open Set,那么也应该有个对应的Closed Set,是的。作者用下一幅图解释了这两个概念:

Open Set Domain Adaptation 开放集域适应_第1张图片

Closed Set闭集的假设是目标域和源域包含了同一组对象类的图像。然后Open Set开放集则假设目标域与源域的对象类别可能并不都相同,同时,目标域中可能包含了与源域毫无相关的图像。在图中,开放集部分使用了一个Unknown类别来包括所有除了car、chair、dog三类(与目标域对应)之外的图像。

就像作者所说的标准的域适应基准都是假设在闭集中进行,即源域和目标域的类别本身就是对齐的,然而,在现实应用中,这种情况往往是受到限制的,更多的则是开集的情况,那么在文中是如何实现开集域适应的呢?

Open Set Domain Adaptation 开放集域适应_第2张图片

如上图,是开集域适应方法的简要框架,方法分为三步:b、c、d。

  • a中展示了数据情况:源域包含了带标签的数据,红蓝绿表示不同的类别,灰色表示Unknown类别,目标域中没有标签,但是它们的形状代表了它们有可能属于哪一类别,比如三角形、圆形、菱形、方形。
  • b:通过源域给目标域分配标签,同时让一些异常点没有标签。
  • c:将源域映射到目标域,最小化它们之间同类的距离,c中展示的是经过变换后的源域。
  • d:迭代b、c知道收敛到局部最优,然后通过在被变换后的源域中学习到的分类器对目标域进行分类。

文中的开放集方法既可以用于无监督场景中,又可以用于半监督场景中,主要看目标域中是否包含有数据,下面详细介绍。

通过源域给目标域分配标签(无监督场景)

假设源域包含 C − 1 \mathcal{C}-1 C1个类别,还有一个Unknown类别。然后这一步的目的是给目标域的数据 T \mathcal{T} T打上标签,怎么打呢?类似于聚类,这里定义一个关于将目标域数据分类到源域类别c的损失:

d c t = ∣ ∣ S c − T t ∣ ∣ 2 2 d_ct=||S_c-T_t||_2^2 dct=ScTt22

其中 S c S_c Sc表示属于类别c中所有数据的均值, T t T_t Tt则表示目标域样本的特征表示。很容易看出,这个损失就是用距离来衡量的。通过这样就可以初步给目标域数据分配到一个类别,当然也可以没有类别,就像上图b中的一些异常点。然后通过一个损失函数,进行优化:

Open Set Domain Adaptation 开放集域适应_第3张图片

其中 x c t 、 o t x_{ct}、o_t xctot为一个二值变量,其中 x c t x_{ct} xct表示样本t是否被标记为c, o t o_t ot表示样本t是否是一个异常点。然后下面有两个约束,第一个表示,样本t必须要被分配,要么分配为类别c,要么分配为异常点。第二个约束则表示至少有一个样本t被分配到类别c中,即保证每个类别至少要有一个样本。

通过源域给目标域分配标签(半监督场景)

半监督场景与无监督场景的不同之处在于目标域中包含有一部分带标签数据,既然已经有标签了,那就不需要给分配标签了,所以在半监督场景中,只是在上面的损失函数中新加了一项:

同时新增了一个约束 x c ′ t ′ = 1 x_{c't'}=1 xct=1。表示强制所有已经有标签的目标域数据都不改变其标签。上述损失函数中第一项和上面一样表示,样本t由 d c t d_ct dct给出所属类别c,第二项 d c c ′ = ∣ ∣ S c − S c ′ ∣ ∣ 2 2 d_{cc'}=||S_c-S_{c'}||_2^2 dcc=ScSc22则表示当样本t的临近点 N t N_t Nt中有临近点被分配到另一类的时候,额外加上一个类间的距离差作为损失。

将源域映射到目标域

f ( W ) = 1 2 ∑ t ∑ c x c t ∣ ∣ W S c − T t ∣ ∣ 2 2 f(W) = \frac{1}{2} \sum_t \sum_c x_{ct}||WS_c-T_t||_2^2 f(W)=21tcxctWScTt22

上式为映射损失函数,其中W为映射函数,表示最小化经过映射后源域中类别c的数据与目标域中近似于类别c的距离。该优化过程可以通过求解偏导数获得W。

对目标域分类

在目标域上的标签分配问题和映射问题迭代优化收敛之后,就可以在经过变换后的源域数据上训练SVMs来对目标域进行分类,在半监督问题中,使用第二个损失函数进行优化训练。

总结

文章的重点主要在于给源域的标签分配上,分配的思想类似于聚类,提出了一个Unknown以及Outlier异常类来容纳开放集中不属于源域的类别。方法在映射上使用的方法与以前的迁移学习方法差异不大。最后使用的分类方法也比较传统。所以这篇文章的主要贡献在于解决了闭集的场景问题,并用一个较为简洁的办法实现了开集的域适应。

参考

Busto P P, Gall J. Open Set Domain Adaptation[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:754-763.

《小王爱迁移》系列之九:开放集迁移学习(Open Set) - 王晋东不在家的文章 - 知乎
https://zhuanlan.zhihu.com/p/31230331

你可能感兴趣的:(迁移学习)