如何让机器学会生成一幅逼真的图片呢?2014年,Goodfellow给出了一种称为对抗生成网络 (GAN) 的方法[1],瞬间燃爆网络。
图1. 机器学会画画
我们还是先举个例子来铺垫一下。假设有那么一对师生,老师和学生水平都一般,但是学生有一个很强烈的梦想:要成为达芬奇那样的大画家。于是,这个勤奋的学生每天不停地画,画完就交给他的老师给予指导。老师呢本身水平也不高,只能找些世界名画对比,看学生画的是不是像,越像的话给出的分数越高。学生拿到这个评价后继续努力,希望从老师那里拿到更高的分数。老师为了能分辨出学生的画与世界名画之间的差距,也不得不一点点改进,努力给学生的画挑刺找茬。这样,学生的做画水平越来越高,老师的找茬能力也越来越强,最后学生成为了绘画大师,所画的画和世界名画一般无二;老师则成为了鉴赏大师,一双慧眼总是明查秋毫。
对抗生成网络所做的就是上面的励志故事。它有一个生成器G,给定一个随机数就可以生成一幅图片(扮演学生的角色);同时它有一个判别器D,用来区分G生成的图片和真实图片(扮演老师的角色)。G的训练目的是让D无法判断出它生成的图片和真实图片的差别,而D的目的是不论G怎么画,都逃脱不了它的法眼。这样的网络在学习收敛后,即可得一种生成器和判别器的均衡状态,这种均衡状态是由两个非合作个体通过博弈得到,通常称为纳什均衡。
图2. 对抗生成网络
有了这个连最好的老师D也挑不出什么毛病的学生G,那么就可以用G来生成图片了。图3是用真实人脸图片训练出的GAN所生成的“假”人脸图片。可以看到,这些“假”人脸图片在肉眼看起来都非常接近真实。图4是用GAN生成的一些风景和物体图片,这些图片也都非常真实。
对抗生成网络是近年来深度学习领域最重要的成就之一,被广泛应用在艺术创作、科学数据模拟等众多领域。
图3. 用GAN生成的人脸图片[2]
图4. 用GAN生成的风景和物体[3]
参考文献:
[1] Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[J]. Advances in neural information processing systems, 2014, 27.
[2] Tanaka F H K D S, Aranha C. Data augmentation using GANs[J]. arXiv preprint arXiv:1904.09135, 2019.
[3] https://everywai.webflow.io/help-article/gan-application-1
By:清华大学 王东