AI如何生成新图像?玄机在GANs!
浏览量: 926
时间: 2021-07-27 12:00
文丨路易斯·布沙尔
译者丨艾安爽
编辑丨美玲
GAN 网络生成器结构为了生成新的图像,我们使用了一种叫做生成对抗网络(Generative Adversarial Networks,即GAN)的技术。GAN与一个由编码器、解码器和判别器组成的生成器共同作用。对生成器来说,编码器和解码器都是卷积神经网络,但解码器是反向工作的。生成器的工作原理如下:编码器接收图像,将其编码为压缩表达,解码器使用此表达改变图像风格,生成一个新图像。
GAN 网络生成器工作原理训练数据库的所有图像都将重复这一过程数千次,让编码器和解码器的训练效果达到最佳。
一个经典的GAN结构包括两部分:生成器和判别器。训练有加的生成器用于生成图像,而判别器通过判别生成的图像是来自数据库的真实图像还是生成器生成的图像来衡量生成图像的质量。这两个网络通常都由卷积神经网络组成(我在前一篇文章中也有提到过)。
正如上文所说,生成器长这样(见下图),主要由使用卷积运算对图像进行向下采样的编码组成。生成器再次使用卷积运算对图像进行向上采样,生成基于编码的具有相同风格的新图像,其目标是最终生成逼真的图像。
生成器创作“假图像”然后,判别器开始判别图像(从生成图像中或是数据库中抽取的图像)是真实的还是生成的(也就是高仿的)。与生成过程一样,训练数据库的全部图像将重复判别过程多次。判别器应用了卷积神经网络,但只使用编码部分,因为它只需要获取并理解图像。
判别器工作过程GANs是训练生成模型(生成器)的绝招,它将训练问题定义为有两个子模型的问题:生成器模型(用以生成新样本)和判别器模型(将样本分类为来自域的真实样本或生成的高仿样本)。这两个模型在一场对抗的零和博弈中同时得到训练。等到判别模型被“骗过”的几率超过一半时,生成模型才算是看见黎明的曙光了。在这种情况下,零和意味着当判别器成功地识别真假样本,其不需要改变模型参数,但生成器得大改一番,更新模型参数(这是在生成器翻车导致高仿被判别器识破的情况下)。另外,当生成器成功骗过判别器时,其不需要改变模型参数,这次轮到判别器受到惩罚,更新其模型参数。需要指出的是,每一步中只有一个模型会受到惩罚。这样,两个模型就可以共同改进,而随着时间的推移,生成器就可以逐渐以假乱真了。
如上所述,我们可以把生成器想象成一个试图制造假币的伪造者,而判别器就像警察,负责监督合法货币流通,严打假币。要想在这个游戏中通关,伪造者必须学会把假币造得跟真钱像同卵双胞胎一样。因此,生成网络得在与训练数据相同的分布中生成样本,以保证相似度,这样就可以在“警察”眼皮底下用高仿货币蒙混过关。
一旦训练大功告成,你可以给编码器发送图像。它会根据你的需求生成一个新的图像。无论工作任务怎么变化(把人像转换成另一种风格,比如卡通形象;或是把信手涂鸦创造成一幅美丽的风景),它的工作原理总体是不变的。