登录

快速注册

DeepMind利用强化学习,训练智能体编写图像生成程序

作者:雷克世界 时间:2018/03/28 阅读:2122
原文来源:DeepMind 作者:Yaroslav Ganin、Tejas Kulkarni、Igor Bab […]

原文来源:DeepMind

作者:Yaroslav Ganin、Tejas Kulkarni、Igor Babuschkin、S. M. Ali Eslami、Oriol Vinyals

「雷克世界」编译:嗯~是阿童木呀、EVA

通过人类的眼睛来看这个世界,我们会发现,这个世界远远不只是我们眼角膜所反射的图像。比如,当我们看到一座建筑并称赞它的复杂设计时,我们能够领会到它所需要的工艺。这种通过使用创造事物的工具来解释事物的能力使我们对世界有了更丰富的理解,也是我们智慧的一个重要方面。

我们希望我们的系统也能够创造出同样的关于世界的丰富表征。例如,当我们观察一幅画的图像时,我们希望它们能够理解用来创造该画的画笔笔触,而不仅仅是在屏幕上显示的像素。

在本研究中,我们为人工智能体配备了与我们用来生成图像相同的工具,并证明了它们可以推论出数字、字符和肖像是如何被构造的。至关重要的是,它们学会了独立完成这项工作,并且不需要使用人为标记的数据集。这与最近的研究形成了鲜明的对比——目前的那些研究依赖于从人类的演示中进行学习,这个过程可能会很费时。

展开剩余85%

我们设计了一个深度强化学习智能体,它可以与计算机绘图程序进行交互,在数字画布上绘制笔触,并改变笔刷的大小、压力和颜色。这个未经训练的智能体会以绘制无明显意图或结构的随机笔触开始。为了克服这一点,我们必须创造一种方式来奖励这种智能体,从而鼓励它产生有意义的绘画。

为了达到这个目的,我们训练了第二个神经网络,叫做鉴别器,它的唯一目的是预测一个特定的图画是由这个智能体产生的,还是从真实的照片数据集中采样得到的。绘画智能体会根据它成功地“愚弄”了鉴别器,使其认为自己的画是真实的程度,而得到奖励。换句话说,智能体的奖励信号就是它本身学习的。虽然这类似于生成对抗网络(Generative Adversarial Networks,GAN)中的方法,但它的不同之处在于,在GAN设置中的生成器通常是一个直接输出像素的神经网络。与此相反,我们的智能体通过编写制图程序来与绘画环境进行交互,从而生成图像。

在第一组实验中,该智能体被训练去生成类似于MNIST数字的图像:它显示了数字的样子,但并没有显示出它们是如何被绘制的。通过尝试生成愚弄鉴别器的图像,智能体学会了控制笔刷,并操纵它以适应不同数字的风格,这种技术被称为视觉程序合成。

我们还训练它对特定的图像进行重现。在这里,鉴别器的目的是确定被重现的图像是目标图像的副本,还是它是由智能体生成的。这种区分对于鉴别器来说越困难,智能体就越能得到奖励。

至关重要的是,这个框架也是可解释的,因为它生成了一系列控制模拟笔刷的动作。这意味着,该模型可以将它在模拟绘画程序上的所学应用到其他类似的环境中去重现字符,例如在模拟的或真实的机器人手臂上。

此外,也有将这个框架扩展到真实数据集的可能。当智能体被训练去画名人的脸时,它能够捕捉面部的主要特征,比如形状、色调和发型,就像街头艺术家在使用限定数量的画笔去画一幅肖像时所做的那样:

从原始感觉中恢复结构化的表征是一种人类很容易拥有并且经常使用的能力。在这项研究中我们展示了,通过让人工智能体接触到我们用来重塑周围世界的相同工具,是有可能引导它们产生类似的表征的。通过这样做,它们学会了生成视觉程序,简洁地表达出引起它们观察的因果关系。

尽管我们的研究仅仅是向灵活的程序合成迈出的一小步,但我们预计,类似的技术应该是必要的,从而使人工智能体具有类似人类的认知、泛化和沟通能力。

论文简述

近年来,深度生成网络的发展取得了令人印象深刻的卓越成果。尽管如此,但这些模型往往会将其能力浪费在数据集的细枝末节上,这可能是由于其解码器中的感应偏差较弱。而这正是图形引擎可以派上用场的地方,因为它们能够抽象出低水平细节并将图像表示为高级程序。而当前的结合了深度学习和渲染器的方法受限于手工制作的似然性或距离函数(需要大量的监督),或难以将其推理算法扩展到更为丰富的数据集中。为了缓解这些问题,我们提出了SPIRAL,一个经过对抗性训练的智能体,它能够生成一个由图形引擎执行的程序,从而对图像进行解释和采样。该智能体的目标是欺骗一个能够区分真实数据和渲染数据的鉴别器网络,且它是在没有任何监督的情况下使用分布式强化学习进行训练的。此外,我们还有一个惊人的发现,即使用鉴别器的输出作为奖励信号,是使得智能体能够在匹配期望输出呈现结果时取得有意义进展的关键所在。据我们所知,这是在具有挑战性的现实世界(MNIST、OMNIGLOT、CELEBA)和合成3D数据集上所进行的端到端、无监督和对抗反向图形智能体的第一次演示。该智能体的相关演示视频可点击链接https://youtu.be/iSyvwAwa7vk查看。

SPIRAL将随机噪声或图像作为输入,并通过图形程序合成,迭代地产生貌似真实的样本或重建。第一行描述了给定随机噪声的无条件运行。第二行、第三行和第四行描述了给定带有手写字符的图像、蒙娜丽莎和内置在3D场景中的对象的有条件执行。

可以这样说,从原始感觉(raw sensations)中恢复结构化表示是一种人类很容易拥有并且经常使用的能力。给定一张手写字符的图片,将其分解为笔画可以更容易对该字符进行分类或重新构想,同样,了解房间的基本布局可以帮助你对该房间进行规划、导航和互动。除此之外,这种结构可以用于泛化、快速学习、甚至是与其他智能体进行通信。人们普遍认为,人类是利用模拟来学习这种技能的(Lake等人于2017年提出)。通过用一支笔和一张纸进行实验,我们了解了我们的手部动作是如何进行从而导致书写字符的,而通过想象力,我们了解到建筑布局是如何在现实中体现出来的。

在视觉领域中,出于场景理解的目的而进行的渲染器的倒置通常被称为逆图形(inverse graphics,Mansinghka等人于2013年、Kulkarni等人于2015年提出)。使用逆图形方法对视觉系统进行训练仍然攒在很大的挑战性。渲染器通常期望作为具有序列语义的输入程序,由离散符号(例如CAD程序中的击键)组成,并且非常长(具有几十或几百个符号)。除此之外,将渲染图像与实际数据进行匹配还会产生一个优化问题,因为黑盒图形模拟器通常是不可微的。

SPIRAL体系结构。(a)SPIRAL智能体的执行轨迹。该策略输出程序片段,这些片段在每个步骤中通过图形引擎R被渲染到图像中。智能体可以利用这些中间渲染来调整其策略。智能体只在最后一步执行中获得奖励。(b)SPIRAL的分布式训练。

为了解决这些问题,我们提出了一种使用深度强化对抗学习(Deep Reinforced Adversarial Learning)解释和生成图像的新方法。在这种方法中,一个经过对抗性训练的智能体生成视觉程序,然后由图形引擎执行视觉程序以生成图像。智能体通过欺骗鉴别器网络从而获得奖励,并且在没有任何附加监督的情况下由分布式强化学习进行训练。而鉴别器网络本身经过训练以区分渲染图像和真实图像。

我们的贡献如下:

·我们提出一种经过对抗性训练的智能体,它可以在视觉程序空间中解释和生成图像。至关重要的是,我们所提出智能体的体系结构对视觉程序的语义和域都是不可知的。

·在不需要标签的情况下将逆图形缩放到真实世界和过程数据集中,特别是,我们的模型发现了可产生MNIST和OMNIGLOT字符的笔划、产生名人面孔的画笔描边,以及一经渲染后便可重建3D场景图像的场景描述(如图1)。

·在对渲染结果和真实数据之间的像素误差进行优化方面,与直接对像素误差进行优化相比,利用鉴别器的输出作为强化学习的奖励信号所进行的优化结果明显更好。

·展示了当前最先进的深度强化学习技术,它可以为逆图形提供缩放路径,并可能为未来研究中的程序合成带来更为广泛的影响。

论文链接:https://deepmind.com/documents/183/SPIRAL.pdf

博文链接:https://deepmind.com/blog/learning-to-generate-images/



标签:

发表回复


copyright © www.scitycase.com all rights reserve.
京ICP备16019547号-5