昨日推送的《台湾围棋AI黑马击败腾讯绝艺,独家揭秘四大关键》一文中,吴毅成的学生吴迪融进一步发展的蒙特卡洛树搜索算法中的M&M技术的正确表述应为“minorization-maximization演算法”,特此更正。
“赢腾讯绝艺,我自己都非常吃惊”
,这是台湾交通大学信息工程系教授吴毅成,接受DT君采访时说的第一句话。
图丨台湾交通大学资讯工程系教授吴毅成。(图片:詹子娴)
AlphaGo 击败人类棋王的事实,使得全球都加大了对人工智能的投入。日前,在鄂尔多斯举办的中国围棋大会首届世界智能围棋公开赛上,AlphaGo 因宣布退休而没有参赛,本来不出意外,冠亚军在腾讯的绝艺和日本老牌围棋 AI 程序 DeepZenGo 之间产生。殊不知半路冲出一匹大黑马,击败了腾讯的绝艺,夺下亚军,
这只黑马就是由吴毅成领军、台湾交大团队所开发的围棋人工智能“CGI”。
磨练两年以黑马姿态崛起
近期 CGI 在国际赛事屡创佳绩,包括六月中在福州举办的中韩人机配对赛获得冠军;七月份在意大利的国际 IEEE FUZZ 会议上,CGI 与台湾的红面棋王周俊勋对弈两场,CGI 先是执黑获得胜利,执白也以 2.5 目取胜,成为全球第一次“学界”围棋程序在正式比赛击败职业九段棋士,八月的中国围棋大会又打败过绝艺、DeepZenGo。
图丨福州中韩人机配对赛上 CGI 团队在测试
能得到这样好的成绩,连 CGI 团队自己也没想过
。CGI全名是“CGI围棋智能”(CGI Go Intelligence; CGI) ,一种有趣的递归缩写(Recursive acronym) 命名,是CGI实验室开发出来的围棋智能,而CGI实验室全名是Computer Games and Intelligence Lab,是吴毅成带领的计算机游戏与智慧实验室。
CGI
围棋智能就是该实验室开发的技术之一。
CGI是个才出现了短短两年的围棋 AI 新手,相比于投入了庞大资源跟资金的绝艺,或是结合了产学之力、过去十年站在领先位置的日本 DeepZenGo,仍然显得稚嫩。
从2015年初开始开发时,CGI的棋力大约仅相当于业余三段水平,到了今年三月提升到业余七段左右,在UEC围棋比赛还仅获得第七名,因此不被外界看好,中国围棋世界冠军柯洁就认为绝艺是胜券在握。
就连 CGI 团队自己当时也认为,“如果能得到第三就很开心了。”因为在中国围棋大会比赛之前,团队对自己及对手进行了分析:尽管 CGI 近期作了许多改进,实力上已有提升,但始终觉得跟绝艺、DeepZenGo 仍有一段距离。
“当时评估在ELO 等级分系统(Elo Rating)中,与 DeepZenGo 还差 100 左右。预估双方应该会是 四六比,而绝艺应该是远高于我们,”
吴毅成诚实地说。
令人没有想到的,在第一天的预赛中,CGI同时击败绝艺与DeepZenGo,以全胜之姿晋级,连团队自己都不敢相信。到了第二天,与DeepZenGo决赛还在进行中,同在观赛的红面棋王周俊勋认为CGI有极高的机率获得冠军,因此就先传了讯息向CGI团队说:恭喜,得冠军的机率很大。但“有点可惜,在比赛后期犯了一点错误”,无奈在 DeepZenGo 面前败下阵,与冠军擦身而过。
什么是吴毅成口中的失误?
他解释,计算机的逻辑跟人脑不一样,计算机是只要赢就好,赢一目也是赢。
但是,人类总是想攻城掠地,尽可能赢越多越好,人的逻辑没有错,赢越多就越能保障胜率,但增目的过程也有风险。
另外,进入比赛后期,如果计算机失误,很容易就开始乱下,主要要寻求机会扳回。围棋只要有一两个地方看错往往就会输了,当 CGI 决赛对弈 DeepZenGo 时,计算机搜索没有那么深,看错了一个地方,但想要挽回时,才发现已经中了对手的陷阱,情势已难挽救,团队当场看胜率就往下掉了。
战胜腾讯绝艺四关键
能有机会战胜绝艺与DeepZenGo,不仅让外界注意到了 CGI,更好奇胜出关键是什么。
吴毅成笑说:“大家都在问这个问题,在会场时,就有很多人赶快拿我们的论文研究。”
目前,在围棋智能程序领域,吴毅成分析,
AlphaGo已经是在天上的等级,CGI、DeepZenGo、绝艺三者的实力是伯仲之间。
蒙特卡洛树搜索算法(MCTS)发展后,DeepZenGo 一直领先,深度学习发展之后,他们也追得上,着实厉害。另外,大陆过去在 Computer Go(计算机围棋)的投入不算多,但在 AlphaGo 兴起后,投入大量资源及资金研发,一年就快速赶上。
“能打败腾讯绝艺,主要是这次机器版本改善了许多小东西而累积起来的成果,每次改版胜率都比之前版本多了70~80%,我相信未来绝艺要改善是很快的。”不过他也对 DT 君透露了
制胜的四个关键:
第一:机器过去只管输跟赢,但这次我们类神经网络设计是包括输多少、赢多少,机率又是多少,例如比对手多五目的机率是多少、多六目又是多少。如果这一个 Net 可以判别可以输几目、赢几目的话,在某个角度来看精准度就会更高。有些人可能认为这个对胜率提升帮助不大,但对 CGI 来说,数据上是有提升的。
第二是分布式系统的成功,让多台机器联合作战,也是此次加入的设计。
第三是改善了传统蒙特卡罗树搜索算法的一个启发式设计。这个改善过去看不太出来,不过却在这次展现。
第四则是训练机器的棋谱,质量有所提高,包括有自我生成的棋谱及高手棋谱。
另外,吴毅成也分享与腾讯绝艺、DeepZenGo 这些 AI 的观察,一致认为有一个问题程序不好解,就是“龙”很长的时候程序常会误判。
这个对我们而言是个谜,我们也不确定 AlphaGo 是否已经解决,还是只是没有遇到这状况,因此让人期待DeepMind的下篇论文是否能解此惑。
投入围棋前的练兵
吴毅成在 12 年前就开始将人工智能应用在游戏的领域,是因为当时他看到了一件事:
计算机的运算能力已经够了,摩尔定律快到极限, 让他敢于投入,而且订下一定要做围棋的目标。
不过,围棋 AI 程序对他来说,就象是打怪游戏里的大魔王,要挑战它得先把基本功练好。
因此,实验室先从其他的益智类游戏做起。他在 2005 年发表了自创的六子棋游戏,在其他游戏也都取得很好的成绩,包括麻将、暗棋、象棋等的竞赛都取得冠军。另外,在2048 数学方块游戏领域,他们也是全世界第一个达到总分 65536 的纪录创始者。