【研究生工作周报】(cyclegan消融实验)

项目场景:

CycleGAN消融实验设计及相关问题分析

数据集:horse2zebra

链接: GAN评价指标汇总


CycleGAN Training Result

A2B Loss:
【研究生工作周报】(cyclegan消融实验)_第1张图片


B2A Loss:
【研究生工作周报】(cyclegan消融实验)_第2张图片


Both Direction Loss:
【研究生工作周报】(cyclegan消融实验)_第3张图片


Some perfect results

A2B results:
【研究生工作周报】(cyclegan消融实验)_第4张图片
【研究生工作周报】(cyclegan消融实验)_第5张图片
【研究生工作周报】(cyclegan消融实验)_第6张图片


B2A results:
【研究生工作周报】(cyclegan消融实验)_第7张图片
【研究生工作周报】(cyclegan消融实验)_第8张图片
【研究生工作周报】(cyclegan消融实验)_第9张图片


问题描述:

通过观察发现,A2B 与 B2A 两个方向的结果存在细微差异,表现在这个数据集上是 “马—>斑马” 的效果普遍优于 “斑马—>马”,我们采用网络结构完全对称,理论上这种现象不应该出现在。
【研究生工作周报】(cyclegan消融实验)_第10张图片
【研究生工作周报】(cyclegan消融实验)_第11张图片

原因分析:

Asumption1: 两个数据集的大小不一样
Asumption2: 数据不对称,学习难度不一样


解决方案:

先采用同等大小的数据集


GAN:Mode collapse

忽略cycle loss,按original GAN训练
【研究生工作周报】(cyclegan消融实验)_第12张图片


原因分析:

GAN训练随机性太强,引起模式崩溃,训练出鲁棒性强的GAN确实是一个难题

【研究生工作周报】(cyclegan消融实验)_第13张图片
【研究生工作周报】(cyclegan消融实验)_第14张图片


解决方案:

先重新训练一下看看结果

MGO-GAN:利用正交向量缓解GAN训练时模式崩溃的问题

从优化目标考虑:

u n r o l l e d G A N [ 1 ] unrolled GAN^{[1]} unrolledGAN[1]:unrolled GAN认为,因为生成器缺乏“先见之明”,导致了无法跳出模式崩溃的困境,生成器每次更新参数时,只考虑在当前生成器和判别器的状态下可以获得的最优解,生成器并不知道当前选择的最优解从长远来看并不是最优解。通过一定的改进,来赋予生成器“先见之明”。即生成器在更新时,不仅仅考虑当前生成器的状态,还会额外考虑以当前状态为起始点,判别器更新K次后的状态,综合两个信息做出最优解。

D R A G A N [ 2 ] DRAGAN^{[2]} DRAGAN[2]:GAN的参数优化问题并不是一个凸优化问题,存在许多局部纳什均衡状态。即使GAN进入某个纳什均衡状态,损失函数表现为收敛,其仍旧可产生模式崩溃,我们认为此时参数进入一个坏的局部均衡点。通过实践,发现当GAN出现模式崩溃问题时,通常伴随着这样的表现:当判别器在训练样本附近更新参数时,其梯度值非常大,故DRAGAN的解决方法是:对判别器,在训练样本附近施加梯度惩罚项。试图在训练样本附近构建线性函数,因为线性函数为凸函数具有全局最优解。DRAGAN的形式与WGAN-GP颇为相似,只是WGAN-GP是在全样本空间施加梯度惩罚,而DRAGAN只在训练样本附近施加梯度惩罚。

从网络架构考虑:

M A D − G A N [ 3 ] MAD-GAN^{[3]} MADGAN[3]:即使单个生成器会产生模式崩溃的问题,但是如果同时构造多个生成器,且让每个生成器产生不同的模式,则这样的多生成器结合起来也可以保证产生的样本具有多样性。在MAD(Multi-agent diverse)GAN中,共包括k个初始值不同的生成器和1个判别器,与标准GAN的生成器一样,每个生成器的目的仍然是产生虚假样本试图欺骗判别器。对于判别器,它不仅需要分辨样本来自于训练数据集还是其中的某个生成器(这仍然与标准GAN的判别器一样),而且还需要驱使各个生成器尽量产生不相似的样本。
MAD-GAN-Sim :MAD-GAN-Sim是一种“更强力”的版本,它不仅考虑了每个生成器都分别负责生成不同的样本,而且更细致地考虑了样本的相似性问题。其出发点在于:来自于不同模式的样本应该是看起来不同的,故不同的生成器应该生成看起来不相似的样本。


参考论文:

[1] Kodali N , Abernethy J , Hays J , et al. On Convergence and Stability of GANs[J]. 2017.
[2] Metz L , Poole B , Pfau D , et al. Unrolled Generative Adversarial Networks[J]. 2016.
[3] Ghosh A , Kulharia V , Namboodiri V , et al. Multi-Agent Diverse Generative Adversarial Networks[J]. 2017.

Ablation study

按照论文中消融实验的思路,设计GANCycleGANGAN+foward_lossGAN+backward_loss,比对图像转换效果。
比较可惜的是训练出的GAN模型产生了模式崩溃,但对后三者进行对比还是可以说明问题的。

Direction A2B:

【研究生工作周报】(cyclegan消融实验)_第15张图片

Direction B2A:

【研究生工作周报】(cyclegan消融实验)_第16张图片

量化指标

Direction Metric Cycle-GAN GAN + foward GAN + backward
A2B FID 184.63 209.27 214.93
A2B KIDx100 5.75 11.20 13.83
B2A FID 92.26 102.25 94.12
B2A KIDx100 1.04 1.48 1.34

结论

从结果来看,当只考虑一个方向的循环损失时,另一个方向效果就会很差。

  • 综合考量双向的Cycle Loss会有更好的表现效果。

GAN的一些评价指标

  • Inception Score: 将GAN生成的样本丢给Inception网络,输出类别概率,对于同一类别的图片,其输出的概率分布应该趋向于一个脉冲分布,可以保证生成样本的准确性。对于所有类别,其输出的概率分布应该趋向于一个均匀分布,这样才不会出现mode dropping等,可以保证生成样本的多样性。
  • Mode Score:Inception Score的改进版本,添加了生成样本和真实样本预测的概率分布相似性度量。
  • Kernel MMD
  • Wasserstein distance
  • Fréchet Inception Distance (FID):计算真实样本和生成样本在特征空间之间的距离。首先利用Inception网络来提取特征,然后使用高斯模型对特征空间进行建模。根据高斯模型的均值和协方差来进行距离计算。

你可能感兴趣的:(深度学习,人工智能,机器学习)