本文翻译、总结自朱俊彦的线上报告,主要讲了如何用机器学习生成图片。
来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告
人员信息
主讲嘉宾
姓名:朱俊彦(Jun-Yan Zhu)
现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial Intelligence Laboratory, CSAIL)
个人主页:http://people.csail.mit.edu/junyanz/
主持人
周晓巍
现状:浙江大学CAD&CG国家重点实验室
个人主页:http://www.cad.zju.edu.cn/home/xzhou/
报告内容
这是机器学习滴时代!
计算机视觉(Computer Vision, CV)领域近年来发生了巨大的变化。在2012年之前,CV的主要研究方法是使用**人工设计(hand-designed)**的特征完成各种任务(见下图)。
2012年使用深度神经网络(Deep Neural Network, DNN) 在ImageNet的分类任务上取得了巨大成功(见下图)。
从此**深度学习(Deep Learning)**的相关研究如火如荼地展开了,比如说下面这三个栗子:
- 物体识别(Object detection) [Redmon etal., 2018]
- 对人体的理解(Human understanding) [Guler et al., 2018]
- 自动驾驶(Autonomous driving) [Zhao et al., 2017]
图形学中的尝试:趁手的武器 or 白费功夫?
在传统的图形学管线(pipeline)中,输出图像需要经过建模、材质贴图、光照、渲染等一系列繁琐的步骤(见下图)。
现在大家看到了Deep Learning的潜力,那我们自然的就有个想法:有没有可能使用Deep Learning简化计算机图形学(Computer Graphics)的研究呢?
一个直接的想法是把DNN“倒过来用”。之前的DNN可能是输入一幅图像,输出一个标签(比如说猫),那我们能不能输入“猫”这个字,输出一张猫的照片呢?
很遗憾,答案是No!因为这种任务实在太复杂啦!我们很难让DNN凭空输出图像这样的高维数据(High dimensional data)(这里的“高维”可以理解成数据量大)。实际上,在很长一段时间里,DNN只能输出数字这种简单的、低分别率的小图像,就像下面这样:
而想要生成想游戏场景这类的图片,这种方法根本没用。所以,我们必须得想出更厉害滴东西完成这项任务(使命感爆棚)!
GAN就完了?Naive!
于是…在月黑风高的某一天(画风逐渐跑偏),一个叫做生成对抗网络(Generative Adversarial Network)——也就是大名鼎鼎的GAN——的东西横空出世。作者是下面这位小哥和他的小伙伴们:
那么,我们该怎么GAN出图像呢?且听我细细道来~
一般来说,GAN中包含两种类型的网络 G G G和 D D D。其中, G G G为Generator,它的作用是生成图片,也就是说,在输入一个随机编码(random code) z z z之后,它将输出一幅由神经网络自动生成的、假的图片 G ( z ) G(z) G(z)。
另外一个网络 D D D为Discriminator是用来判断的,它接受 G G G输出的图像作为输入,然后判断这幅图像的真假,真的输出1,假的输出0。
在两个网络互相博弈(金坷垃日本人:不邀哒架)的过程中,两个网络的能力都越来越高: G G G生成的图片越来越像真的图片, D D D也越来越会判断图片的真假。到了这一步,我们就能“卸磨杀驴”——丢掉 D D D不要了,把