「前言」:最近好久没更新公众号了,我一不小心陷入了一个误区:我以为自己看的文章足够多了,用之前的风格迁移和GAN的知识来解决一个domain adaptive的问题,一顿乱拳并没有打死老师傅,反而自己累个够呛。然后找到这样一篇不错的DA framework,来认真学习一下章法,假期结束重新用章法组合拳再来会会。
image.png
不同于以往的对抗模型或者是超像素信息来实现这个领域迁移,本文使用的是对抗生成网络GAN来将两个领域的特征空间拉近。
本文提出的是语义分割的领域自适应算法。论文特别关注的问题是:目标领域没有label。
传统的DA方法包含最小化某些可以衡量source和target两个分布的距离函数。两种常见的度量是:
本文的主要贡献在于提出了一种基于生成模型的特征空间源分布与目标分布对齐算法。
image.png
从图片中来初步判断,其实是比较好理解的:
原始图片定义为
,source domain的图片定义为
,target domain的图片定义为
.
现在我们假定已经准备好了数据和标签
:
基于最近的相关的成功的研究,不再在G的输入中显式的concatenate一个随机变量,而是在Generator中使用dropout layer
作者提出了很多的对抗损失:
image.png
除了上面说到的对抗损失外,还有下面的分割损失:
:在标准分割网络C中的pixel-wise的交叉熵损失;
:D网络也会输出一个分割结果,交叉熵损失;
:原始图像和重建图像之间的L1损失。
在每一个iteration中,一个随机的三元组被输入到模型中:
,然后网络按照下面的顺序进行更新参数:
image.png
和
;
❝
image.png
和
;
和
;
❝
image.png
❝
image.png
- 更新F网络是为了实现domain adaptive,$L^s_{adv,F}$是为了混淆fake source 和real target;
- 类似于G-D之间的min-max game,这里是F和D之间的竞争,只不过前者是为了混淆fake和real,后者是为了混淆source domain和target domain;
我们可以发现,这里面的D其实不是传统的GAN中的D,输出不再是单独的一个scalar,表示图片是fake or real的概率
最近有一篇GAN里面提到了,patch discriminator(这个论文恰好之前读过),这个是让D输出的也是一个二位的量,每一个值表示对应patch的fake or real的概率,这个措施极大的提高了G重建的图片的质量,这里继承延伸了patch discriminator的思想,输出的图片是一个pixel-wise的类似分割的结果,每一个像素有四个类别:fake-src,real-src,fake-tgt,real-tgt;
GAN一般是比较难训练的,尤其是针对大尺度的真实图片数据,一种稳定的方法来训练生成模型的架构是Auxiliary Classifier GAN(ACGAN)(真好,这个论文我之前也看过),简单的说通过增加一个辅助分类损失,可以训练一个更稳定的G,因此这也是为什么D中还会有一个分割损失
作者提高,每一个组件都提供了关键的信息,不多说了,假期回实验室我要开始用章法组合拳来解决问题了。