[翻译]AlphaGO留给我们的东西
来源:
http://headlines.yahoo.co.jp/hl?a=20160317-00000049-cnippou-kr
http://headlines.yahoo.co.jp/hl?a=20160317-00000050-cnippou-kr
作者:首尔大学计算机系教授 文炳魯
这场世纪的对决以人工智能的胜利而落幕。然而笔者仍然认为如果李世石九段能够发挥出全盛时期的实力与创意的话,是不会输给AlphaGO的。虽然李世石输掉了比赛,但仍然展现出了作为过去10年世界围棋第一人的那份宽容和品格。这次的对决中虽然也并非没有规则限制等不完美的地方,但是我们应该多看开一些,为人工智能的胜利毫不吝啬的送上祝福和赞许。
如果不知道棋盘上变数的庞大性,也就不会明白为什么这次的对决会如此的让人瞩目。在围棋里,光是第一手的放置方式就有将近37个位置。随后稍微有所增加,然后越到终盘放置的可能性就会逐渐减少。这里假设一次需要考虑的落点位置大概有40个,如果如果计算机一秒钟能考虑一万种情况的话,那么连下7步所需考虑的情况大概需要多少时间来计算呢?
问过一圈周边的熟人,一般的回答是仅需数秒,然而实际上却需要近5年的时间。如果扩展到下30步棋,所需时间就已经超过了10的36次方年。即使候选放子的位置缩小到10个,最初的7步仍然需要17分钟,而30步棋则超过了10的18次方年的时间。没有尽头的时间消耗啊。一般来说,围棋都会进行到200手左右,但仅仅是考虑30手就已经如此难堪,那怎样才能完整的计算200手棋的计算呢。就结论而言,非常细致的搜索和推断仍然是不可或缺的,即便是AlphaGO也并没有回避这个问题。
AlphaGO之所以敢于挑战这个巨大的领域,其背景在于近几年卓越的技术进步。对于人类来说,图片的分类是比较容易的做到的,但对计算机而言却并不简单。拿当年的发展速度来说,每一年能把识别的错误率降低个0.5%就很了不起了。然而在2012年的ILSVRC(就是2015年百度被踢的比赛)大赛中,多伦多大学的hinton教授组将错误率从26%一口气压到了15%,并因此赢得了竞赛。取得了本应花上20年才能取得的进步。hinton教授所使用的技术正是深度学习和通用GPU运算。到了2015年(的比赛中),错误率已经被压制到了3%以内,仅仅3年的时间就获得了近50年的进步。
AlphaGO得益于这个爆发式的技术进步,并在规模上堆到了极致。AlphaGO所使用的深度神经网络,仅仅输入层的节点数量就超过了2万5千个,而处理这些输入情报的中间层(hidden layer)有将近830万个。而它们之间的连接边(weight edge)竟然达到了14亿条。如此巨大的神经网络直到最近都是不可训练的。而AlphaGO使用3000万个落点、即将近16万分棋谱对这个网络进行一次训就需要大约一个月的时间。
通过这个惊人的过程,人工智能掌握了本来认为是人类专属的抽象思考能力。本次对局中,AlphaGO下一手所需的时间在平均一分钟或者稍微超过一点。通过论文内容逆向推,AlphaGO在一分钟内大约做了近5亿次的局势判断。5亿次看上去很巨大的数字,但如果每一手棋需要考虑30个左右落点的话,大概也就平均6.5手而已,只考虑10个落点的话也大概仅仅能推测8.5手。最终只能以推测的结果来确定落子点。这是这种检索方式与生俱来的界限。
而能够突破这个界限的正是AlphaGO的另一个厉害的地方。仅仅上面那种程度的检索其实很难说能够战胜人类最高等级的棋手,因为人类也有很多很多使用推测能力的地方,甚至比人工智能程序更加精巧。然而AlphaGO有着比其他围棋软件领先一个时代的推测精度。可即便如此仍然可能还要比人类要差一些,这其中的差距已经可以使用强大的计算能力进行补全了。这个结果给予了我们一个重要的启示。人类的抽象思维能力这种东西,可能并非我们所想的那么复杂。
职业围棋界想必受到了巨大的冲击,从今以后也会成为围棋界的重要资产吧。通过与AlphaGO的五盘对局,它展现出了职业棋手所下不出来的创意下法。也许会让职业棋手们从下法的固定观念里面觉悟出来,甚至有扩展思考边界的机会。围棋的水平也会更进一步的发展吧。
也有人担心如果就这样发展下去,数十年后人类被人工智能所支配。从产业发展的历史来看,例如纺织业,信息化的初期也经常会有人对工作受到威胁产生恐惧。但是最终孕育出了新的工种,技术发展的同时,也为人类带来更加富裕的生活。以深度学习为代表的人工智能技术突然来到了我们的生活中,已经到了这些技术的基本含义应该像常识一样被知晓的时代。突然之间进步50年的发展速度,或许能够让我们享受到本应在有生之年连看都看不到的技术产物。
[翻译]AlphaGO留给我们的东西的更多相关文章
- 服务发现与健康监测框架Consul-DNS转发的应用
关于Consul Consul是一个提供服务注册与发现,健康监测,Key/Value存储以及多数据中心存储的分布式框架.官网地址是https://www.consul.io/,公司初步应用后我们老大觉 ...
- Notepad++中NppExec的使用之一:基本用法
一直用NPP,很长时间了,最近才学习它的各种插件,这篇文章是根据NppExec的用户指南写的.很多地方是翻译的,但不全是翻译,同时也有些东西没有翻译. 一.何为NppExec 简单的说,这个插件可以让 ...
- iOS 使用Storyboard 和 xib时的一些知识
以前不太使用xib和storyboard进行布局,后来在工作中参与到了一个项目的维护工作,那个项目就是使用stroyboard的,再加上xcode5对stroyboard的大力支持,就在这里对于使用s ...
- cocos2dx 2.x 版本+Windows+ADT Bundle 配置
昨天解决了cocos2dx 3.x版本+Windows+ADT Bundle的配置,今天来解决cocos2dx 2.x版本的配置. 整体来说,2.x的配置相对麻烦一点,不过一旦解决了,就一路畅通无阻了 ...
- JSP(一)
一.JSP概要 一]JSP的概念 1>JSP是SUN公司开发的一个基于服务端的一种动态WEB开发技术. 2>JSP的代码结构/内容 = HTML内容+JSP特有元素内容 ...
- 目标管理剖析与实践– 献给追梦的人 (转)
好久没写日志了. 最近总算在忙碌的日子中小小的松了一口气, 过来补起这几个月的空缺. 上次写的Cover Letter & Resume 重点诠释 - 深度剖析没想到居然超过了一万的阅读量 ...
- struts2 全局格式化,格式化时间,金钱,数字
//在前台页面去控制时间,数字,小数,金钱,是极其不明智的选择,除非你是写了良好的 js api 像freemarker , struts 都有良好的标签,我们应该好好利用,才发现的,给大家分享一下 ...
- C#重的数组、集合(ArrayList)、泛型集合(list<T>)三者比较及扩展延伸……
本来我只想总结下数组.集合(ArrayList).泛型集合(list<T>)三者的比较的,可以一写下来要扩展的知识点有点多了,只能写一个小的知识点列表了如下: 1.数组.集合(ArrayL ...
- C#入门基本概念
一.版本号的命名规则 大部分时候是在名字后面加些数字表示不同的版本.其中以加上年份号最为简单明了.比如 Visual Studio 2008.但是大部分人还是不用这个方式.因为年份号中没有带来跟多的信 ...
随机推荐
- DNS查询指令nslookup
描述: Nslookup指令是一个查询internet域名服务的程序.Nslookup指令有两个模式:交互式和非交互式. 交互式模式允许用户查询不同种类的主机和域名或在一个域名里输出主机列表,目的是查 ...
- C#中WebService 的 Timer定时器过段时间后自动停止运行
我用.net做的一个Timer定时器,定时获取短信并给予回复,但大概过了十几个小时以后,Timer定时器会自动停止,再发送短信就不能收到回复,需要在服务器中重新运行定时器才可以,请教各位! 我是在.n ...
- FTP搭建
在桌面上右击“我的电脑”,执行“管理”命令,在“计算机管理”窗口的左窗格中依次展开“系统工具 ”→“本地用户和组”目录,单击选中“用户”选项.在右侧窗格中单击右键,执行“新用户”命令.在 打开的“新用 ...
- [JS]setInterval,setTimeout的使用以及伪随机数
- OAF_OAF Debug And Log调试和记录工具的详解(案例)
2014-06-16 Created By BaoXinjian
- POJ 2318 TOYS(计算几何)
题目大意:有一个矩形盒子,盒子里会有一些木块线段,并且这些线段是按照顺序给出的,有n条线段,把盒子分层了n+1个区域,然后有m个玩具,这m个玩具的坐标是已知的,问最后每个区域有多少个玩具 解题思路:因 ...
- 【JavaScript】创建命名空间,Class,LOG
JxUnderscore(function (J, _, root) { var isWindow, deepObject, Namespace, Class, LOG; /** * 一个对象是否为w ...
- java中的浅拷贝与深拷贝
浅拷贝: package test; class Student implements Cloneable { private int number; public int getNumber() { ...
- 使用bs4对海投网内容信息进行提取并存入mongodb数据库
example: http://xyzp.haitou.cc/article/722427.html 首先是直接下载好每个页面,可以使用 os.system( "wget " ...
- 跨域请求 & jsonp
0 什么是跨域请求 在一个域名下请求另外一个域名下的资源,就是跨域请求.example 1:比如:我当前的域名是http://che.pingan.com.我现在要去请求http://www.cnbl ...