Partial Transfer Learning 使用选择性对抗网络的部分迁移学习

论文地址:
http://openaccess.thecvf.com/content_cvpr_2018/papers/Cao_Partial_Transfer_Learning_CVPR_2018_paper.pdf

简介

何为部分迁移学习呢,部分迁移的应用场景又是什么呢?----当目标域中的标签空间只是源域标签空间的一个子集时,如果将这个子集外的知识迁移到目标任务识别中,那么很大程度上会发生负迁移,而通过筛选,选出源域中与目标域的标签空间对应的那部分数据进行迁移,则很大程度上减少了负迁移的发生,这种关于源域部分知识的迁移就是部分迁移学习。

目前很大一部分迁移学习算法的应用场景都是目标域的标签空间与源域的标签空间相同,然后在现实场景中,这样的条件经常是达不到的,更多的情况则是因为源域的数据量比目标域大得多,往往源域的标签空间比目标域大,而目标域则是源域标签空间的一个子集,这篇论文则是应于这样的场景下提出将对抗学习与迁移学习相结合,以实现部分迁移。其实这篇论文的框架与Ganin的《Unsupervised domain adaptation by backpropagation》[2]中的框架很相似,也可以看做是以上网络的改进版。

文中通过扩展深度对抗网络来处理了一个大的域(源域)向一个小的域(目标域)的部分迁移问题,通过源域和目标域的标签空间对齐,从而筛选出异常类(源域和目标域标签空间交集之外的类别)的源域数据。 Selective Adversarial Networks(SAN)框架如下:

Selective Adversarial Networks

选择性对抗网络的框架如上图所示,其中f为被提取出来的深度特征。 y ^ \hat{y} 为预测标签, d ^ \hat{d} 为预测的域标签, G f G_f 是特征提取器, G y G_y L y L_y 是标签预测器和标签预测器的loss, G d k G_d^k L d k L_d^k 是第k个域判别器和域判别器的loss,k的大小为源域中类别的数量(比如只有两个类别,那么k=2),GRL则表示梯度反转层[2]。

文中称源域的标签空间为 C s \mathcal{C}_s ,目标域的标签空间为 C t \mathcal{C}_t ,而部分迁移中源域和目标域存在这样的关系: C t C s \mathcal{C}_t \subset \mathcal{C}_s 。同时称源域标签空间中除了目标域那部分以外的标签集为 C s C t \mathcal{C}_s \diagdown \mathcal{C}_t ,也叫作异常标签空间。SAN要做的就是要筛选出这些异常源域类数据以减小负迁移。

SAN的思想是让 G y G_y 通过有监督的方式优化标签预测器,最小化预测损失值,让网络根据 G f G_f 尽可能分类好样本,同时又要让域判别器的损失最大化,以至于域判别器能够更准确的判断出 G f G_f 是属于所有类别k中的哪一类,好给样本分配权重,让属于与目标域相关的源域类别样本的权值高,而属于异常类的权值低。然后通过一个GRL层(也就是让正的梯度变为负的,让负的梯度变为正的),让梯度反转,这样由于反转,最大化域判别器损失也就变为了最小化了,就可以与上面的 L y L_y 同时通过最小化进行优化。

存在一个问题, G y G_y 是一个有监督判别器,源域数据有标签是很正常的,但是目标域没有标签哦,遇到目标域数据怎么给域判别器损失进行优化呢?我们都知道数据经过 G y G_y 会得到一个概率指数,比如样本有多少比例属于哪一类,像[0.2,0.8]则表明样本有0.2的几率属于第一类,而有0.8的几率属于第二类,这个概率指数被称为probability-weighted,而作者也是用这个probability-weighted将样本分配到不同的域判别器 G d k G_d^k

目标函数

好了,那我们现在来看一下网络的损失函数:

第一项 L y L_y 是标签预测器的交叉熵损失,很常规的监督网络损失,其中 y i y_i 为样本的真实标签。

因为域判别器 G d G_d 的表现效果很受概率指数 y ^ i = G y ( x i ) \hat{y}_i=G_y(x_i) 的影响(因为上面说了 G d k G_d^k 的损失 L d k L_d^k 根据 G y G_y 而来)。因此作者用了一个熵最小化原则来重定义标签预测器 G y G_y ,使得类之间进行低密度分离。这由条件熵H在目标域 D t \mathcal{D}_t 上的概率 y ^ i k \hat{y}_i^k 实现,如下:

扫描二维码关注公众号,回复: 4644276 查看本文章

因此,这就有了以上损失函数中的第二项。

第三项 L d L_d 为域判别器的损失,其由众多小判别器 L d k L_d^k 通过加权构成,其中的权值则是上面提到的,样本属于异常类的权值低,而属于相关类的权值高。这里的权值由 1 n t x i D t y ^ i k \frac{1}{n_t} \sum_{x_i \in \mathcal{D}_t} \hat{y}_i^k 表示。后面的 L d k ( G d k ( G f ( x i ) , d i ) ) L_d^k(G_d^k(G_f(x_i),d_i)) 则是一个正常的有监督损失,其中 d i d_i 为样本的域标签, y ^ i k \hat{y}_i^k 则为上面提到的probability-weighted,第三项损失的意义是说每个子判别器通过probability-weighted来进行有监督优化,同时每个子判别器又通过权值相乘进行结合而成,其中样本属于异常类的权值低,而属于相关类的权值高。而第三项前面的负号则是因为上面提到的要最小化 G y G_y 并最大化 G d G_d 的原因。

好,到此为止,网络就可以根据这个损失函数进行优化了。

总结

SAN的框架和《Unsupervised domain adaptation by backpropagation》[2]中的很相似,其不同之处在于域判别器分为不同类的子判别器 G d k G_d^k ,并通过权值来筛选出异常类的样本,完成部分迁移,同时也更符合现实的情况。

参考

[1] Cao Z, Long M, Wang J, et al. Partial Transfer Learning with Selective Adversarial Networks[J]. 2017.

[2] Ganin Y, Lempitsky V. Unsupervised Domain Adaptation by Backpropagation[J]. 2015:1180-1189.

猜你喜欢

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