来源:
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留给我们的东西的更多相关文章

  1. 服务发现与健康监测框架Consul-DNS转发的应用

    关于Consul Consul是一个提供服务注册与发现,健康监测,Key/Value存储以及多数据中心存储的分布式框架.官网地址是https://www.consul.io/,公司初步应用后我们老大觉 ...

  2. Notepad++中NppExec的使用之一:基本用法

    一直用NPP,很长时间了,最近才学习它的各种插件,这篇文章是根据NppExec的用户指南写的.很多地方是翻译的,但不全是翻译,同时也有些东西没有翻译. 一.何为NppExec 简单的说,这个插件可以让 ...

  3. iOS 使用Storyboard 和 xib时的一些知识

    以前不太使用xib和storyboard进行布局,后来在工作中参与到了一个项目的维护工作,那个项目就是使用stroyboard的,再加上xcode5对stroyboard的大力支持,就在这里对于使用s ...

  4. cocos2dx 2.x 版本+Windows+ADT Bundle 配置

    昨天解决了cocos2dx 3.x版本+Windows+ADT Bundle的配置,今天来解决cocos2dx 2.x版本的配置. 整体来说,2.x的配置相对麻烦一点,不过一旦解决了,就一路畅通无阻了 ...

  5. JSP(一)

    一.JSP概要 一]JSP的概念 1>JSP是SUN公司开发的一个基于服务端的一种动态WEB开发技术.         2>JSP的代码结构/内容 = HTML内容+JSP特有元素内容   ...

  6. 目标管理剖析与实践– 献给追梦的人 (转)

      好久没写日志了. 最近总算在忙碌的日子中小小的松了一口气, 过来补起这几个月的空缺. 上次写的Cover Letter & Resume 重点诠释 - 深度剖析没想到居然超过了一万的阅读量 ...

  7. struts2 全局格式化,格式化时间,金钱,数字

    //在前台页面去控制时间,数字,小数,金钱,是极其不明智的选择,除非你是写了良好的 js api 像freemarker , struts 都有良好的标签,我们应该好好利用,才发现的,给大家分享一下 ...

  8. C#重的数组、集合(ArrayList)、泛型集合(list<T>)三者比较及扩展延伸……

    本来我只想总结下数组.集合(ArrayList).泛型集合(list<T>)三者的比较的,可以一写下来要扩展的知识点有点多了,只能写一个小的知识点列表了如下: 1.数组.集合(ArrayL ...

  9. C#入门基本概念

    一.版本号的命名规则 大部分时候是在名字后面加些数字表示不同的版本.其中以加上年份号最为简单明了.比如 Visual Studio 2008.但是大部分人还是不用这个方式.因为年份号中没有带来跟多的信 ...

随机推荐

  1. Android外派(安卓外派) — 长年提供安卓开发工程师外派业务(可签合同)

    北京动点飞扬长年提供安卓工程师外派业务. 平均技术情况如下: 1.2~3年以上Android平台开发经验2.熟练掌握java技术,熟悉面向对象编程设计3.熟悉Android应用开发框架及Activit ...

  2. 【转】class卸载、热替换和Tomcat的热部署的分析

    这篇文章主要是分析Tomcat中关于热部署和JSP更新替换的原理,在此之前先介绍class的热替换和class的卸载的原理.一 class的热替换ClassLoader中重要的方法 loadClass ...

  3. WINDOWS黑客基础(3):注入代码

    有使用过外挂的朋友应该知道,我们在玩游戏的时候,有很多辅助功能给你使用,比如吃药,使用物品等功能,这个时候我们就是使用注入代码的技术,简单的来将就是我们让另外一个进程去执行我们想让它执行的代码,这中间 ...

  4. 【SQL Server】系统学习之二:索引优化

    页大小8192个字节,行限制为8060字节(大型对象除外). 包含varchar nvarchar varbinary sql_variant(8012,object类型) clr 的行,如果行大小超 ...

  5. Java AES加密

    Java AES 加密 加密 /** * * @description 加密 * * @param content 需要加密的内容 * @param password 加密密码 * @return * ...

  6. 黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)

    一.字符串替换 str_replace("iwind", "kiki", "i love iwind, iwind said"); 将输出 ...

  7. 深入分析Volatile的实现原理(转)

    引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”.可见性的意思是当 ...

  8. aptana studio 3 自动换行(无需插件)

    菜单-Window-Preferences-Aptana Studio-Editors,勾选“Enable word wrap”,然后重启编辑器.

  9. MyEclipse9中的不伤眼修改、FreeMarker插件、JQuery提示插件、全屏(FullScreen)插件的安装

    ============下载相关附件===================== http://files.cnblogs.com/fhtwins/eclipse-fullscreen_1.0.7.zi ...

  10. Codeforces Round #356 (Div. 2)B. Bear and Finding Criminals(水题)

    B. Bear and Finding Criminals time limit per test 2 seconds memory limit per test 256 megabytes inpu ...