没有人会否认,AlphaGo在过去一年炒热全球对人工智能的关注。
2016年3月,谷歌Deepmind旗下的围棋程序AlphaGo,以4比1的成绩战胜韩国职业棋手李世石。一年后,拿掉所有人类知识、完全靠自学的AlphaGo Zero,在今年10月又以100比0的战绩碾压“AI前辈”AlphaGo。从击败人类、到自学成材,AlphaGo的进展超乎预期,研发团队也自然成为关注焦点。这当中,被称为AlphaGo的“人肉手臂”,替AlphaGo向棋圣聂卫平说“谢谢聂老师”的黄士杰(Aja Huang),就是AlphaGo发展的重要推手。
1978年出生、现任Deepmind资深研究员的黄士杰,私底下是围棋业余六段,在每一场人机对战中,都代表AlphaGo落子。但他不只是手脚,更贴近他身分的描述,其实是AlphaGo的设计者、是AlphaGo的大脑。让AlphaGo登上科学期刊《自然》(Nature)封面的那篇知名论文,黄士杰并列为第一作者。
上周五(11月10日)在台湾中研院举办的“2017年人工智慧年会”上,黄士杰首次把AlphaGo的研发过程公开说清楚,除了透露新一代AlphaGo Zero的能力还没达到极限,他更多的是去分享身为一名科学家,旁观机器的进步,以及一个科学团队对基础研究的使命和专注。
以下是编辑后的演讲摘录:
AlphaGo的研发过程,有四个时刻对我影响很大。
第一,是我们在韩国赢了李世石。当我们开始做AlphaGo时,没想到它会变得那么强。在韩国赢了李世石后,DeepMind首席执行官Demis Hassabis立刻发了一个推特,说“我们登上月球”(We landed it on the moon.)。我明白Demis那天的感觉,这是我们团队的一小步,但却是人类的一大步。
第二个时刻,是我在网络上操作AlphaGo升级版“Master”,下了60盘棋。我从小喜欢下棋,在台湾是业余六段。Master在网络上对弈的对象,都是我从小崇拜的人。虽然不是我真正在下棋,但却感到非常荣幸。
第三个时刻,是今年在乌镇进行的人机大战,由我操作AlphaGo和世界冠军柯洁九段下棋。柯洁还不满20岁,非常年轻,当天比赛氛围和李世石对弈时很不同。我记得在韩国比赛,能感受到李世石承受到很大的压力,感觉他是在为人类而战。我当时坐在他对面,也尽量保持谨慎的态度,不喝水、不去上洗手间。但到了第二次和柯洁对弈,比较像是人机合作的气氛,柯洁还走过来说:“黄博士,很荣幸跟AlphaGo下棋”,坦白说我有点惊讶。这也让我们知道,如果Master是无敌的,那机器存在价值到底在哪里?应该是要帮助棋手扩张思路、扩展围棋理论。
第四次对我意义重大的时刻,是AlphaGo Zero的出现。什么是AlphaGo Zero?我们拿掉所有人类对围棋的知识,只喂AlphaGo Zero围棋规则,让它自己学习下棋。我回想起读博士班的熬夜日子,就是不断写代码、找bug,每天做测试,让程序进步。但AlphaGo Zero把我过去的所有东西全部取代,它完全不需要我的帮助。有同事问我,Aja,AlphaGo Zero把你这十几年来对围棋计算机的研究,一点一点的拿掉,甚至还超越你,有什么感觉?我的确心情复杂,但后来跟同事说,这会是一个趋势,如果我阻碍了AlphaGo,我确实应该被拿掉(笑)。AlphaGo有99%的知识是我做的,AlphaGo能走到这一步,我已经很满足,找到了收尾。
AlphaGo是怎么开始的?
回到一开始,AlphaGo到底是怎么开始的?起点是有三组人马的聚集:Deepmind首席执行官Demis Hassabis与AlphaGo项目领导David Silver、我、还有两位谷歌大脑(Google brain)的同事Chris Maddison和Ilya Sutskever。
Demis和David原本是剑桥大学的同学,友情深厚。对西方人来说,当1997年IBM超级电脑“深蓝”赢了西洋棋棋王卡斯巴罗夫之后,就只剩下流传几千年的中国围棋,是人工智能发展的极大挑战。一开始,很多研究人员想把研究西洋棋的技术移到围棋上,但都失败了。在2006年蒙特卡洛树搜索出来后,研究才提升一阶,让机器棋手的水平能达到业余三段,但离职业棋士一段还有距离。Demis和David心中开始藏有一个梦,希望有一天要能做出一个很强的围棋程式。
但有梦的不只有他们,故事的另一条线还有我。
在就读台湾师范大学资讯工程博士班时,我每天埋头解bug、写代码,就是希望做一个很强的围棋程序。2010年,我研发出的围棋计算机程序Erica(事实上是用我妻子的名字来命名),在计算机奥林匹亚获得 19 路围棋的冠军。虽然Erica只是单机版,但它打败了用了6台PC的日本程序Zen跟其他参赛者,就像小虾米对抗大鲸鱼。当年还在英国当教授的David,在比赛后写信问我有没有兴趣加入Deepmind,隔年我也正式加入团队,成为第40号员工。
我还记得当年面试,老板问我,能做出Erica有什么感觉?我回答,满有成就的。Demis点头,他明白我的感觉。
2014年,Google收购Deepmind,AlphaGo项目也正式浮现。Demis起初还在教书、还不是全职员工,就常三不五时走过来跟我讨论围棋项目的想法。真的要开始时,我们其实都已经有些准备。
既然决定要做围棋项目,当时我和Demis有一个共识,就是绝对不要复制Erica。Erica其实有它的极限,最勉强的就是达到业余三段,继续复制的意义不大。我们想做不一样的事,希望能运用到深度学习的原理。过了几个月,团队又增加了两个人,包括深度学习之父以及带动深度学习革命的研究者。
我们怎么判断深度学习可能应用到围棋?如果人类可以一看棋盘就知道下哪一步会是好棋,那么神经网络也可能办得到这种"直觉"。但如果人类得想五分钟才能给出答案,神经网络可能办不到。一开始,我们训练AlphaGo从人类的棋谱去学习人类的直觉。我还记得第一次测试神经网络,没想到能表现得那么好,百分之百对战都不会输,是一种碾压式的胜利。
AlphaGo第二个突破的是价值网络。我记得当David跟我说他有这样一个点子时,我还质疑,这会成吗?当我们把策略网络(Policy Network)做出来后,最强的程式可以达到70%到80%的胜率,算得上是世界最强的。但老板的目标不只于此,我们又继续找人、继续扩充团队。
这过程其实很辛苦,尝试很多,譬如网络要多深、要用什么架构?数据库有没有问题?最终检验的,还是看AlphaGo有没有变强。过了一个月之后,我们找到了问题并且解决掉,我仍然记得,旧版AlphaGo配上价值网络产生的新版AlphaGo,第一次的实验结果是达到95%的胜率,棋力非常强。可以这么说,AlphaGo的成功就是深度学习与强化学习的胜利,因为两者结合在一起,建构判断形式的价值网络(Value Network),后来也成为AlphaGo Zero的主要理论。
当价值网络出来后,Demis希望我们能与欧洲职业一段棋手进行比赛。当下,我除了要做价值网络,还要研究平行网络搜索技术,Demis走过来说要比赛,我只想着:真的那么有信心吗?
后来我们与欧洲围棋冠军樊麾进行比赛,最终以5比0获胜,这结果其实也很不可思议。我记得樊麾输了第二盘棋后,想出去走走,会说中文的我,原本想去陪他,他挥挥手,“不用,我自己出去透透气。”
难能可贵的是,樊麾是第一个被AI打败的职业棋士,但他的态度非常正面。樊麾在第五盘棋虽然认输了,但他对AI并没有感到害怕,后来甚至也加入了团队,帮忙测试AlphaGo。
当时要把AlphaGo研究投稿到科学期刊《自然》(Nature)也是另一段有趣的故事。我们那时刚弄出价值网络、刚打败樊麾,正准备要挑战韩国职业棋手李世石九段,Demis为什么又要我们另外花时间去写论文,而不是准备比赛?为什么现在就要我们把研究秘密全部公开?
Demis给了我一个很有意思的答案。他认为,我们是在做研究,科学的精神就是要互相分享,我们要推动整个领域的进步。也因为要写论文投稿,和《自然》编辑也事先谈好,在出版之前,我们不能和任何人说AlphaGo打败了樊麾。那几个月,所有人都憋著不讲,当论文刊登之后,才正式向李世石九段提出挑战。
至于后来AlphaGo和李世石的比赛,大家也都知道了。
这边要特别提到的是,TPU(Tensor Processing Unit,谷歌的高性能处理器)在研究过程中对我们有极大的帮助。自从Deepmind加入Google后,我认为Google给我们最大的帮助,就是提供了硬件设备。我还记得当时有一个GPU(图形处理器)版本,代码完全一样,但改用TPU之后,胜率变得强太多。
而AlphaGo的故事也还没结束。
就在我们打败李世石后,很多人认为AlphaGo项目是不是不动了。如果大家还记得,和李世石下棋时,第四盘棋我们输得很惨。当时我坐在李世石对面,要帮AlphaGo下那几步棋,明显知道那些下法是初学者的错误,要摆棋很痛苦,甚至会觉得我来下都比AlphaGo来得好。虽然我们最终赢了,但这一盘棋确实有很大的弱点,如果五盘棋内,有20%的错误率,这样的AI系统,你敢用吗?所以我们决定,一定要把这个弱点解决掉,不只是解决第四盘的问题,是要把AlphaGo项目全面解决。
后来过了三个月,我们就把弱点解掉了。怎么做到的?还是采用深度学习和强化学习的方法,并不是用人类知识的方法。第一,我们加强AlphaGo的学习能力,所谓学习能力就是把网络程度加深,从第一篇论文的13层加深到40层,而且是改成ResNet。第二个改变是,把策略网络和神经网络结合,让AlphaGo的直觉和判断一起训练,使两者更有一致性。这个解决后的版本,就是Master。
我那段时间一直说服团队,要带Master上线下棋测试棋力,不要等到Master完全无敌后才下棋。2016年年底,我回到台湾,当时特别低调,在线上中文围棋网站奕城和野狐申请了帐号,偷偷当职业棋士下棋。12月29号开始,我关在自己的房间里测试Master,一盘棋下一小时,一早下三盘棋,然后吃饭,下午继续,晚上吃完饭再继续,非常累,到晚上眼睛都张不开。
我还记得一开始在奕城下棋,没人要跟经验值为零的我对弈,直到第二天邀约才陆续上门,到了第三天,还愈来愈多人观看。那时压力很大,很怕自己点击错误或是网络连线断掉,AlphaGo不能因为我而输掉阿。
我到现在还是很感谢那些曾经和Master对弈的棋手。原本想低调比赛,但后来没办法,确实是每一盘都赢、每一盘赢的都是巨大的优势。这当中,柯洁算是唯一一位可以跟AlphaGo比赛坚持最久的。
AlphaGo Zero只用三天走过人类的千年历程
在Master之后,我们研究分出两条线,一条是让Master出去比赛,由我来测试,另一条线,则是把所有人类知识拿掉,从零开始学习,看AlphaGo Zero可以达到什么程度。
我们在初期预设AlphaGo Zero绝对不可能赢Master。围棋被研究了几千年,一个程序只知道棋盘和规则,一切从零开始,怎么可能会超越几千年的围棋历史?但我们错了,40天的训练后,AlphaGo Zero超越了Master,我们非常意外,深度学习和强化学习的威力太大了。
AlphaGo Zero是从乱下开始,找出围棋的下法,它只用了三天,走过了人类研究围棋的千年历程。这也是有趣的地方,人类几千年的累积,跟科学研究是一致的。
AlphaGo Zero前后训练了 40 天,但第 40 天还没有到达其极限,因为我们机器要做其他事情就先停下了。今年四月,我们也发表了AlphaGo Zero的论文,这篇论文的目的,没有想要跟人类知识比较、或是讨论人类知识有没有用等问题,而是想证明机器不需要人类知识也可以拥有很强的能力。
我认为,未来的人工智能,是要与人类合作,而非跟人类对抗。强人工智能距离我们仍是遥远,而现在最强的学习技能,其实仍在我们的脑袋里。