QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

DeepMind 背后的人工智能:深度学习原理初探

  • 2014-10-11
  • 本文字数:2159 字

    阅读完需:约 7 分钟

去年 11 月,一篇名为《 Playing Atari with Deep Reinforcement Learning 》的文章被初创人工智能公司 DeepMind 的员工上传到了 arXiv 网站。两个月之后,谷歌花了 500 万欧元买下了 DeepMind 公司,而人们对这个公司的了解仅限于这篇文章。近日,Tartu 大学计算机科学系计算神经学小组的学者在 robohub 网站发表文章,阐述了他们对 DeepMind 人工智能算法的复现。

在 arXiv 发表的原始论文中,描述了一个单个的网络,它能够自我学习从而自动的玩一些老的电视游戏。它仅仅通过屏幕上面的图像和游戏中的分数是否上升下降,从而做出选择性的动作。

在训练的一开始,这个程序对游戏一点都不了解。它并不知道这个游戏的目标,是保持生存、杀死谁或者是走出一个迷宫。它对这个游戏的影响也不清楚,并不知道它的动作会对这个游戏产生什么影响,甚至不知道这个游戏中会有哪些目标物品。通过在这个游戏中尝试并且一遍一遍失败,这个系统会逐渐学会如何表现来获得比较好的分数。同时需要注意的是,这个系统对所有不同的游戏使用了同样的系统结构,程序员没有对不同程序给予这个程序任何特殊的提示,比如上、下或者开火等等。

最终结果显示,这个系统能够掌握一些游戏,并且比一些人类玩家还要玩得好。这个结果可以看作对 AGI(Artificial General Intelligence)迈近的一小步,非常吸引人。文章给出了如下的细节,从任务、机器学习基础、深度学习模型和学习过程四部分阐述了他们的工作。

一、任务

这个系统获得了某个游戏屏幕的某幅图像,如下图是从一个最简单的游戏 Breakout 中获取的一幅图片。在简单的分析之后,它已经选择了如何做出下一步。这个动作已经被执行了,并且这个系统被告知了分数是否增加了、减少了或者没有变。基于这个信息,以及已经进行了的大量的游戏,这个系统会学习如何玩从而提高游戏的分数。

二、机器学习和人工神经网络

在深入深度学习的实现过程之前,文章先介绍了机器学习和人工神经网络的概念。

机器学习的一个非常通常的任务是这样的:给出了一个目标的信息,从而能够知道它属于哪个种类。在深度学习的过程中,程序想要决定在目前游戏状态下如何进行下一步动作。机器学习算法从例子中进行学习:给出了许多的目标例子和它们的种类,学习算法从中找出了那些能够鉴定某个种类的目标特征。学习算法会产生一个模型,能够在训练集中最小化错误分类率。这个模型之后会被用来预测那个未知目标的种类。

人工神经网络 ANN(Artificial Neural Networks)是机器学习的一个算法。它是由人类的大脑结构产生的灵感。这个网络由许多节点组成,如同大脑由神经元组成,并且互相之间联系在一起,如同神经元之间通过神经突触和神经树联系在一起。对于每个神经元,都会对其应该传递的信号的情况做特殊规定。通过改变这些连接的强弱,可以使得这些网络计算更加快速。现在神经网络的结构通常由如下部分组成:

  • 神经的输入层(获得目标的描述)
  • 隐藏层(主要部分,在这些层中学习)
  • 输出层(对于每个种类都一个神经节点,分数最高的一个节点就是预测的种类)

在学习过程结束之后,新的物体就能够送入这个网络,并且能够在输出层看到每个种类的分数。

三、深度学习

在这个系统中,一个神经网络被用来期望在当前游戏状态下每种可能的动作所得到的反馈。下图给出了文章中所提到的神经网络。这个网络能够回答一个问题,比如“如果这么做会变得怎么样?”。网络的输入部分由最新的四幅游戏屏幕图像组成,这样这个网络不仅仅能够看到最后的部分,而且能够看到一些这个游戏是如何变化的。输入被经过三个后继的隐藏层,最终到输出层。

输出层对每个可能的动作都有一个节点,并且这些节点包含了所有动作可能得到的反馈。在其中,会得到最高期望分数的反馈会被用来执行下一步动作。

四、学习过程

系统通过学习过程来计算最高期望分数。确切地说,在定义了网络的结构之后,剩下唯一会变化的就只有一件事:连接之间的强弱程度。学习过程就是调整这些方式地权重,从而使得通过这个网络的训练样例获得好的反馈。

文章将这个问题当作一个优化问题,目标是获取最好的反馈。可以通过将梯度下降与激励学习方法结合起来解决。这个网络不仅仅需要最大化当前的反馈,还需要考虑到将来的动作。这一点可以通过预测估计下一步的屏幕并且分析解决。用另一种方式讲,可以使用(当前反馈减去预测反馈)作为梯度下降的误差,同时会考虑下一幅图像的预测反馈。

关于代码的更多细节,可以参考他们报告中的代码架构图:

五、总结

文章最后给出了 DeepMind 深度学习的整个流程:

  1. 构建一个网络并且随机初始化所有连接的权重
  2. 将大量的游戏情况输出到这个网络中
  3. 网络处理这些动作并且进行学习
  4. 如果这个动作是好的,奖励这个系统,否则惩罚这个系统
  5. 系统通过如上过程调整权重
  6. 在成千上万次的学习之后,超过人类的表现。

这个结果可以看做是在 AGI 方向的从传统机器学习迈出的一小步。尽管这一步可能非常小,这个系统可能都不知道或者理解它做的事情,但是这个深度学习系统的学习能力远远超过之前的系统。并且,在没有程序员做任何提示的情况下,它的解决问题的能力也更加宽广。他们的代码可以在 GitHub 主页上找到。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-10-11 02:0617276
用户头像

发布了 268 篇内容, 共 127.1 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

低代码平台:国内十大低代码开发平台排名

优秀

低代码 低代码平台

第54期|GPTSecurity周报

云起无垠

海外云手机对比真实手机有什么特点?

Ogcloud

云手机 海外云手机 云手机海外版 海外云手机推荐

云手机海外版可以用来运营TikTok吗?

Ogcloud

云手机 海外云手机 tiktok云手机 tiktok运营 云手机推荐

企业数字化转型:低代码开发平台模式探索与实践

不在线第一只蜗牛

低代码 数字化 数字转型

你真的完全理解 Logistic 回归算法了吗

不在线第一只蜗牛

人工智能 数据挖掘 逻辑回归

Dynatrace仅是APM,你需要的是全方位的监控观测平台

可观测技术

监控

Flink⼤状态作业调优实践指南:Datastream 作业篇

Apache Flink

大数据 flink Datastream

一文讲清楚精益数据方法论在数据治理中的应用

神州数码

精益数据 精益数据方法论

使用 Postman 变量的入门指南

Liam

程序员 后端 变量 Postman API

量子计算:区块链安全的下一个重大威胁?

区块链开发团队DappNetWork

作为CTO,你还能忍受公司内部监控系统的无限增殖吗?

可观测技术

监控

Python高频面试题解析公开课

霍格沃兹测试开发学社

为什么观测云选择持续输出最佳实践

可观测技术

可观测性

软件测试学习笔记丨Flask操作数据库一对多操作

测试人

软件测试

李尔将收购西班牙自动化和智能公司WIP Industrial Automation

财见

文旅营销的艺术与技术,在鲸鸿动能合而为一

脑极体

AI

Databend 开源周报第 147 期

Databend

DeepMind背后的人工智能:深度学习原理初探_语言 & 开发_张天雷_InfoQ精选文章