研究成果
模型结构
Generator
Unet
基于经典的Encoder-decoder结构
在很多图像翻译任务中,输出和输出图像外观看起来不同,但结构信息是相同的
在Encode过程中,feature map的尺寸不断减小,低级特征将会丢失
在第 i 层与第 n–i 层间加入skip-connection,把 i 层的特征直接传到第 n–i 层
Discriminator
PatchGAN
像素级的l1 loss能很好的捕捉到图像中的低频信息,GAN的判别器只需要关注高频信息
把图像切成 N*N 的patch,其中N显著小于图像尺寸
假设在大于N时,像素之间是相互独立的,从而可以把图像建模成马尔科夫随机场
把判别器在所有patch上的推断结果,求平均来作为最终输出
可以把PatchGAN理解为对图像 纹理/style损失 的计算
PatchGAN具有较少的参数,运行得更快,并且可以应用于任意大的图像
训练细节
采用原始GAN的loss替换技巧,把最小化 log(1-D(x, G(x, z)) ,替换成最大化 logD(x, G(x, z))
生成器和判别器的训练次数为1:1,训练速度为2:1,稍稍降低判别器的优化速度
使用Adam优化器,学习速率为2e-4
Batch size在 1-10 之间,不同的数据集上有所区别
推断时保留dropout,来增加输出的随机性
推断时使用batch为1的batch normalization,实际是就是 instance normalization
instance normalization 仅在图像内部进行操作,可以保留不同生成图像之间的独立性
目标函数
Loss由 传统像素loss 和 Gan loss组成
l1 loss 比l2 loss 更能减少生成图像的模糊
初始层的随机噪声z,在训练过程中会被忽略,导致网络的条件输入只对应固定的输出
在推断时,通过保留dropout来产生轻微的随机性
如何得到更大随机性的生成结果,更完整的去拟合输入的分布,仍然有待研究
模型评估
人工评价
Amazon Mechanical Turk(AMT)
任务:地图生成,航拍照片生成,图像上色
限制观看时间,每张图像停留一秒钟,答题时间不限
每次评测只针对一个算法,包含50张图像
前10张图像为练习题,答题后提供反馈,后40张为正式标注
每批评测数据由50个标注者标注,每个评测者只能参与一次评测
评测不包含测验环节
FCN-score
判断图像的类别是否能被模型识别出来,类似于Inception Score
使用应用于语义分割任务的流行网络结构——FCN-8s,并在cityscapes数据集上进行训练
根据网络分类的精度,来对图像的质量进行打分由于图像翻译不太关注生成图像的多样性,所以不需要像 Inception Score 一样关注总体生成图
像的分布