财新传媒
位置:博客 > 李开复 > 最强AlphaGo怎样炼成?DeepMind团队全面解读

最强AlphaGo怎样炼成?DeepMind团队全面解读

AlphaGo Zero证明AI进化速度远比人类想象的更快
 
昨天(10月19日)AlphaGo Zero横空出世,碾压围棋界。AlphaGo Zero完全不用人类过去的棋谱和知识,再次打破人类认知。
 
对此,创新工场创始人兼CEO李开复的观点是:一是AI前进的速度比想象中更快,即便是行业内的人士都被AlphaGo Zero跌破眼镜;二是要正视中国在人工智能学术方面和英美的差距。
 
 
一方面,AlphaGo Zero的自主学习带来的技术革新并非适用于所有人工智能领域。围棋是一种对弈游戏,是信息透明,有明确结构,而且可用规则穷举的。对弈之外,AlphaGo Zero的技术可能在其他领域应用,比如新材料开发,新药的化学结构探索等,但这也需要时间验证。而且语音识别、图像识别、自然语音理解、无人驾驶等领域,数据是无法穷举,也很难完全无中生有。AlphaGo Zero的技术可以降低数据需求(比如说WayMo的数据模拟),但是依然需要大量的数据。
 
另一方面,AlphaGo Zero里面并没有新的巨大的理论突破。它使用的Tabula Rosa learning(白板学习,不用人类知识),是以前的围棋系统Crazy Stone最先使用的。AlphaGo Zero里面最核心使用的技术ResNet,是微软亚洲研究院的孙剑发明的。孙剑现任旷视科技Face++首席科学家。
 
虽然如此,这篇论文的影响力也是巨大的。AlphaGo Zero 能够完美集成这些技术,本身就具有里程碑意义。DeepMind的这一成果具有指向标意义,证明这个方向的可行性。
 
 
在科研工程领域,探索前所未知的方向是困难重重的,一旦有了可行性证明,跟随者的风险就会巨幅下降。我相信从昨天开始,所有做围棋对弈的研究人员都在开始学习或复制AlphaGo Zero。材料、医疗领域的很多研究员也开始探索。
 
AlphaGo Zero的工程和算法确实非常厉害。但千万不要对此产生误解,认为人工智能是万能的,所有人工智能都可以无需人类经验从零学习,得出人工智能威胁论。AlphaGo Zero证明了AI 在快速发展,也验证了英美的科研能力,让我们看到在有些领域可以不用人类知识、人类数据、人类引导就做出顶级的突破。
 
但是,AlphaGo Zero只能在单一简单领域应用,更不具有自主思考、设定目标、创意、自我意识。即便聪明如AlphaGo Zero,也是在人类给下目标,做好数字优化而已。
 
下文来自AI自媒体量子位(ID:QbitAI),是AlphaGo Zero 的两位主要开发者问答AMA记录,全面解读AlphaGo Zero的诞生过程,感兴趣的读者可以继续阅读。
 
最强AlphaGo怎样炼成?刚刚,DeepMind团队进行了全面解读
 
昨天(10月19日),AlphaGo再次震惊所有人。
 
刚刚,这个史上最强围棋AI的两位主要开发者,David Silver和Julian Schrittwieser,做客知名网站reddit,展开一场超级问答AMA(Ask Me Anything)。
 
他们是谁?
 
 
比较关注AlphaGo的朋友对其中一位应该不会陌生,David Silver是AlphaGo团队负责人,也是上一代AlphaGo的主要作者。从首尔到乌镇,都有他的身影。关于David Silver我们在之前报道黄士杰的文章里也有提及。
 
名字更长的Julian Schrittwieser,是这次新一代AlphaGo的三位并列主要作者之一,而且非常年轻。2013年,Schrittwieser本科毕业于奥地利的维也纳技术大学;同年9月,Schrittwieser加入DeepMind。
 
此前DeepMind关于AlphaGo和星际2的研究论文中,Schrittwieser也都有参与。
 
OK,背景交代到这里。
 
干货时间开始。
 
 
以下问答经过量子位(QbitAI)编辑整理。
 
01 最强AlphaGo是怎么炼成的
 
提问:深度强化学习本来就是出了名的不稳、容易遗忘,请问你们是如何让Zero的训练如此稳定的?
 
下图显示了在自我对弈强化学习期间,AlphaGo Zero的表现。整个训练过程中,没有出现震荡或者灾难性遗忘的困扰。
 
David Silver:AlphaGo Zero所用的算法,与策略梯度、Q-learning之类的传统(无模型)算法完全不同。通过使用AlphaGo搜索,我们大大改进了策略和自我对弈结果,然后用简单的基于梯度的更新来训练下一个策略和价值网络。
 
这似乎比渐进的、基于梯度的策略改进要稳定得多,梯度策略可能会忘记之前的优化。
 
提问:为什么这次AlphaGo Zero就训练了40天?训练3个月会怎么样?
 
David Silver:我想这是一个人力和资源优先级的问题。如果我们训练了3个月,我想你还会好奇训练6个月会发生什么……
 
提问:看完论文我有个疑问,输入维度那么高好像完全没必要,AlphaGo的residual block输入维度为什么是19×19×17?我不太理解为什么每个玩家要用8个二值特征plane。
 
David Silver:实际上,不是只有8 planes这一种选择,用其他形式的表示可能也没问题,但我们用了观察值的堆叠历史,有三个原因:
 
这和其他领域,比如说玩雅达利游戏时的常见输入表示一致;
 
我们需要一些历史记录来呈现ko;
 
历史可以用来记录对手最近在哪落过子,这些信息可以当作一种注意力机制来用,比如说集中在对手认为重要的位置上,第17个plane记录的是我自己在用什么颜色,因为有贴目规则,这个信息也很重要。
 
提问:你们发了AlphaGo论文之后,网友们说里边的算法实现起来不难,但很难达到你们那个训练量;在计算机下象棋的圈子里,开发者们也没少复制其他程序的算法。你认为算法和数据哪个更重要?
 
Julian Schrittwieser:我认为还是算法更重要,比较一下新AlphaGo Zero和之前论文中的版本,新版效率有多高就知道了。另外,我认为我们在数据效率方面还能有更多提升。
 
提问:据说和柯洁对战的AlphaGo,计算力的消耗只有对战李世乭版本的十分之一。这中间做了怎样的优化,能简单说是AlphaGo的算法比之前提高了10倍吗?
 
(量子位注:和柯洁对战的AlphaGo Master,用了和Zero版一样的算法和架构,不同之处在于引入了人类对局数据和特征。)
 
Julian Schrittwieser:主要是因为改进了价值/策略网络,训练和架构都变得更好了,不同的网络架构之间的对比如下图所示:
 
 
提问:你们为什么一开始选择用人类对局数据来训练AlphaGo,而不是通过自我对弈来从0开始?还是当时也尝试了但效果不好呢?为什么会这样?我想知道,两年前设计一个完全自学的AlphaGo瓶颈在哪?
 
David Silver:创造一个完全自学成才的系统,一直是强化学习中的一个开放式问题。我们一开始尝试的方法,以及在文献综述部分提到的很多其他方法,都非常不稳定。我们做了很多实验,最终发现,AlphaGo Zero的算法是最有效率的,好像攻克了这个特定的问题。
 
提问:为什么在刚开始训练的时候也要每局下1600步?这时候应该都是随机的噪声吧……先快速下很多盘随机局,然后在网络训练得更好的时候,再进行更深的搜索不是更好吗?
 
Julian Schrittwieser:一开始少下几步可能也行,但在整个试验中保持统一是一种比较简明的做法。
 
提问:在输入特征上,用delta featurization可行吗?
 
Julian Schrittwieser:神经网络实在是很擅长用不同方式来表示同样的信息,所以,是的,我认为用delta featurization应该也行。
 
提问:你们有没有想过用生成对抗网络(GAN)?
 
David Silver:在某种意义上,AlphaGo的自我对弈训练已经有了对抗:每次迭代都试图找到上一代版本的“反策略”。
 
 
02 为何成功者不是Facebook?
 
提问:我听说在AlphaGo开发初期,你们在训练中人为向特定方向引导,来解决它在棋局中表现出来的弱点。现在它的能力已经超越人类认知了,会不会还需要人工调整,避免它落入局部最大化?你们有这个打算吗?
 
David Silver:实际上,我们从来没有为特定的弱点而人为引导过AlphaGo,而是一直专注于原则化的机器学习算法,让算法自己学会纠正自己的错误。
 
想找到围棋的最优解当然是不现实的,所以,弱点总是存在。在实践中,用正确的探索方法来保证训练没有卡在局部最优解中非常重要,但我们没有用上人为的引导。
 
提问:AlphaGo的研究中,最困难的是什么?
 
David Silver:我们遇到的第一个大挑战,是在跟李世乭比赛的时候。当时我们意识到,AlphaGo偶尔会产生“妄想”,也就是会系统地误判盘面情况,并且持续数手。我们尝试了很多想法来解决这个弱点。而引入更多围棋知识,或者人类元知识一直是种诱惑。
 
但最终我们取得了巨大的成功,彻底解决了AlphaGo的问题。我们用的方法是,更多的依赖强化学习的力量,让它自己找到更好的解决方案。
 
提问:AlphaGo在行棋时间安排上是怎么考虑的?
 
David Silver:我们实际上用了一个相当直接的时间控制策略,基于自我博弈中胜率的简单优化。当然可以应用更复杂的策略,性能也应该可以再提升一点点。
 
提问:NIPS论文Thinking Fast and Slow with Deep Learning and Tree Search也提出了和AlphaGoZero类似的方法。
 
论文地址:https://arxiv.org/abs/1705.08439
 
David Silver:这的确和AlphaGo的策略算法很相似,不过我们还有个价值模块。以及要澄清一下,在AlphaGo Zero论文4月7日提交给Nature的时候,那篇NIPS论文还没公开。
 
提问:DeepMind和Facebook研究这个问题大概是在同一时间诶,是什么让AlphaGo这么拿到了围棋最高段位?
 
David Silver:Facebook更专注于监督学习,这是当时最厉害的项目之一。我们选择更多地关注强化学习,是因为相信它最终会超越人类的知识。最近的研究结果显示,只用监督学习的方法的表现力惊人,但强化学习绝对是超出人类水平的关键。
 
03 AlphaGo不开源,星际2还早
 
提问:你们有开源AlphaGo的计划吗?
 
David Silver:我们过去开源了不少代码,但是开源这个过程总是很复杂。在AlphaGo这个问题上,非常不好意思,它的代码库实在是过于复杂了。
 
提问:乌镇时说过的围棋工具什么时候发布?
 
David Silver:这项工作一直在推进,敬请期待 :)
 
提问:AlphaGo Zero还在训练么?未来还会有突破么?
 
David Silver:AlphaGo已经退役了!我们的人力和硬件资源,已经动身前往其他道阻且长的AI项目上了。
 
提问:AlphaGo Zero是最终版本的AlphaGo么?
 
David Silver:我们已经不再主动研究如何让AlphaGo变得更强,但它仍然是所有DeepMind同仁的研究测试平台,用于尝试新的想法和算法。
 
提问:与围棋相比,《星际2》有多难?AI打星际什时候能有新进展?
 
David Silver:前不久我们刚发布了《星际2》的环境,现在相关研究还在相当早期的阶段。《星际2》的行为空间显然比围棋大得多,需要监控的数据量也更大。从技术上来讲,围棋是一个完美信息博弈,而战争迷雾让星际变成不完美信息博弈。
 
04 关于AI研究
 
提问:AlphaGo在神经网络的可解释性方面有什么进展?
 
David Silver:可解释性对我们所有的系统来说都是有趣的问题,而不仅仅是AlphaGo。DeepMind内部正努力研究询问系统的新方式。最近,他们的研究已经发表出来,主要是从认知心理学出发,来尝试破译神经网络内部的情况。这项研究非常棒。
 
提问:似乎使用或模拟强化学习智能体的长期记忆是一个很大瓶颈。展望未来,你是否相信我们即将以一种新的思维方式“解决”这个问题?
 
Julian Schrittwieser:你说的没错,长期记忆确实是个重要因素。例如,在星际争霸的一场比赛中可能有上万个动作,另外还得记住你侦察到的东西。
 
我认为目前已经有了很一颗赛艇的组件,比如神经图灵机,但在这个领域,我们还将看到一些更令人印象深刻的进步。
 
提问:有没有强化学习(RL)用在金融领域的案例?
 
David Silver:很难在公开发表的论文中找到真实世界的金融算法!但是有一些经典论文非常值得一读,例如Nevmyvaka和Kearns在2006年发布的研究、Moody和Safell在2001发布的研究。
 
提问:不读研也能在人工智能领域大有作为吗?
 
Julian Schrittwieser:当然可以,我也只有计算机科学学士学位。这个领域发展很快,所以我认为你可以从阅读论文和运行实验中学习很多东西。在已经有过机器学习经验的公司实习是对你的成长应该很有帮助。
 
提问:怎样进入AI行业?我觉得“读个PhD然后找工作”好像是个挺明显的途径,但是最常见的路径不见得就是最好的吧……
 
Julian Schrittwieser:还有一种方法效果也不错:挑一个有意思的问题,训练很多神经网络,探索它们的结构,然后你会发现一些效果很好的部分,去发表一篇论文,或者去参加会议展示你的成果。
 
不断地重复这个过程。
 
这个圈子很好,会愿意给你反馈,你也可以通过arXiv了解最近的研究。
 
05 关于围棋
 
提问:现在国际象棋程序能给选手评分:通过棋步的分析,来推算Elo等级分。AlphaGo能在围棋上搞这个吗?
 
相关论文:https://www.cse.buffalo.edu/~regan/papers/pdf/ReHa11c.pdf
 
Julian Schrittwieser:这个想法很酷啊,感谢分享这篇论文!
 
我认为在围棋上也能做这样的事情,可能会通过计算最佳下法和实际下法之间的价值差异来实现,或者计算策略网络下出实际下法的概率。等我有时间试试这个。
 
提问:关于对局中的第一手棋,我想问,AlphaGo会有一些你从未见过的开局吗,比如10-10或5-3,或者走很奇怪的一步?如果没有这种情况,那是出于“习惯”,还是有强烈的信念,3-3、3-4和4-4是优越的?
 
David Silver:在训练中,我们看到AlphaGo探索了各种不同的动作——甚至在训练开始时下出过1-1!即使在经过一段训练后,Zero也尝试过下6-4,但很快又回到了熟悉的3-4。
 
Julian Schrittwieser:实际上,在刚开始训练AlphaGoZero时,它完全是随机的,例如在图5的b部分中,你可以看到它实际上是在1-1点下出第一手!逐渐适应网络后,随着它变得更强大,它开始青睐4-4、3-4和3-3。
 
提问:现在AlphaGo能让顶级围棋选手几子?能让柯洁两子么?
 
David Silver:我们还没跟人类选手下过让子棋,我们想专注在整场的围棋比赛中。然而,在让子条件下测试不同版本的AlphaGo很有用。在Zero的论文中我们提到了各个版本的棋力:AlphaGo Master > AlphaGo Lee > AlphaGo Fan,每个版本都让三子击败了它的前一代。
 
值得注意的是,因为这些神经网络没有专门为让子棋训练过。此外,由于AlphaGo是自我对弈训练的,特别擅长打败自身较弱的版本。因此,我认为我们不能以任何有意义的方式将这些结果推广到人类的让子棋中。
 
提问:AlphaGo Zero会处理征子之类的问题吗?你们是怎样解决这类问题的?
 
David Silver:AlphaGo Zero并没有特殊的特征来处理征子,或者任何其他围棋中的特定问题。在训练早期,Zero偶尔会因为征子下满棋盘,就算它对全局有很复杂的理解也没用。但在我们分析的棋局中,经过完全训练的Zero能正确识别所有无意义的征子。
 
提问:已经发布的少量AlphaGo自我对弈棋局中,白棋胜率太高。是不是贴目应该降低?
 
Julian Schrittwieser:从我的经验和实验来看,贴7.5目非常平衡。我们只观察到白棋的胜率略高一点(55%)。
 
提问:你们认为AlphaGo能解《发阳论》第120题吗?(传说中的“死活题最高杰作”)
 
David Silver:我们刚才去问了樊麾,他说AlphaGo能解这个问题,但更有意思的是,它会不会找到跟书里一样的答案?还是能给出一个之前谁也没想到的解法?在AlphaGo的很多对局中,我们都看到了以人类经验无法想象的下法。
 
提问:迈克·雷蒙(Michael Redmond,首位非东亚裔围棋九段)认为AlphaGo会下出人类棋手不会有的恶手,而且学不会围棋定式(深度程序知识)。
 
David Silver:我相信AlphaGo的“恶手”只有在影响全局胜利时才是问题。如果结局仍然是稳赢,真的是很差的一招么?
 
AlphaGo已经学会很多人类的定式,也下出了自己的定式。现在职业棋手有时就在使用AlphaGo的定式。
 
提问:1846年,桑原秀策四段对弈幻庵因硕八段,其中著名的是第127手。AlphaGo怎么看这手棋?AlphaGo会怎么下?
 
Julian Schrittwieser:我不是围棋专家,但是我们问了樊麾,他说:
 
当年比赛的时候,还没有贴目这一说。现在,AlphaGo采用的都是贴7.5目的规则。贴目让对弈过程完全改变。至于第127手,AlphaGo很有可能会选择不同的下法。
 
提问:还会再和职业棋手下棋吗?
 
Julian Schrittwieser:我们五月份说过,乌镇那场就是AlphaGo的最后一次比赛了。
推荐 4