Domain Adaptive Image-to-image Translation
文章目录
论文摘要
不成对训练下的图像转换image-to-image translation (I2I)在各种应用中都取得了巨大的成功。但其泛化能力仍然是一个悬而未决的问题。本文证明了现有的I2I模型不能很好地推广到训练域之外的样本,首先,当测试样本超出其有效输入域时,I2I模型可能无法正常工作。其次,如果预期输出与模型训练的结果相距甚远,则结果不可靠。为了解决这些问题,提出了一种域自适应图像到图像转换(DAI2I)框架,该框架使I2I模型适用于域外样本。框架引入了两个子模块-一个将测试样本映射到I2I模型的有效输入域,另一个将I2I模型的输出转换为预期结果
一、Domain adaptation
在真实的机器学习项目中,我们的训练数据集与测试数据集之间是存在一定数据分布差异的,这个时候往往模型会出现过拟合的情况,模型在测试集上的效果不是很理想。
那怎么样在不改变数据集的情况下,提升测试集准确率呢。这个时候就有了迁移学习的一种代表方法:域自适应(Domain adaptation)。
另外在迁移学习中又分样本迁移、特征迁移和模型迁移,其中模型迁移学习与fine-tune(微调)有一些不同的地方:
虽然二者都是利用训练过的模型来解决问题,但实际上存在一些差异:
- fine-tune(微调):是对已经训练好的模型,把整个这个模型放到另一个数据集上继续进行训练(其中参数继续发生变化)
- 迁移学习:提取模型中所需要的部分层,对这些层进行冻结(固定层的参数)在冻结层后增加新的训练层,最后完成训练。
fine-tune是继续更新模型的参数,迁移学习是固定一部分参数,训练更新一部分参数。
定义源域(训练集):source
定义目标域(测试集):target
主要的思路就是将source训练好的模型能够用在target上,域适配问题最主要的就是如何减少source和target不同分布之间的差异。域适配包括无监督域适配和半监督域适配,前者的target是完全没有label的,后者的target有部分的label,但是数量非常的少
通过在不同阶段进行领域自适应,研究者提出了三种不同的领域自适应方法:
- 样本自适应:对源域样本进行加权重采样,从而逼近目标域的分布。
- 特征层面自适应:将源域和目标域投影到公共特征子空间。
- 模型层面自适应:对源域误差函数进行修改,考虑目标域的误差。
样本自适应(样本迁移)
基本思想:
- 通过对source,进行重采样,在source里找到与target相似的数据,命这些相似数据为新的source。
- 把source数据的数据量,量权值进行调整,使其这些数据与target数据分布基本一致
也可以对source的数据集进行数据增强,在图像中,可以对图像进行旋转,缩放,白噪声等。
优点缺点:
优点:方法简单,容易
缺点:权重选择与数据相似度衡量标准难定
特征自适应(特征迁移)
特征自适应也可以说是特征迁移,
基本思路:
通过构建特征提取网络,训练网络模型,使模型能够提取出source与target的共同特征部分,相似的数据分布。如下图所示,我们输入source和target数据集
如上图,特征提取器可以看成GAN中的generator,domain classifier就是GAN中的discriminator,我们的目的,就是找到一个特征提取器,能够使训练集与测试集的特征分布,几乎一样的,可以骗过domain classifier。
优缺点:
优点:大多数方法适用
缺点:在于难于求解,容易发生过适配
模型自适应(模型迁移)
模型自适应就是最常用的迁移学习方式,模型迁移。
基本思想:
- 通过已经训练好的模型,将模型放入到一个新的领域数据集中训练
- 固定住模型部分层(不改变层的结构,以及参数)
- 更改部分模型层,(初始化这些层的参数,可能也会改变层的结构)
- 训练模型
二、DAI2I整体框架
由于缺少
B
+
B^{+}
B+样本阻止我们直接学习
F
B
−
→
B
+
F_{B^{-}\rightarrow B^{+}}
FB−→B+。 然而,我们学习了一对映射函数
F
B
→
A
F_{B\rightarrow A}
FB→A和
F
A
→
B
F_{A\rightarrow B}
FA→B,它们在A(人脸)和B(猫脸)之间进行翻译。 在此设定下,我们通过依次堆叠,最终得到
F
B
−
→
B
+
(
⋅
)
=
F
A
→
B
(
F
A
−
→
A
+
(
F
B
→
A
(
⋅
)
)
)
F_{B^{-}\rightarrow B^{+}}(·) = F_{A\rightarrow B}(F_{A^{-}\rightarrow A^{+}}(F_{B\rightarrow A}(·)))
FB−→B+(⋅)=FA→B(FA−→A+(FB→A(⋅))) 该方法首先将中性猫脸转换为人脸,然后用基本模型
F
A
−
→
A
+
F_{A^{-}\rightarrow A^{+}}
FA−→A+改变其表情,最后将其转换回猫脸。 这里,
F
B
→
A
F_{B\rightarrow A}
FB→A(·)可以被视为像素级的自适应,其将无效的输入样本转换为有效的,以便它们可以由
F
A
−
→
A
+
F_{A^{-}\rightarrow A^{+}}
FA−→A+处理。 另一方面,
F
A
→
B
F_{A\rightarrow B}
FA→B(·)将
F
A
−
→
A
+
F_{A^{-}\rightarrow A^{+}}
FA−→A+(·)产生的非目标输出转换为目标输出。
传统的I2I model实现了
F
A
−
→
A
+
F_{A^{-}\rightarrow A^{+}}
FA−→A+ 这样一对映射。当目标图像来自一个域时,上面的解决方案效果最好。 如果目标图像来自不同的领域,外观差异很大(如油画、素描和猫,如图3(a)所示),上述模型可能会失败。 其原因是FB→A(·)可以将不同风格的目标图像映射到单一的A域,从而抑制了原始风格信息。 这使得重建FA→B(·)变得困难,因为在这一阶段需要样式信息。
但是我们加入
S
t
y
l
e
N
e
t
Style Net
StyleNet对目标域的图像进行特征提取得到
S
t
y
l
e
F
e
a
t
u
r
e
StyleFeature
StyleFeature。从而能为
F
A
→
B
F_{A\rightarrow B}
FA→B这一映射过程提供了可用的样式信息。
- AdaIN自适应实例归一化
结果对比
论文中展示结果
复现结果:
训练过程
测试结果:
input | happy | angry | sad | contempt | disgusted | numb | fearful | surprised |
---|