深度学习合成图像并不是什么新鲜事。谷歌自己就做过SketchRNN,能识别8条腿的猪有异常,输出4条腿的猪(戳这里看)。
不过这些都依赖于人类输入数据的指导。人类需要告诉模型,哪些输入图片是猪,模型才能从中总结规律。
昨天,谷歌DeepMind发出了一篇博文,介绍了其最新论文Synthesizing Programs for Images using Reinforced Adversarial Learning。
谷歌使用一种名叫SPIRAL的对抗性学习方法,先用一个强化学习代理(Agent)随机画画,再将成果输入另一个神经网络鉴别器(Discriminator)。鉴别器能判断某图形是由Agent生成的,还是从真实照片的数据集中采样而来。
如果代理生成的图像成功地骗过了鉴别器,就会获得奖励。也就是说,奖励函数本身也是由代理学习得来,人类并没有设置奖励函数。这样经过持续训练,强化学习得到的图像就会越来越接近真实照片。
该方法与生成对抗网络(GANs)的区别是,GANs中的生成器通常是直接输出像素值的神经网络。但是强化学习代理通过编写图形程序与绘图环境交互来生成图像,也就是说,可以将生成的图像中绘画的笔触通过一个机械臂画笔实现出来。
根据谷歌放出的一个绘画视频,该方法在数字、人物肖像的生成上,均取得了不错的效果。
谷歌绘画的视频
▼
在MNIST手写数字图像生成的实验中,输入数据包括手写数字的图像,但没有明确指出它们是如何绘制的。强化学习代理需要通过自学数字书写的笔画(图案、笔触强弱、笔顺),控制画笔,重现特定的图像。接下来,鉴别器将作出预测,该图像是目标图像的副本,还是由代理生成的。图像越难鉴别,代理得到的回报越多。
重要的是,这一切是可以解释的,因为它产生了一系列控制模拟画笔的动作。同时值得注意的是,这里对绘画的笔顺并没有强调,只要画得像,就不管是怎么画出来的了。
在人脸的真实数据集上,强化对抗式学习也取得了不错的效果。绘制人脸时,代理能够捕捉到脸部的主要特征,例如脸型、肤色和发型,就像街头艺术家用寥寥几笔描绘肖像时一样:
谷歌称,教会人工智能从对世界的观察中获得结构关系并表达出来,这是人工智能建立人类认知、概括和沟通能力的必由之路。