《我的世界》游戏

2016年7月注:Project
AIX已正式更名为Project Malmo

注:本文编译自Project AIX: Using Minecraft to build more
intelligent technology

《我的世界》(Minecraft)作为目前最畅销的PC游戏和史上销量第三高的电子游戏,已经获得了13项吉尼斯世界纪录,其中包括世界上最高的同时在线人数。这个游戏最大的特点是这是一款开放世界游戏,玩家没有具体要完成的目标,而是有着超高的自由度选择如何玩游戏。目前这款游戏拥有多个模式,玩家可以在“我的世界”中进行生存、创造和冒险。

在我的世界中,玩家会被放置在一个几乎无限大的地图上,玩家可以在这个世界里砍树、盖房子、挖矿、制造工具等等。台湾地区将该游戏名字翻译成“当个创世神”,没错,当你初玩这个游戏的时候,你就像这个世界的创世神一样,摸索着这个世界的生存法则,并依赖这些法则改善这个世界的环境。目前,这个大名鼎鼎的沙盒游戏在全球有上亿玩家,他们用天马行空的想象力,建造出一片片令人惊叹的天地。

那么,这一切与人工智能有什么关系呢?

最近,微软纽约研究院的5名研究员绞尽脑汁,用好几天的时间试图让《我的世界》里的一个小人学会爬上游戏中的一座小山。

呃,听起来是不是有些滑稽?

从事Project
AIX工作的微软研究员

这似乎是一项非常简单的工作,似乎通过简单的代码就能实现——直到你意识到问题的本质:微软研究员团队正在努力训练这个人工智能的角色学习如何爬到虚拟世界的最高点,并且使用的是与人类学习新任务时相同类型的资源。

也就是说,这个科学家所研究的小人与普通的人类玩家并无区别。无论是刚刚上手的人类玩家还是人工智能玩家,在刚刚进入游戏的时候它对所处的环境、甚至对它应该完成的任务都一无所知。人类玩家常常会选择爬上这块地图的最高点来查看周围的地形,这也是人工智能玩家可能会做的事情。它需要了解周围环境,弄清楚什么是重要目标和信息——例如爬山,以及什么是不重要的——例如山的颜色深浅变化。它需要经历大量的试错阶段——就像刚入门的人类玩家经常会犯的一些错误一样,包括常常坠入河流和熔岩坑,也需要通过累积奖励了解自己何时完成或部分完成了任务。

这样想想,是不是没那么简单了?

“我们正努力通过编程让这个角色能够学习,而不是让它完成某个特定的任务,”
微软纽约研究院高级研究员、项目组成员Fernando
Diaz说。在过去,对于人工智能的研究通常处于让计算机完成某个特定任务的阶段,例如让计算机识别图像中的物体,或者让计算机听懂一段简单的语音指令,但计算机并不会从周围的环境学习。相比较之下,就算是世界上最先进的计算机,也远远不敌一个正处于学习期的婴孩的学习能力。

Fernando
Diaz, Akshay Krishnamurthy和Alekh
Agarwal正在利用AIX进行人工智能研究。

Project AIX

微软研究院的Project AIX,让科学家们能够通过《我的世界》游戏来训练人工智能。Project
AIX是微软剑桥研究院的研究员Katja
Hofmann和她的同事们开发的平台,已于3月7日正式对外公布。科学家们可以运用Project
AIX平台,将《我的世界》作为开展与提高人工智能相关研究的试验场。目前,微软研究院的研究员们正在使用Project
AIX进行研究,并且已经将一个测试版提供给一组学术界的研究者们试用。今年夏天,Project
AIX将会对外开源。

大约一年前,Hofmann就有了Project
AIX的创意,她此前一直在试图寻找合适的平台进行人工智能的研究,大部分游戏对人工智能来说的相对简单了。而《我的世界》之所以能够成为人工智能研究的理想平台,其原因与全球数百万玩家每天都痴迷于这个虚拟世界的理由是相同的。与其他的电脑游戏不同,《我的世界》为用户提供了无穷无尽的可能性——玩家既可以选择做些四处游荡寻找宝藏的简单任务,也可选择与一组队友共同建造大楼的复杂任务。

“《我的世界》是人工智能研究的理想平台,因为它是这个非常开放的世界,”Hofmann说。“你可以选择生存模式,可以与朋友们玩建筑对决,可以学习课程,还可以打造自己的游戏世界。对于人工智能研究来说,这着实令人兴奋,因为它允许我们创造超出我们现有能力范围之外的游戏。”

从完成任务到学习知识

过去几年间,人工智能研究者们已经非常擅长教会计算机完成一些具体而复杂的任务。例如计算机已经能够理解和翻译语言,还可以识别图像并编写图片说明。

然而,尽管取得了这些进步,计算机仍然无法良好掌握研究人员所谓的一般智能(general
intelligence),即更类似于微妙且复杂的人类的学习及决策方式。计算机算法可能从事特定任务,而且做得像普通成年人一样好,甚至更好,但它在接收各种信号输入方面——例如光线、嗅觉、触觉、听觉、不适等——仍然无法与婴儿相比,也不像婴儿一样知道只要一哭就能得到吃的。“这些事情对人类来说似乎很容易的,但对于人工智能而言,实际上是非常困难的,”微软纽约研究院首席研究员、Project
AIX团队成员Robert Schapire说。

Hofmann说,人工智能研究者们能够利用人类总体意识中的极小的一部分来打造只会完成一种特定任务的工具,例如图像识别,但研究者们至今未能把这些分块的功能组合起来,像人类一样轻松完成各种任务。她说,其中一部分原因在于科学家们确实还不知道人类是如何把这些感官功能结合在一起的,“我们对自己的了解还远远不够。”

DavidBignell,
Tim Hutton, Katja Hofmann和Matthew
Johnson正在从事AIX项目研究。

从理论到实践

关于一般人工智能(general artificial
intelligence)已经有大量的理论研究,但研究人员一直缺乏切实可行的方法来测试自己的系统。例如,要想真的造一个机器人、教它爬上一座小山,这一想法成本高昂而不切实际。但《我的世界》便能解决这一问题,在虚拟的世界里,机器人每次掉进河里,你不要花费精力去修理或用其他昂贵的机器人代替。

另外,通过人们在现实世界中使用的系统来测试检验人工智能研究也不那么容易。例如,Hofmann的研究背景是如何让搜索更像一个智能的助手而不是一个简单的信息检索系统,但她表示,在现实世界中测试其理论所面临的一个问题是,数以百万计的人都依赖并习惯于搜索引擎以可预见的方式工作,即大家已经习惯了关键字检索的方式。

正如Hofmann所说,“很难在实践中检验一些理论,这是建设Project
AIX平台的主要动机之一。”《我的世界》这一游戏之所以特别有吸引力,正是因为它可以让玩家作出非常复杂且有连带后果的决策,并且随着成效越来越好,还能够加入更多更难的元素。同时,玩家们还可以并肩合作,这有助于研究人员试验人类玩家怎样与人工智能的角色合作。

“这就像人工智能的数字化的婴儿游戏围栏,” 微软纽约研究院高级研究员、项目组成员Fernando
Diaz说。“在这个环境中,我们可以开发一种算法,教会这个人工智能‘宝宝’了解现实世界中的不同概念。”

全面推进人工智能研究

Hofmann曾开宗明义地表示,Project
AIX的目标是建立一个对微软自身及更广泛的人工智能研究者们都能有所裨益的系统。“我们正在寻找机会,以非常接近现实世界、借助真实经历和真实数据的方式,真正帮助加快人工智能创新的步伐,”微软研究院人工智能对外推广总监Evelyne
Viegas说。

Project
AIX平台包括一套Java版本的游戏模组和用于帮助人工智能角色在《我的世界》中感知和行动的代码,这两个组件在Windows、Linux或Mac
OS上均可运行,研究人员可以用任何他们擅长的编程语言对人工智能角色进行编程。

Project AIX的开发主管、微软剑桥研究院的首席研究员Matthew
Johnson表示,微软研究院的研究团队开发这套系统是希望它能够广泛的吸引学术研究人员甚至是感兴趣的业余爱好者,满足不同层次的编程水平,多样的背景和目标各不相同的开发者们的需求。也就是说,AIX平台将用于各种形式的人工智能研究,而非一个消费品。“从一开始,我们的工作重点就是最大限度地减少创新的障碍,”Johnson说。

相关阅读:

海洋深处的数据中心——微软Natick项目

不再从零开始:微软牛津计划,让每一个智能应用都能说会看

会听、会说、会聊天:人工智能语音识别技术的漫漫长路

欢迎关注

微软亚洲研究院官方网站:http://www.msra.cn

微软亚洲研究院人人网主页:http://page.renren.com/600674137

微软亚洲研究院微博:http://t.sina.com.cn/msra

微软亚洲研究院微信:搜索“微软研究院“或扫描下方二维码:

为什么我们要让人工智能玩游戏:微软Project AIX的更多相关文章

  1. 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库

    工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...

  2. 如何从零开始学Python?会玩游戏就行,在玩的过程就能掌握编程

    现在学习编程的人很多,尤其是python编程,都列入高考了,而且因为人工智能时代的到来,编程也将是一门越来越重要的技能. 但是怎么从零开始学python比较好呢?其实,你会玩游戏就行. 从零基础开始教 ...

  3. 原生JS实战:写了个一边玩游戏,一边记JS的API的游戏

    本文是苏福的原创文章,转载请注明出处:苏福CNblog:http://www.cnblogs.com/susufufu/p/5878913.html 本程序[一边玩游戏,一边记JS的API]是本人的个 ...

  4. bzoj4730: Alice和Bob又在玩游戏

    Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...

  5. 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和

    小易邀请你玩一个数字游戏,小易给你一系列的整数.你们俩使用这些整数玩游戏.每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字. 例如: 如果{2,1,2 ...

  6. cdoj 1136 邱老师玩游戏 树形背包

    邱老师玩游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1136 Desc ...

  7. win7系统玩游戏不能全屏的解决办法

    1.修改注册表中的显示器的参数设置   Win键+R键,打开运行窗口,输入regedit回车,这样就打开了注册表编辑器,然后,定位到以下位置:   HKEY_LOCAL_MACHINE\SYSTEM\ ...

  8. 【用PS3手柄在安卓设备上玩游戏系列】连接手柄和设备

    背景 硬件要求1:PS3 手柄 + 手柄配套的USB线 硬件要求2:已经获得 ROOT 权限并且支持蓝牙的安卓设备 软件要求1:Sixaxis Compatibility Checker PS3 手柄 ...

  9. UESTC_邱老师玩游戏 2015 UESTC Training for Dynamic Programming<Problem G>

    G - 邱老师玩游戏 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

随机推荐

  1. Kubernetes系列二: 使用kubeadm安装k8s环境

    环境 三台主机,一台master,两台node 作为master 作为node节点 作为node节点 每台主机Centos版本使用 CentOS Linux release 7.6.1810 (Cor ...

  2. 阿里OSS下载文件,提示The request signature we calculated does not match the signature you provided. Check your key and signing method

    提示说是签名不对,但没搞懂签名具体是啥,以为之前做过,有正确的,就一点点比对,最后发现竟然是下载的文件路径,里面必须是/,而不能是\或\\,搞得我哭笑不得.比如,要下载的文件路径是:soft/cszt ...

  3. Snapchat欲联手亚马逊推扫一扫功能,社交应用营收来源将有大变化?

    当下的社交应用,已经不能完全仅用"社交"的标签进行定义.因为目前的社交应用不仅承载着大众的喜怒哀乐和沟通指责,更在逐渐打造起一个连接多方的生态系统.甚至只从自身的营收.利润出发,社 ...

  4. OpenSSL EVP_Digest系列函数的一个样例

    #include <stdio.h>     #include <openssl/evp.h>         main(int argc, char *argv[])     ...

  5. $n$阶常微分方程通解中常数独立的意义

    丁同仁,李承治编<常微分方程教程>第二版的定义1.3给出了 $ n$ 阶常微分方 程 $ {\displaystyle F(x,y,y',\cdots,y^{(n)})=0 \ \ \ \ ...

  6. Java操作redis客户端Jedis连接集群(Cluster)

    创建JedisCluster类连接redis集群. @Test public void testJedisCluster() throws Exception { //创建一连接,JedisClust ...

  7. 108)PHP分页显示

    一个代码页的链接:https://www.cnblogs.com/mmykdbc/p/6688460.html 首先一个简单的代码展示: 目录关系: 数据库表格展示: 结果展示:   然后  代码展示 ...

  8. 分享一个腾讯域名拦截检测api

    接口地址:https://api.oioweb.cn/api/ymjc.php 返回格式:json 请求方式:get 调用示例:https://api.oioweb.cn/api/ymjc.php?u ...

  9. Java基础语法要点

    1.Java中byte.short.int.long的取值范围 byte:[-128,127] short:[-32768,32767] int:[-2147483648,2147483647] lo ...

  10. Python 网站后台扫描

    title date layout tags Python 网站后台扫描 2018-05-08 post Python #!/usr/bin/python # This was written for ...