基于WGAN的图像修复应用
2018-07-16哈文全
文/哈文全
GAN对于生成式模型的发展具有非常重要的的意义。GAN的训练过程创新性地将两个神经网络的对抗作为训练准则并且可以使用反向传播进行训练,大大改善了生成式模型的训练难度和训练效率.对抗训练方法摒弃了直接对真实数据的复制或平均,增加了生成样本的多性。GAN在生成样本的实践中, 生成的样本易于人类理解。GAN解决了生成模型的一些问题,但是GAN也存在一些缺点。GAN采用对抗学习的准则,理论上还不能判断模型的收敛性和均衡点的存在性。并且在实际操作过程中,这种平衡性与同步性是很难把握的,导致了训练过程的不稳定性。另外,GAN生成的样本虽然存在多样性,但是存在崩溃模式现象,可能生成多样性,但是站在人们的角度看差别不大的样本。而本文旨在立足于GAN的基础上,使用Wasserstein-GAN (采用Earth-Mover(EM)距离代替JS散度来度量真实样本和生成样本分布之间的距离)来弥补原始GAN的训练不稳定以及易崩溃导致的多样性不足问题。
1 把图像解析成概率分布中的样本点
在本文中我们主要关注两种类型的信息:环境信息和知觉信息。我们从一种概率密度分布入手:正态分布(PDF)。图像和统计学之间的关键联系在于,我们可以把图像解析成一个高维概率分布中的样本点。当我们知道一些值并想修复所有缺失值时,我们就把它当作了一个最大化问题来讨论,修复得到的就是可能性最大的图像。如果直接观察正态分布中那些样本点,使用GAN来得到最适合的概率统计模型并且用它来拟合数据就可以了。
图1
2 WGAN
本文所用方法是在DCGAN的基础上使用Wasserstein距离来规避GAN的缺点,Wasserstein的距离又叫做Earth-Mover(EM)距离,定义如下:
W距离相比KL散度、JS散度的优越性在于,即使两个分布没有重叠,W距离任然能够反映它们的远近。而其优点可以概括如下:
(1)彻底解决GAN训练不稳定的问题;
(2)基本解决collapse mode多样性的问题,确保了生成样本的多样性;
(3)训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN训练得越好,代表生成器产生的图像质量越高;
(4)以上一切好处不需要精心设计的网络架构,最简单的多层全连接网络就可以做到。总结一下,WGAN彻底解决了训练不稳定问题, 同时基本解决了崩溃模式现象。
3 在输入图像上添加Mask
首先定义一个指定大小的二进制掩码,用来给输入图像添加遮盖,作为破损图像以供生成模型使用。
1.self.mask = tf.placeholder(tf.float32, self.image_shape, name='mask)
4 补全图像
语境损失:为了得到和输入图像相同的上下文,需要确保y已知像素对应位置的G(z)尽可能相似。所以当G(z)的输出和y已知位置图像不相似的时候,需要对G(z)进行惩罚。为此,我们用G(z)减去y中对应位置的像素,然后得到它们不相似的程度:感知损失:为了重建一个看起来真实的图像,需要确保判别器判定图像看起来是真实的D(G(Z)))。最后,将语境损失和感知损失组合起来,就可以找到