本文共 2231 字,大约阅读时间需要 7 分钟。
邓侃解读:DeepMind如何教AI自主学会画画?
给你一幅油画,问你是不是梵高风格,这个问题很容易回答。但是让你用文字描述,什么是梵高风格,却很难清晰地界定。
如何让电脑自动模仿梵高油画?DeepMind 想了一个办法。
1. 用强化学习算法,像走迷宫那样,在画布上涂抹颜色。刚开始时,不妨把强化学习算法设定为随机行走。一通乱走,直到把画布填满。
2. 强化学习算法需要设定报酬函数,评定算法的好坏,然后反复调整算法参数,使得报酬最大。刚开始时,随机涂鸦的作品,当然离梵高风格差距很大。差距越大,报酬越低。反复调整算法参数,使之获得的报酬越来越高。直到报酬不再增长,训练过程结束。
3. 设计一个报酬函数,如果电脑的作品,与梵高作品越相似,那么报酬越高。如何设计报酬函数呢?一个办法是做一个分类器(classifier),如果这个分类器,能够轻而易举地辨别电脑的作品,不是梵高油画,那么报酬越低。反之,如果分类器傻傻分不清哪一幅是电脑作品,哪一幅电脑作品,那么说明电脑已经模仿得很像,这时报酬很高。
DeepMind 用这个算法,教电脑模仿手写体数字,教电脑画头像。最后成像效果不错,但是笔划顺序不对。
原因是,模仿的参照物是静态的图像,而静态的图像不存在绘图的笔划顺序。
这个现象引发三点思考:
1. 本质上来说,让电脑绘图,无非是确定图像中每个像素的值。从这个意义上来说,不需要笔划顺序。因此,填满像素的最佳算法,应该不是强化学习这种强调顺序路径的算法。
2. 但是人类作画时,是很强调笔划顺序的。倒笔画会有什么伤害?常见的回答是,容易把字写歪。为什么倒笔画容易把字写歪?是人类肌肉适合从上到下,从左到右运动?如果是这样,电脑就无所谓倒笔画了。
3. 梵高的油画,中国的水墨,是很强调笔触顺序的。如何从静态的作品中,识别笔触顺序,然后把正确的顺序,融入强化学习的报酬函数?
以下为DeepMind博客译文:
完全自学、不需任何人类标注数据集
在人类的眼中,世界并非只是我们眼角膜上呈现的图像。比方说,当我们观赏建筑时,我们在赞叹其复杂设计的同时,也能领会到建造建筑所需要的工艺。人类可以通过工具来理解工具所创造出的物体,这让我们可以更好地理解世界,这种能力是人类智能非常重要的一面。
我们希望我们的系统在观察世界时也可以生成同样丰富的表征。例如,当系统观察一幅绘画的图像时,我们希望系统除了可以识别出屏幕上表示这幅画的像素外,还可以理解作画时画笔的笔触。
在本研究中,我们为人工智能体(artificial agents)配置了用来生成图像的工具。实验结果表明系统可以推理出生成数字、文字和绘画的方法,重要的是这些系统完全通过自学,没有借助任何人类标记的数据集。
图片来源: Shutterstock
我们设计了一个深度强化学习agent,这个agent可以与一个计算机绘画程序进行交互,在数字画布上作画,还可以改变画笔的大小、笔触压力和颜料颜色。在开始时,没有经过训练的agent只是乱画一通,看不出任何意图或构造。为了解决这个问题,我们创造出了一种奖励agent的机制,以使其生成有意义的绘画。
为此,我们另外训练一个名叫“判别器”的神经网络,用来预测某一幅绘画是由agent生成的,还是通过从真实照片数据集中采样得出的。绘画agent获得多大奖励取决于它成功“骗过”判别器的次数——也就是让判别器相信绘画是真实的。这种方法与生成式对抗网络(GANs)中使用的方法类似,不同之处在于GAN中的生成器通常是一个可以直接生成像素的神经网络。但是,我们的agent生成图像的方式是通过编写绘图程序来与绘画环境进行交互。
在第一组实验中,我们训练agent生成类似MNIST数字的图像:我们让它观察数字的模样,而不是教它如何画出这些数字。通过生成可以骗过判别器的图像,agent学习如何控制画笔,使画出的结果符合不同数字的样式,这种方法称为“视觉程序合成”(visual program synthesis)。
我们还训练agent生成特定图像。在本研究中,判别器的任务是判断生成的图像是通过复制目标图像得出的,还是由agent生成的。生成的图像让判别器越难判断,agent获得的奖励就越多。
可解释、可扩展到真实数据集
重要的是,这个框架是可解释的,因为它生成的是一系列控制虚拟画笔的动作。这意味着在类似的其他环境中,模型可以利用从模拟绘画程序中学到的模式再创造字符。例如,模拟或真实的机器手臂。请看视频:
该框架还可以扩展到真实的数据集中。当我们训练agent作出名人的脸部画像时,它能够捕捉到人物脸部的主要特征,例如形状、色调和发型,它可以像街头艺术家一样用不多的笔触就可以完成一幅肖像画。
从原始感知中找出有结构的表征是人类与生俱来的一种能力,在现实生活中我们经常使用这种能力。在本研究中,我们证明了:通过赋予AI我们再创造世界所用的工具,我们可以让智能体学习生成类似的表征。通过这种方法,artificial agent可以学习生成视觉程序,用以表示让它们得出观察的因果关系。
虽然我们的工作只让我们离实现灵活的程序合成更近了一小步,但是我们认为,如果要让AI拥有和人类一样的认知、归纳和沟通能力,可能要用到类似的方法。
原文发布时间为:2018-03-29
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号
原文链接:
转载地址:http://ggizx.baihongyu.com/