3月23日是首届世界围棋精英赛的最后一天,参赛的中日韩代表选手分别是芈昱廷、井山裕太和朴廷桓,三位选手轮番对局三天,除了彼此之间要分出高下,还要分别对战日本的围棋程序DeepZenGo。 DeepZenGo的开发者加藤英树在去年12月接受韩国《东亚日报》采访时曾信心满满的说:明年3月进行的世界围棋精英赛,DeepZenGo有信心击败中韩日三国的最强棋手。 然而面对三位顶尖选手,DeepZenGo最后的成绩是两败一胜,前两局被芈昱廷和朴廷桓绞杀,最后一回合执黑中盘胜井山裕太,扳回一局。这次比赛虽有赢面,但是前有Master横扫个中高手的范例,DeepZenGo胜1输2的表现并不太出色。
DeepZenGo对战中国选手芈昱廷 虽然此前有AlphaGo战胜李世石的先例,但AlphaGo并不能代表围棋AI的普遍水平,DeepZenGo的开发者加藤英树在前两轮输赛后都表示特别遗憾,但是其实结果并没有出乎大家的意料——19日在东京落幕的第十届UEC杯世界计算机围棋赛中,DeepZenGo就不敌腾讯研发的“绝艺”,曾经称霸UEC的黑马这次错失了冠军。 去年3月,来自DeepMind的AlphaGo以4:1的成绩战胜韩国围棋九段李世石,这是人工智能首次在围棋领域战胜人类高手,引起世界范围空前的关注。但在这之前,机器在围棋领域的学习已经超过十年,从2007年第一届UEC杯开始,研发团队就不断发掘计算机程序在围棋项目上的潜力了,DeepZenGo的前身Zen就是这其中一个。 2006年日本游戏工程师尾岛阳儿开始研究围棋算法,写出了最原始的Zen。到了2009年,蒙特卡洛算法(Monte Carlo method)开始大面积引入围棋程式,成为了机器下棋的主流算法,也帮助Zen拿到了第一个国际大赛冠军。 棋类游戏有一种最原始的算法叫穷举法,穷尽所有可能进行枚举——在下棋的时候把所有会出现的情况全部过一遍,总能找到一个最优的解法,不管是对五子棋,还是象棋或国际象棋。穷举法给计算机带来的优势都很明显,早在1997年IBM的“深蓝”就用穷举法战胜了国际象棋世界冠军卡斯帕罗夫。 但是对于围棋来说,其最大的魅力正在于在简洁的规则下,有无穷尽的策略带来无穷尽的变化。这样的情况下,依靠低效暴力的枚举并不能抵过一个专业棋手的经验和判断。蒙特卡洛算法的引入便是为穷举增加了一些随机性,缩小需要枚举的范围,在随机范围内寻求最优解即可。相当于在一片果园中要找到最大的那颗苹果,比起原来一棵树一棵树的找,变成只挑一块区域抽样找,最后找到的不一定是最大的那个,但一定是所选范围内最大的一个。 虽然对穷尽所有的枚举有了一定的优化,但是蒙特卡洛算法在本质依靠的还是并不高明的列举,这样的算法只能在一定程度上进行优化,但并不能带来突破性变化。所以仅依靠蒙特卡洛算法导致许多围棋程式一度陷入瓶颈,包括Zen、法国的“疯石”、韩国的“石子旋风”在内的许多算法都依然无法匹敌高段位的专业围棋选手。 AlphaGo的胜利像是在围棋算法这潭死水中放入一条大鱼,让围观群众错愕的同时重新活泛了业内同行的热情。比赛一个月后DeepMind便在《自然》杂志发表论文公开了Alpha Go革命性胜利的一小部分秘密:深度卷积神经网络的引入。
AlphaGo每走一步棋,会列举250步潜在可能 AlphaGo在蒙特卡洛算法的基础上构建两道神经网络:一道是策略网络,负责对棋局进行评估;一道是价值网络,判断应该在哪落子。这对于传统围棋算法最大的价值在于节省了蒙特卡洛算法的搜索空间。还用找大苹果举例的话,就是会先根据经验判断是不是应该找一块阳光好的地方,再判断哪块阳光好,找到大苹果的几率大。 神经网络打破了机器算法和专业选手之间的差距,也为围棋算法优化提供了新的思路,包括加藤英树在内的许多开发者都在Google的论文之后把深度学习引入围棋算法。Zen在经过了深度学习升级之后也改名为今天的DeepZenGo。 但Google在论文中公布的信息仍然只是AlphaGo的冰山一角。尽管用了同样的基础架构,但是DeepZenGo距离AlphaGo仍然有很大差距。首先是硬件不在同一水平,AlphaGo拥有1920个CPU、280个GPU,而最新的DeepZen 14.0版本的配备是44个CPU,4个GPU,这个差距相当于AlphaGo坐着火箭起飞的时候DeepZenGo还在骑共享单车。 (责任编辑:本港台直播) |