今日,在乌镇围棋峰会人工智能高峰论坛上,AlphaGo之父、DeepMind创始人戴密斯·哈萨比斯(Demis Hassabis)和DeepMind首席科学家大卫·席尔瓦(David Silver)在论坛上透露了关于AlphaGo的重要信息,以及AlphaGo究竟意味着什么?让人们能详细了解到AlphaGo背后的秘密。
AlphaGo是什么?
AlphaGo 是第一个击败人类职业围棋选手并战胜围棋世界冠军的程序,是围棋史上最具实力的选手之一。2016 年 3 月,在全世界超过一亿观众的关注下,AlphaGo 经过5局对弈,最终以 4 比 1 的总比分战胜了围棋世界冠军李世石,这场比赛成为了人工智能领域的一个重要里程碑。过去曾有专家预测人工智能需要十年的时间才有可能战胜人类职业选手,在这场比赛之后,AlphaGo 凭借其“充满创意而又机智”的下法,跻身围棋界最高职业称号——职业九段行列,成为历史上首个获得这一荣誉的非人类棋手。
AlphaGo如何进行训练?
一直以来,围棋就被认为是传统游戏中对人工智能最具挑战性的项目。这不仅仅是因为围棋包含了庞大的搜索空间,更是因为对于落子位置的评估难度已远远超过了简单的启发式算法。
为了应对围棋的巨大复杂性,AlphaGo 采用了一种新颖的机器学习技术,结合了监督学习和强化学习的优势。通过训练形成一个策略网络(policy network),将棋盘上的局势作为输入信息,并对所有可行的落子位置生成一个概率分布。然后,训练出一个价值网络(value network)对自我对弈进行预测,以 -1(对手的绝对胜利)到1(AlphaGo的绝对胜利)的标准,预测所有可行落子位置的结果。这两个网络自身都十分强大,而 AlphaGo将这两种网络整合进基于概率的蒙特卡罗树搜索(MCTS)中,实现了它真正的优势。最后,新版的AlphaGo 产生大量自我对弈棋局,为下一代版本提供了训练数据,此过程循环往复。
AlphaGo 如何决定落子?
在获取棋局信息后,AlphaGo 会根据策略网络探索哪个位置同时具备高潜在价值和高可能性,进而决定最佳落子位置。在分配的搜索时间结束时,模拟过程中被系统最频繁考察的位置将成为 AlphaGo 的最终选择。在经过先期的全盘探索和过程中对最佳落子的不断揣摩后,AlphaGo的搜索算法就能在其计算能力之上加入近似人类的直觉判断。
历代AlphaGo的数据对比
DeepMind把AlphaGo粗略分成几个版本:
第一代,是击败樊麾的AlphaGo Fan。与Zen/Crazy Stone等之前的围棋软件相比,棋力要高出4子。
第二代,是击败李世石的AlphaGo Lee。与上一代相比,棋力高出3子。
第三代,是柯洁如今的对手,也是年初60连胜的:AlphaGo Master。相比于击败李世石的版本,棋力又再次提升3子。
新版AlphaGo比旧版AlphaGo要“强三子”令柯洁十分惊讶,江铸久和芮乃伟特意找到哈萨比斯确认这个“三子”到底是什么意思,哈萨比斯明确表示是在棋盘上先摆上三颗子。芮乃伟私下笑说自己愿意被让三个与AlphaGo一战。
AlphaGo Lee和AlphaGo Master有着根本不同。
新版AlphaGo Master使用单TPU运算,拥有更强的策略/价值网络,由于应用了更高效的算法,运算量只有上一代AlphaGo Lee的十分之一。所以单个TPU机器足以支撑。
旧版的AlphaGo Lee使用50个TPU进行计算,每次搜索计算后续50步,计算速度为10000个位置/秒。
作为对比,20年前击败卡斯帕罗夫的IBM深蓝,可以搜索计算一亿个位置。席尔瓦表示,AlphaGo并不需要搜索那么多位置。
根据公开资料推测,此次AlphaGo2.0的技术原理与之前有着巨大不同:
1. 放弃了监督学习,没有再用人的3000万局棋谱进行训练。这本是AlphaGo最亮眼的算法,也是今天主流机器学习不可避免的核心条件:依赖于优质的数据,在这个特定问题下就这么被再次突破了。
2. 放弃了蒙特卡洛树搜索,不再进行暴力计算。理论上,算法越笨,就越需要暴力计算做补充。算法越聪明,就可以大大减少暴力计算。从AlphaGo 2.0的“马甲”Master的历史行为看,走棋非常迅速,约在每10秒钟就走棋一步,如此速度很可能是放弃了暴力的计算。