DeepMind的AI学会了画画,利用强化学习完全不需人教

简介: 如何让计算机自动模仿梵高油画?DeepMind给出了一个强化学习的方法。通过给强化学习算法设定报酬函数,反复调整算法参数,使得报酬最大,DeepMind的AI完全自学地学会了绘画。本文带来大数医达创始人邓侃博士的解读。

邓侃解读:DeepMind如何教AI自主学会画画?

给你一幅油画,问你是不是梵高风格,这个问题很容易回答。但是让你用文字描述,什么是梵高风格,却很难清晰地界定。

如何让电脑自动模仿梵高油画?DeepMind 想了一个办法。

1. 用强化学习算法,像走迷宫那样,在画布上涂抹颜色。刚开始时,不妨把强化学习算法设定为随机行走。一通乱走,直到把画布填满。

2. 强化学习算法需要设定报酬函数,评定算法的好坏,然后反复调整算法参数,使得报酬最大。刚开始时,随机涂鸦的作品,当然离梵高风格差距很大。差距越大,报酬越低。反复调整算法参数,使之获得的报酬越来越高。直到报酬不再增长,训练过程结束。

3. 设计一个报酬函数,如果电脑的作品,与梵高作品越相似,那么报酬越高。如何设计报酬函数呢?一个办法是做一个分类器(classifier),如果这个分类器,能够轻而易举地辨别电脑的作品,不是梵高油画,那么报酬越低。反之,如果分类器傻傻分不清哪一幅是电脑作品,哪一幅电脑作品,那么说明电脑已经模仿得很像,这时报酬很高。

eaec4692cf3869503fb3fb48be662403a585568b

DeepMind 用这个算法,教电脑模仿手写体数字,教电脑画头像。最后成像效果不错,但是笔划顺序不对。

原因是,模仿的参照物是静态的图像,而静态的图像不存在绘图的笔划顺序。

这个现象引发三点思考:

1. 本质上来说,让电脑绘图,无非是确定图像中每个像素的值。从这个意义上来说,不需要笔划顺序。因此,填满像素的最佳算法,应该不是强化学习这种强调顺序路径的算法。

2. 但是人类作画时,是很强调笔划顺序的。倒笔画会有什么伤害?常见的回答是,容易把字写歪。为什么倒笔画容易把字写歪?是人类肌肉适合从上到下,从左到右运动?如果是这样,电脑就无所谓倒笔画了。

3. 梵高的油画,中国的水墨,是很强调笔触顺序的。如何从静态的作品中,识别笔触顺序,然后把正确的顺序,融入强化学习的报酬函数?

以下为DeepMind博客译文:

完全自学、不需任何人类标注数据集

在人类的眼中,世界并非只是我们眼角膜上呈现的图像。比方说,当我们观赏建筑时,我们在赞叹其复杂设计的同时,也能领会到建造建筑所需要的工艺。人类可以通过工具来理解工具所创造出的物体,这让我们可以更好地理解世界,这种能力是人类智能非常重要的一面。

我们希望我们的系统在观察世界时也可以生成同样丰富的表征。例如,当系统观察一幅绘画的图像时,我们希望系统除了可以识别出屏幕上表示这幅画的像素外,还可以理解作画时画笔的笔触。

在本研究中,我们为人工智能体(artificial agents)配置了用来生成图像的工具。实验结果表明系统可以推理出生成数字、文字和绘画的方法,重要的是这些系统完全通过自学,没有借助任何人类标记的数据集

e3fb2d3a7f0b1f2e1ea983d96aebb46b5dd2e36f

图片来源: Shutterstock

我们设计了一个深度强化学习agent,这个agent可以与一个计算机绘画程序进行交互,在数字画布上作画,还可以改变画笔的大小、笔触压力和颜料颜色。在开始时,没有经过训练的agent只是乱画一通,看不出任何意图或构造。为了解决这个问题,我们创造出了一种奖励agent的机制,以使其生成有意义的绘画。

为此,我们另外训练一个名叫“判别器”的神经网络,用来预测某一幅绘画是由agent生成的,还是通过从真实照片数据集中采样得出的。绘画agent获得多大奖励取决于它成功“骗过”判别器的次数——也就是让判别器相信绘画是真实的。这种方法与生成式对抗网络(GANs)中使用的方法类似,不同之处在于GAN中的生成器通常是一个可以直接生成像素的神经网络。但是,我们的agent生成图像的方式是通过编写绘图程序来与绘画环境进行交互。

6f7ddba50b1f95af844fc59d5aa45b3b4a9f5d09

在第一组实验中,我们训练agent生成类似MNIST数字的图像:我们让它观察数字的模样,而不是教它如何画出这些数字。通过生成可以骗过判别器的图像,agent学习如何控制画笔,使画出的结果符合不同数字的样式,这种方法称为“视觉程序合成”(visual program synthesis)。

我们还训练agent生成特定图像。在本研究中,判别器的任务是判断生成的图像是通过复制目标图像得出的,还是由agent生成的。生成的图像让判别器越难判断,agent获得的奖励就越多。

可解释、可扩展到真实数据集

重要的是,这个框架是可解释的,因为它生成的是一系列控制虚拟画笔的动作。这意味着在类似的其他环境中,模型可以利用从模拟绘画程序中学到的模式再创造字符。例如,模拟或真实的机器手臂。请看视频:

566546f1f12bfec1d2241683d70731cae21396df

该框架还可以扩展到真实的数据集中。当我们训练agent作出名人的脸部画像时,它能够捕捉到人物脸部的主要特征,例如形状、色调和发型,它可以像街头艺术家一样用不多的笔触就可以完成一幅肖像画。

从原始感知中找出有结构的表征是人类与生俱来的一种能力,在现实生活中我们经常使用这种能力。在本研究中,我们证明了:通过赋予AI我们再创造世界所用的工具,我们可以让智能体学习生成类似的表征。通过这种方法,artificial agent可以学习生成视觉程序,用以表示让它们得出观察的因果关系。

虽然我们的工作只让我们离实现灵活的程序合成更近了一小步,但是我们认为,如果要让AI拥有和人类一样的认知、归纳和沟通能力,可能要用到类似的方法。


原文发布时间为:2018-03-29

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:DeepMind的AI学会了画画,利用强化学习完全不需人教

相关文章
|
10月前
|
人工智能 自然语言处理 文字识别
DeepMind首发游戏AI智能体SIMA:开启虚拟世界的智能探索之旅
【4月更文挑战第3天】DeepMind推出了SIMA,一种能在多个3D环境中执行语言指令的智能体,标志着AI在理解和互动虚拟世界上的进步。SIMA通过多样化的训练数据学习导航、操作、决策等技能,并结合预训练模型处理高维度输入输出。尽管在复杂任务上仍有提升空间,SIMA展现了正向迁移能力和潜力,为AI研究和未来机器人技术铺平道路。然而,仍需解决鲁棒性、可控性、评估方法及道德安全问题。
216 4
DeepMind首发游戏AI智能体SIMA:开启虚拟世界的智能探索之旅
|
2月前
|
人工智能 自然语言处理 算法
谷歌DeepMind研究再登Nature封面,隐形水印让AI无所遁形
近日,谷歌DeepMind团队在《自然》期刊上发表了一项名为SynthID-Text的研究成果。该方法通过引入隐形水印,为大型语言模型(LLM)生成的文本添加统计签名,从而实现AI生成文本的准确识别和追踪。SynthID-Text采用独特的Tournament采样算法,在保持文本质量的同时嵌入水印,显著提高了水印检测率。实验结果显示,该方法在多个LLM中表现出色,具有广泛的应用潜力。论文地址:https://www.nature.com/articles/s41586-024-08025-4。
87 26
|
4天前
|
人工智能 芯片 内存技术
谷歌Deepmind的CEO称Deepseek的AI模型是中国“最好的作品”,但炒作“夸大其词”
谷歌Deepmind的CEO称Deepseek的AI模型是中国“最好的作品”,但炒作“夸大其词”
|
3月前
|
人工智能 编解码 网络架构
GenCast:谷歌DeepMind推出的AI气象预测模型
GenCast是由谷歌DeepMind推出的革命性AI气象预测模型,基于扩散模型技术,提供长达15天的全球天气预报。该模型在97.2%的预测任务中超越了全球顶尖的中期天气预报系统ENS,尤其在极端天气事件的预测上表现突出。GenCast能在8分钟内生成预报,显著提高预测效率,并且已经开源,包括代码和模型权重,支持更广泛的天气预报社区和研究。
353 14
GenCast:谷歌DeepMind推出的AI气象预测模型
|
4月前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
246 4
|
5月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
511 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
7月前
|
Java Spring Apache
Spring Boot邂逅Apache Wicket:一次意想不到的完美邂逅,竟让Web开发变得如此简单?
【8月更文挑战第31天】Apache Wicket与Spring Boot的集成提供了近乎无缝的开发体验。Wicket以其简洁的API和强大的组件化设计著称,而Spring Boot则以开箱即用的便捷性赢得开发者青睐。本文将指导你如何在Spring Boot项目中引入Wicket,通过简单的步骤完成集成配置。首先,创建一个新的Spring Boot项目并在`pom.xml`中添加Wicket相关依赖。
167 0
|
7月前
|
机器学习/深度学习 人工智能 算法
深入探索TensorFlow在强化学习中的应用:从理论到实践构建智能游戏AI代理
【8月更文挑战第31天】强化学习作为人工智能的一个重要分支,通过智能体与环境的互动,在不断试错中学习达成目标。本文介绍如何利用TensorFlow构建高效的强化学习模型,并应用于游戏AI。智能体通过执行动作获得奖励或惩罚,旨在最大化长期累积奖励。TensorFlow提供的强大工具简化了复杂模型的搭建与训练,尤其适用于处理高维数据。通过示例代码展示如何创建并训练一个简单的CartPole游戏AI,证明了该方法的有效性。未来,这项技术有望拓展至更复杂的应用场景中。
72 0
|
10月前
|
机器学习/深度学习 人工智能 自动驾驶
【AI 初识】强化学习是如何工作
【5月更文挑战第3天】【AI 初识】强化学习是如何工作
|
10月前
|
机器学习/深度学习 人工智能 运维
【AI 初识】监督学习、无监督学习和强化学习定义
【5月更文挑战第2天】【AI 初识】监督学习、无监督学习和强化学习定义

热门文章

最新文章