人工智能AlphaGo对战李世石,围棋冠军首局投子认输

教育与足球融合 4339

OPTION_5:HP

1997 年,IBM 超级计算机“深蓝”3 比 2 取胜国际象棋冠军卡斯帕罗夫,这被认作人类计算机发展史上的一大里程碑事件。

十九年后,举世瞩目的“阿尔法围棋机器人”(AlphaGO)杀入对弈难度更大的围棋战场,并挑战“近十年来最优秀的围棋选手”——韩国冠军棋手李世石。这场“人机大战”今日在韩国首尔正式打响,双方将于3月9日到15日期间进行5场比赛。

今天是第一局,执黑先行的李世石,在中盘局势领先情况下,在右下角局部战斗中出现失误,AlphaGo敏锐捕捉到战机随即重新获得主动权,最终取得本局胜利。

双方将在3月10日中午12时,进行第2局比赛。

AlphaGo 什么来头?

AlphaGo 是一款围棋人工智能程序,由位于英国伦敦的 DeepMind( Google 旗下公司)团队历时两年开发而成。相比于十九年前战胜国际象棋冠军的 IBM 超级计算机“深蓝”,AlphaGo 现在想要打败围棋选手依然困难得多。

国际象棋中,平均每回合有 35 种可能,一盘棋可以有 80 回合;而围棋作为一项延续 4000 多年的人类智力游戏,围棋被视作世界上最复杂的棋盘游戏,也是目前仅有的一项人脑能够战胜电脑的棋类运动。

围棋每回合有 250 种可能,一盘棋可以长达 150 回合。所以围棋最大有 3^361 种局面,换算一下大致是 10^170。国际象棋最大只有 2^155 种局面,大致是 10^47,而已知宇宙中原子的数量为 10^80。

面对围棋中如此巨大的运算量( 10^170 ),靠电脑机械列出所有可能方案,再形成树形地图的传统做法,不仅效率低而且无法延续下去。

直到 Google 下属的 DeepMind 团队找到了“深度学习(Deep Learning)”的终极杀器。“深度学习”是人工智能(AI)领域当下最为热门的研究领域。

具体到 AlphaGo 上,“深度学习”的能力就是利用“价值网络( value network )”去计算局面,然后再用“策略网络( policy network )”去选择下子。“价值网络”和“策略网络”是两种不同的深度神经网络,并且共同构成了 AlphaGo 的“大脑”。

AlphaGo 的两种深度神经网络结构示意图

围棋过程中,AlphaGo 的“大脑”可以模拟人脑先“筛选”出那些有利的棋局,并“抛弃”掉明显的差棋,从而将计算量控制在AlphaGo “大脑”可以完成的范围内。具体来看:

1.“价值网络”负责减少搜索的深度:AI 会一边推算一边判断局面,局面明显劣势的时候,就直接抛弃某些路线,不用一条道算到黑。

2.“策略网络”负责减少搜索的宽度:面对眼前的一盘棋,有些棋步是明显不该走的,比如不该随便送子给别人吃。

3.利用蒙特卡洛拟合(MCTS,Monte Carlo Tree Search),将这些信息放入一个概率函数,AI 就不用给每一步以同样的重视程度,而可以重点分析那些能赢的棋步。

需要说明的是,人脑不可能像电脑一样无时不刻地接受“深度学习”,所以理论上来说只要 AlphaGo 经历了足够的训练,就能击败所有的人类围棋选手。

Google 在 今年 1 月对外宣布,AlphaGo 于去年 10 月战胜了樊麾二段,后者已经连续三年获得欧洲围棋冠军。需要强调的是,AlphaGo 是在没有任何让子的情况下以 5:0 完胜樊麾的,这也是电脑第一次在公开比赛上战胜职业围棋选手。

AlphaGo 与樊麾二段的 5 局较量

战胜樊麾二段后,AlphaGo 一鼓作气将李世石九段定为“终极 PK ”的目标,犹如二十年前“深蓝”将对决选手锁定国际象棋冠军卡斯帕罗夫一样。

本文下一页:DeepMind团队凭啥自信爆棚?科普AlphaGo两大核心技术

第1页:让世界冠军首轮认输的AlphaGo什么来头?第2页:DeepMind团队凭啥自信爆棚?科普AlphaGo两大核心技术第3页:柯洁:李世石并非人机大战最适合的棋手

{pagination}

出门问问的NLP工程师李理从技术的角度分析了AlphaGo的算法技术,以下是作者原文节选:

AlphaGo的两大核心技术

· MCTS(Monte Carlo Tree Search)

MCTS之于围棋就像Alpha-Beta搜索之于象棋,是核心的算法,而比赛时的搜索速度至关重要。就像深蓝当年战胜时,超级计算机的运算速度是制胜的关键因素之一。

上MCTS的4个步骤:Selection,Expansion,Evaluation(rollout)和Backup

MCTS的并行搜索:

(1) Leaf Parallelisation

最简单的是Leaf Parallelisation,一个叶子用多个线程进行多次Simulation,完全不改变之前的算法,把原来的一次Simulation的统计量用多次来代替,这样理论上应该准确不少。但这种并行的问题是需要等待最慢的那个结束才能更新统计量;而且搜索的路径数没有增多。

(2) Root Parallelisation

多个线程各自搜索各自的UCT树,最后投票

(3) Tree Parallelisation

这是真正的并行搜索,用多个线程同时搜索UCT树。当然统计量的更新需要考虑多线程的问题,比如要加锁。

另外一个问题就是多个线程很可能同时走一样的路径(因为大家都选择目前看起来Promising的孩子),一种方法就是临时的修改virtual loss,比如线程1在搜索孩子a,那么就给它的Q(v)减一个很大的数,这样其它线程就不太可能选择它了。当然线程1搜索完了之后要记得改回来。

《A Lock-free Multithreaded Monte-Carlo Tree Search Algorithm》使用了一种lock-free的算法,这种方法比加锁的方法要快很多,AlphaGo也用了这个方法。

Segal研究了为什么多机的MCTS算法很难,并且实验得出结论使用virtual loss的多线程版本能比较完美的scale到64个线程(当然这是单机一个进程的多线程程序)。AlphaGo的Rollout是用CPU集群来加速的,但是其它的三个步骤是在一台机器完成的,这个就是最大的瓶颈。

· DCNN(Deep Convolutional Neural Network)

深度学习工程师:为什么AlphaGo难取胜?从核心技术解读围棋大战

(使用深度神经网络训练的Policy Network和Value Network)

神经网络训练的时间一般很长,即使用GPU,一般也是用天来计算。Google使用GPU Cluster来训练,从论文中看,训练时间最长的Value Network也只是用50个GPU训练了一周。

给定一个输入,用卷积神经网络来预测,基本运算是矩阵向量运算和卷积,由于神经网络大量的参数,用CPU来运算也是比较慢的。所以一般也是用GPU来加速,而AlphaGo是用GPU的cluster来加速的。

更多技术细节请参考我的文章《alphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术》

1. 论文送审时(2015年11月)AlphaGo的水平

论文里使用Elo Rating系统的水平:

深度学习工程师:为什么AlphaGo难取胜?从核心技术解读围棋大战

a图是用分布式的AlphaGo,单机版的AlphaGo,CrazyStone等主流围棋软件进行比赛,然后使用的是Elo Rating的打分。

笔者认为AlphaGo的水平超过了樊麾(2p),因此AlphaGo的水平应该达到了2p。【不过很多人认为目前樊麾的水平可能到不了2p】

b图说明了Policy Network Value Network和Rollout的作用,做了一些实验,去掉一些的情况下棋力的变化,结论当然是三个都很重要。

c图说明了搜索线程数以及分布式搜索对棋力的提升,这些细节我们会在下一节再讨论,包括AlphaGO的架构能不能再scalable到更多机器的集群从而提升棋力。

DeepMind团队对机器有信心

在赛前的新闻发布会上,谷歌董事长埃里克、DeepMind创始人哈萨比斯与李世石同时公开亮相。埃里克表示,这次无论谁胜谁负,实际上都是人类的胜利,正是因为人类的努力,才让机器有了现在的进展和突破。据哈萨比斯介绍,此次“人机大战”,谷歌的计算机性能与和樊麾比赛时的性能接近。谷歌方面介绍说,人类在学习围棋的过程中会有导师指导,而AlphaGo除了已有的数据以外,并没有导师来告诉它哪一步棋是正确的,这可能是它继续提高的一个难题。

哈萨比斯对“人机大战”充满自信,他介绍说,AlphaGo有18版软件,一直在自我对局,即使是相同版本,对局中也会出现不同招法,因为是根据蒙特卡洛搜索树采取策略,会形成非常有趣的棋谱。在和樊麾比赛后,AlphaGo进步很大,对阵李世石九段也有机会。至于AlphaGo进步了多少,他表示要留待时候再揭晓。

“我们都对10年前‘深蓝’VS卡斯帕罗夫的国际象棋人机大战印象深刻,认为如果机器能在围棋方面取得成功将会很惊人,所以两年前我们开始研究人工智能围棋的自我学习。围棋更注重直觉判断,因此难度比国象更高,但也让研发围棋程序更有意思。让机器复制人类思维还很困难,机器速度很快,擅长计算,但传统机器在直觉方面的表现并不算好。

AlphaGo以后也有可能会公开,有助于其他人进步。很多人都在研究人工智能,我们希望能提高对人工智能的理解,试图去了解人类学习的机理。现在说来还早,但我们的项目技术将可以应用到很多领域,甚至将来有可能帮助利物浦队挑选球员。5年后人工智能会变得更加智能,深入到生活的方方面面。”哈萨比斯说。

本文下一页:柯洁:李世石并非人机大战最适合的棋手

第1页:让世界冠军首轮认输的AlphaGo什么来头?第2页:DeepMind团队凭啥自信爆棚?科普AlphaGo两大核心技术第3页:柯洁:李世石并非人机大战最适合的棋手

{pagination}

李世石有多厉害?

李世石是韩国围棋九段棋手,这一段位已是专业围棋棋手中的最高级别。

李世石 1995 年入段,1998 年升为二段,1999 年升为三段。2003 年初因获得 LG 杯冠军,直接升为六段;同年 4 月获得韩国 KT 杯亚军,升为七段;当年 7 月再夺富士通杯冠军,直接升为九段。

自 2002 年首次加冕富士通杯以来,李世石在最近十多年时间中 共获得了 14 个世界冠军,是世界棋坛最近十年获得世界第一头衔最多的职业棋手。

据悉,李世石属于典型的力战型棋风,善于敏锐地抓住对手的弱处主动出击,以强大的力量击垮对手,他的攻击可以用“稳、准、狠”来形容,经常能在劣势下完成逆转。

需要说明的是,李世石九段刚刚在农心杯三国围棋擂台赛上败给来自中国的小将柯洁九段,后者对其战绩为 8 胜 2 负。 Google 方面表示,如果李世石最初不同意参加与 AlphaGo 的人机大战,就会考虑让柯洁顶替。

柯洁:李世石并非人机大战最适合的棋手

作为李世石的老对手,“中国围棋第一人”柯洁九段在解说这场比赛时分析称:“李世石的强项是后半盘的翻盘能力,布局则是李世石最差的地方,判断力也不是太好,这对于AlphaGo来说是个重大利好,因为计算机一般来说也是强在后半盘。”

“在和实力相当的棋手进行比赛的时候,李世石大部分都靠后盘逆转取胜,对于人类来说,一旦出现误差,很容易出现连续的失误,但是计算机很少会出现这种情况。”柯洁说。

柯洁表示:“AlphaGo的前半盘定势省局也是会有一定误差的,但是到了后来计算能力会越来越强,这和李世石有些相似,所以李世石的棋风并不是最适合和计算机比赛,AlphaGo有一定的机会。”

在比赛开始半个小时后,通过AlphaGo的布子,柯洁判断AlphaGo确实要比2015年10月和欧洲冠军、职业围棋二段樊麾比赛时强很多。柯洁称:“这一场棋一定是5场比赛时间最长的,至少李世石会非常的谨慎。”

虽然柯洁表现出了一定的担忧,但是其随即又表示:“李世石在这场比赛中的求胜欲一定达到了顶峰,这场比赛一定要赢,这也是在捍卫我们职业棋手的尊严。”

而对于自己是否也愿意和AlphaGo来一场的问题,柯洁却给出了否定的答案。柯洁称:“我自己的话并不想和AlphaGo比赛,因为通过AlphaGo和李世石刚刚的比赛可以看出AlphaGo一定是弱于我的,我不想让AlphaGo拷贝我的比赛思路。”

柯洁是新一代的中国围棋棋手的领军人物,年仅18岁却连夺百灵杯、三星杯、Mlily梦百合杯三项围棋比赛世界冠军,曾八次击败韩国棋手李世石。而李世石仍然是近10年来获得世界第一头衔最多的棋手。

人机世纪大战比赛日程

AlphaGo 与李世石九段的人机世纪大战由 Google 牵头安排,正式比赛会在韩国首尔的四季酒店举行。

具体赛程安排如下:

3 月 9 日 (星期三):首场比赛;

3 月 10 日(星期四):第二场比赛;

3 月 12 日(星期六):第三场比赛;

3 月 13 日(星期日):第四场比赛;

3 月 15 日(星期二):第五场比赛。

每日开赛时间均为北京时间中午 12 点。比赛采用贴 7.5 目的中国规则( 比赛结束时,后走棋的棋手贴目)。每位棋手各有两个小时布局时间,3 次 60 秒的读秒,每场比赛预计需要大约 4 到 5 个小时。

人机世纪大战的获胜方将得到 Google 赞助的 100 万美元奖金。如果 AlphaGo 获胜,奖金将捐赠给联合国儿童基金会( UNICEF )、STEM 教育计划以及围棋慈善机构 Go Charity。

第1页:让世界冠军首轮认输的AlphaGo什么来头?第2页:DeepMind团队凭啥自信爆棚?科普AlphaGo两大核心技术第3页:柯洁:李世石并非人机大战最适合的棋手

关注最前沿的电子设计资讯,请关注“电子工程专辑微信公众号”。