写点什么

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:0617658
用户头像

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

关注

评论

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

面试官神级问题:DNS服务器是否可以加快我们的网络访问速度?

wljslmz

服务器 DNS 6月月更

Flink CDC 在大健云仓的实践

Apache Flink

大数据 flink 编程 流计算 实时计算

Android技术分享| 自定义LayoutManager

anyRTC开发者

音视频 移动开发 Andriod 动画效果 LayoutManager

理解异步

大熊G

JavaScript 前端 6月月更

吉林长春等保测评公司有几家?详细地址在哪里?

行云管家

网络安全 等级保护 等保测评 等保测评机构 吉林

java培训 | Mybatis的特性

@零度

mybatis JAVA开发

医疗机构如何利用云原生加速智慧医院建设?

York

云原生 系统架构 智慧医疗 医疗信息化 互联网医疗

新闻速递 | MobTech受邀参与华为开发者联盟沙龙,谈数据智能撬动增长

MobTech袤博科技

移动互联网 运营 精细化运营 华为开发者联盟 HDG

打造“更懂电池”的充电桩 星云股份底气何来?

E科讯

Flink CDC + OceanBase 全增量一体化数据集成方案

Apache Flink

大数据 flink 编程 流计算 实时计算

高考后,学会这种能力,让你收益终生!

图灵教育

数学 高考 数学建模

小程序IDE,快速配置让App具备“一码通”能力

Speedoooo

ide 二维码 一码通

大数据培训Table API 和 Flink SQL的整体介绍

@零度

flink 大数据开发

庄周梦蝶终非蝶,冷静看待“谷歌AI形成人格”事件

易观分析

谷歌AI

如何最简单、通俗地理解Python的pandas库?

Jackpop

使用APICloud AVM多端框架开发消防检查助手App项目实践分享

YonBuilder低代码开发平台

APP开发 APICloud 多端开发 应用开发 avm.js

可视化技术在 Nebula Graph 中的应用

NebulaGraph

可视化 图数据库 知识图谱

私有云和公有云的主要区别有几点?两者哪个更安全?

行云管家

云计算 公有云 私有云 企业上云 云管平台

百度评论中台的设计与探索

百度Geek说

百问百答第42期:应用性能探针监测原理-.net

博睿数据

智能运维 博睿数据 性能监测

字节跳动Dev Better技术沙龙来啦!参与活动赢好礼,限时免费报名中!

字节跳动终端技术

字节跳动 技术沙龙 华泰证券

TiDB 6.1 发版:LTS 版本来了

PingCAP

分布式

为了写好代码,我坚持了这8条习惯!

Jackpop

如何从零开始开发一款chrome扩展?

Jackpop

web前端培训Vue面试题分享

@零度

Vue 前端开发

信息化App在「左」,数字化App在「右」

Speedoooo

App 数字化 信息化

TASKCTL关于 "Fastjson反序列化远程代码执行漏洞” 的风险通告

敏捷调度TASKCTL

DevOps ETL算法 大数据平台 反序列化 TASKCTL

从感知智能跨越到认知智能,NLP领域要做哪些创新?

澜舟孟子开源社区

人工智能 自然语言处理 nlp 大模型 认知智能

芯动科技加入龙蜥社区,创新驱动生态发展

OpenAnolis小助手

操作系统 芯片 龙蜥社区 CLA 芯动科技

什么是面向对象编程?终于懂了

Jackpop

哈希彩竞猜娱乐游戏俱乐部系统开发详情

开发微hkkf5566

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