Advertisement

improved open set domain adaptation with backpropagation 学习笔记

阅读量:

improved open set domain adaptation with backpropagation 学习笔记

文章目录

    • improved open set domain adaptation with backpropagation 学习笔记
      • TIP
      • ABSTRACT
      • 1.INTRODUCTION AND RELATED WORK
      • 2.PROPOSED METHOD
        • 2.1 Overall Idea

TIP

KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况
本文更改了OpenBP中的二元交叉熵损失,提高了识别率。

ABSTRACT

本文对Open set domain adaptation by back propagation(OSDA-BP)中用于提取潜在未知类别样本的二元交叉熵损失进行了深入的研究。基于这种新的理解,我们提出用对称的库勒贝克-莱布勒距离损失 来代替二元交叉熵损失

作者透彻详尽地解释了对于OSDA-BP中二元交叉熵损失的理解 ,并使用对称的KL距离来提出一个新的二元交叉熵损失公式

2.PROPOSED METHOD

2.1 Overall Idea

本文的方法框架主要还是基于论文《Open set domain adaptation by backpropagation》中的框架。该方法的框图为:
image-20201108213044235

其中源域D_s=\{(x^s_i,y^s_i)\}^{n_s}_{i=1}拥有n_s个已标注的样本,而目标域D_t=\{(x^t_i,y^t_i)\}^{n_t}_{i=1}拥有n_t个未标注的样本,其中x表示样本的图像,y表示样本相对应的标签。源域与目标域之间都存在彼此未拥有的类别。在这样的设定下,作者基于CNN训练网络f(\theta,x),来将输入的样本x_s或者x_t分类成K+1类,其中K表示已知类的个数,第K+1类表示未知类。即f(\theta,x)=\{P(cls(x)=1...P(cls(x)=K+1))\}.

模型使用了一个特征提取器与一个分类器,其中f(\theta,x)=C(G(\theta_g,x),\theta_c)。(\theta_g表示特征提取器的参数,而\theta_c表示分类器的参数)

在OpenBP中,首先使用标准交叉熵损失 L_s来进行源域样本的分类:

L_s(\theta,D_s)=\frac{1}{|D_s|}\sum \limits_{(x_s,y_s)\in D_s}l(y_s,f(\theta,x_s)),其中的l(y,f)=-\sum \limits_{j=1}\limits^{K}y_jlog(f_j),|D_s|表示源域样本的个数。

接着OpenBP使用一个二元交叉熵损失 L_u训练分类器来形成目标域中已知类与未知类之间的边界:L_u(\theta,x_t)=-(1-t)(1-log(P(cls(x_t)=K+1)))-tlog(P(cls(x_t)=K+1)),t的值为0.5.

为了将目标域中未知类别的样本分离,我们还可以使用二元交叉熵损失的平均形式L_u(\theta,D_t)=\frac{1}{|D_t|}\sum\limits_{x_t\in D_t}L_u(\theta,x_t).

使用p_t=(t,1-t)来表示一个由t(0<t<1)参数化的二元分布,对于任何目标域样本x_t,令\hat{t} \triangleq P(cls(x_t)=K+1),且p_{\hat{t}}=(\hat{t},1-\hat{t})。则p_tp_{\hat{t}}之间的KL距离为

d_{KL}(p_t||p_{\hat{t}})=tlog\frac{t}{\hat{t}}+(1-t)log\frac{1-t}{1-\hat{t}}=-tlog\hat{t}-(1-t)log(1-\hat{t})+v(t).

其中v(t)=tlogt+(1-t)log(1-t)对于一个固定的t来说是一个固定的值。

上面的二元交叉熵损失 L_u可以看作为(t,1-t)(p(cls(x_t)=K+1),1-p(cls(x_t)=K+1)之间除去常数v(t)的KL距离,通过设置t = 0.5,它为训练好的网络提供了一个合理的机制来区分已知类和未知类。

由于二元交叉熵损失本质上是一个KL距离,我们可以进一步利用它的对称形式:

L_{adv}(\theta,t,D_t)=\frac{1}{|D_t|}\sum\limits_{x_t\in D_t}L_{adv}(\theta,t,x_t)

L_{adv}(\theta,t,x_t)=d_{KL}(p_t||p_{\hat{t}(x_t)})+d_{KL}(p_{\hat{t}(x_t)}||p_t).

整理之后,总的损失为:

L(\theta,t)=L_s(\theta,D_s)+\lambda_1L_{adv}(\theta,t,D_t),\lambda_1=0.5

总的目标函数为:

\min\limits_{\theta_c}L_s(\theta,D_s)+\lambda_1L_{adv}(\theta,t,D_t).

\min\limits_{\theta_g}L_s(\theta,D_s)-\lambda_1L_{adv}(\theta,t,D_t).

全部评论 (0)

还没有任何评论哟~