aper reading是一件非常有意思的事情,希望能坚持咯~
今天介绍的是《Image-to-Image Translation with Conditional Adversarial Networks 》
最开始接触GAN的时候,只知道GAN的G是输入随机高斯或者白噪声然后生成fake image的网络,于是就问小伙伴如何生成我想生成的类别的fake image呢?然后知道了有conditional GAN,原始的cGAN是在mnist的数据集上做的实验,并且能让G按照自己的指令生成对应类别的数字,当然,它的思想却流传了下去。(在一定程度上让GAN变成了一种监督学习。)
今天要介绍的pixel2pixel,虽然也是一种cGAN,但是加了L1Loss?GAN+L1Loss,监督生成的图片,使其变的更加清晰,和ground true更相像。
说句题外话,Berkeley确实出一些真的很牛逼的文章= =!
话不多说,直接上干货。
一、Method
二、Loss Function
三、Network architectures
四、results

一、Method
把一个edge图片输给一个网络G,以L1Loss作监督,然后再把edge图片和fake image用来concat起来,也就是把两个图片合成6个channel,输入给D;同时再把edge图片和ground truth做concat,再输入给D,通过GAN的交替训练,就可以train好这个网络。

二、Loss Function
对于GAN,pixel2pixel在D固定、G训练时,让上面的loss变得大;在D训练、G固定时,让上面的loss变得更小即可。
当然了,为了防止开始的时候G太弱而没有梯度,在train G的时候,照例用的-logD(x,G)
除了对抗loss外,G网络还有ground truth和fake image的L1Loss的监督。因为本质上,pixel2pixel是一个监督任务,而GAN是辅助这个监督任务更好的。
所以最终的Loss Function是:
三、Network architectures


生成器用的是U-Net,除了简单的下采样和上采样外,在encoder和decoder之间还有short cut,使得网络更好训练,结果更好。
GAN一般情况下的网络结构,在一些人的实验中已经表明对于要求高分辨率、高细节保持的图像领域中并不适合,有些人根据这一情况设计了PatchGAN的思路。这种GAN的差别主要是在于Discriminator上,一般的GAN是只需要输出一个true or fasle 的矢量,这是代表对整张图像的评价;但是PatchGAN输出的是一个N x N的矩阵,这个N x N的矩阵的每一个元素,比如a(i,j) 只有True or False 这两个选择(label 是 N x N的矩阵,每一个元素是True 或者 False),这样的结果往往是通过卷积层来达到的,因为逐次叠加的卷积层最终输出的这个N x N 的矩阵,其中的每一个元素,实际上代表着原图中的一个比较大的感受野,也就是说对应着原图中的一个Patch,因此具有这样结构以及这样输出的GAN被称之为Patch GAN。
同时,D的设计遵循DCGAN的要求

四、results

共收到 0 条回复
暂无回复。
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表