CycleGAN
Cycle-GAN 算是很久以前的东西了。它不需要成对的训练![数据,只需要来源于两个分布的不同数据即可。
核心思想就是上面的示意图。相比general的GAN来说,它有两套GAN,这两套可逆。
实际使用如下的adversarial loss 更稳定,
还要加上一致性损失
所以总的损失为
。以上就是Cycle-GAN的核心。
实际使用中,需要注意一些训练的trick,可参见CycleGAN训练trick。
核心就是两套GAN的使用,在两个域中相互转换,并且要加上重构损失,即相互可逆的程度。这个机制比MMD-GAN中的一个AE要强。
讨论:
是否可以在MMD-GAN中加入两个训练的机制?使用AE的话感觉这个衡量能力不够强?把噪声和带噪的都加入AE,生成的latent feature能否准确的衡量出两者的差异?如果是两套机制呢?
ADN
ADN是发表在MICCAI2019的文章,原意是用来解决医学图像比如MRI、CT等中产生的金属伪影的问题。但其结构并不是特定设计的,理论上可用于解决图像降质的问题。
核心思想在于把干净图片和带噪图片解耦,认为可分为四个空间,分别为带artifact的空间、干净的空间、内容空间和artifact空间。解耦即是在这些空间中的编码与解码。
核心也是采用多套编解码工具,总的损失函数为:
第一部分为对抗损失:
第一项是区分是否在真值空间,比的是y和从x中恢复的 ;第二项是区分是否在带artifact的空间,比的是和从y中产生的带artifact的。
第二部分是重构损失:
这里是从加上artifact恢复出的和原本的的差异,以及解码出的和y的差异。
但这里还有一个问题,就是上面的两个损失不能保证这里认为的x和y的artifact一致,所以这里还加了个噪声一致性损失,确保与中加入的噪声是一致的。
第三部分是噪声一致性损失:
这就是解码出的与原x的差异噪声与和产生的加入噪声的差别,体现一致性。
第四部分是自检损失:
这是从产生的带噪恢复的和原本y的差别,越小越好。这里想想为啥要加这一项呢?这是确保添加的噪声也被去除,更好地限制解空间。
思考:
这里的方法其实不限于artifact,理论上可用于任何加性噪声的去除。采用了多个解编码器来实现这一功能,和CycleGAN是一致的。那么,能否用于改进之前的DGAN呢,之前只用一套来衡量和的区别,感觉上还是差了一点,还是有改进的空间的。