Pix2Pix
Last updated
Was this helpful?
Last updated
Was this helpful?
首先对于这样一个图像生成问题,一个很容易想到的损失模型就是L1 Loss
,直接做 生成图像 和 目标图像 的“差”。
对于这样的一个损失函数,论文的作者也给出了使用L1损失进行训练的结果,或者说,让我们来看一看所有不同的损失的训练结果对比:
可以看到明显L1作为损失训练出来的图像更模糊。 但L1也是有优点的,对于图像的低频部分他能很好地掌握:
Although these losses fail to encourage high frequency crispness, in many cases they nonetheless accurately capture the low frequencies.
因此在设计Discriminator的时候,作者选择在L1基础上拓展。而接下来就是要考虑如何量化高频部分的损失。为此设计了PatchGAN:
only penalizes structure at the scale of patches. 只惩罚一个小的Patch视野内的损失。
它的具体结构就如之后描述的那样:
This discriminator tries to classify if each N × N patch in an image is real or fake. We run this discriminator convolutionally across the image, averaging all responses to provide the ultimate output of D. 批判模型试着判断每一个 $N \times N$ 的视野是真的还是假的,即使用卷积,最后将所有结果的平均作为损失值输出。
事实上所谓的PatchGAN就是一个卷积网络,卷积网络将源数据分块进行处理(和PatchGAN所期望的分块一样),以减少参数量、节省训练时间等等。 PatchGAN和rugular GAN的区别在于原本GAN的输出是单一常量,true or false,但是PatchGAN的输出是 $ N \times N $ 的向量。 类似于YOLO vs SSD,一个卷积带全连接,一个纯卷积。