Learning from Simulated and Unsupervised Images through Adversarial Training:解析simGAN

通过对抗式训练从模拟无监督图像中学习

该篇论文为苹果首篇AI论文,且为2017年cvpr的最佳论文。该论文主要通过训练一个对抗式网络,将合成图像中添加真实性的细节,最终得到一个有标签的,类似与真实图像的合成图像。本文将从以下几个方面介绍该论文。

  • 传统GAN网络结构
  • 训练过程
  • simGAN网络结构
  • 论文创新点
  • 未来研究方向
  • 总结

0.传统GAN网络

GAN网络结构

对于GAN网络来说,最重要的两个部分就是生成器和分辨器,生成器用来生成虚假的数据,分辨器用来分辨输入的数据是来自于生成器还是来自于真实的样本。

生成器的输入是一个n维向量,包含有各种待生成的图片的标签信息等,将该向量添加一个噪声后送入生成器中,生成器生成图片送入分辨器中,由分辨器判断这张图片是真实的还是虚假的,若将生成器生成的图片判断为虚假的,则生成器需要优化参数来生成更加逼真的,能够欺骗分辨器的图片;若被判断为是真实的,则分辨器需要优化参数来更准确的判断送入的图像。生成器生成的样本和真实样本是交替的送入分辨器中的。

1.GAN的训练过程

在对GAN进行训练的时候,初始化判别器和生成器的参数。首先要连续输入m张真实样本和m张生成样本来训练分辨器,如果分辨器不能良好的分辨的话,生成器无论生成多虚假的样本都能通过分辨器。然后,循环k次更新判别器后更新一次生成器的参数。分辨器判断结果是错误的话,损失是直接反向传播优化分辨器的参数,而保持生成器的参数不变,因为一般认为在当前的状态下生成器生成的样本足够“逼真”来骗过分辨器;如果判断正确的话,则固定分辨器的参数优化生成器的参数,这时候说明生成器生成的样本还是不够逼真,不能够骗过分辨器,需要继续努力生成更加逼真的样本。重复这样的过程直到输入的图片被判别为真和假的概率都为0.5,即图片属于哪一个类别都可以,这个时候就认为已经达到对抗中的平衡状态了。

2.simGAN网络结构

这篇论文的主要目的是希望通过构建一个生成式对抗网络,能够向模拟器生成的合成图像中添加逼真的效果,最终通过分辨器得到一个类似于真实世界中的图像,并且保留模拟器生成图像时的标签,最终得到一批带标签的,真实的图像数据集。

为了实现这样的目的,论文中构建了如上图所示的GAN网络——simGAN。模拟器根据输入的向量生成一批带标签的合成图片,然后将合成图片送入到修正器Refiner中,Refiner学习真实图像的一些特征,对合成图像进行修正,得到修正后的图像与未标注的真实图像一同送入分辨器中。如果分辨器将修正后的图像判别为真实,则固定Refiner的参数不变,根据损失函数,反向传播来优化分辨器的参数;如果判别为假,则固定分辨器的参数,对Refiner的参数进行优化。

3.论文创新点

论文中一共提到了四个创新点。

1.输入为合成图像,在Refiner中学习真实图像的分布
修正网络Refiner

合成图像送入Refiner中,Refiner通过学习到的真实图像的特征,对合成图像进行修正,添加一些逼真的细节。
2.正则化损失函数
正则化公式

该公式为修正器的损失函数,相比于传统的GAN网络的损失函数,除了交叉熵项,作者多加了一个正则化项,这个正则化项的目的是惩罚修正后的图像和原始图像之间的巨大差别,避免Refiner在修正合成图片的时候用力过猛修改了图像的内容。

3.设计一个buffer,用历史图片去训练分辨器
用历史图片去训练分辨器

论文作者指出,对于分辨器来说,无论一张图片是在生成器的任何时候生成的,它都应该将这张图片判别为假,而作者在训练的过程中,设置了一个缓冲区来存储分辨过的修正后图像,而每次向分辨器送入一个批次(mini-batch)的图像时都从buffer中选取一部分,从修正器中最近生成的图片中选取一部分,共同送入分辨器中,这样做的好处就是可以避免修正器重新引入了被分辨器遗忘的伪迹,并且避免训练发散。
用历史修正图像训练分辨器的效果

4.采用局部分辨器来代替全局分辨器。

局部分辨器

最后一点创新,就是作者定义的分辨器是局部分辨器并非一个全局分辨器。将输入分辨器的图像进行分割,将其分成w*h的小块,逐块的送入分辨器中,这样限制了接受域的大小,避免了修正器过分强调对某一部分的修正来欺骗分辨器,而且这样分块之后一幅图像对应着w*h个样本,丰富了样本的数量。

4.未来的研究方向

原文作者在论文的最后提出下一步的研究方向就是尝试将视频作为输入送入simGAN网络中。

5.总结

这篇论文翻来覆去看了一周多,碰巧这次老师让我给同学讲一下这篇论文的核心思想,反复看了很多的解析之后对于GAN和simGAN也有了一个初步的概念,这篇博客也算是对目前学到的知识的一个总结,有错误还请大家指出!

猜你喜欢

转载自blog.csdn.net/zuber123/article/details/79965988