前段时间被alphago zero刷屏,近期也读了些alphago zero的资料,准备将这些资料做个整理,对alphago zero原理做个简单介绍,如有疏漏请各位专家指正。
游戏AI,是人工智能最先研究的领域之一。以围棋为例,将每个棋盘定义为一个状态,每下一步棋就有一个状态变化,以19乘19,因此围棋状态总共有2的361次方种状态。利用计算机暴力搜索求解在当前的技术条件,是一件不可能事情。
既然无法暴力穷举解决问题,那我们考虑限制搜索的深度,获得近似最优解,极大极小搜索应运而生。在极大极小搜索基础上,为了降低搜索规模,alpha-beta剪枝技术被提出来。
基于树搜索的技术,需要解决两个关键问题:(1)如考评价当前状态获胜概率;(2)如何进行搜索。MCTS的横空出世,将棋类AI带到了一个新的高度,MCTS基本原理如下图所示,分为四个阶段:
对于MCTS同样有两个问题,需要解决,如何选择扩展节点,模拟下棋的策略怎么设计。UCT是MCTS的一个里程碑,解决了搜索策略问题。alphago zero就是建立在MCTS的框架上,使用了UCT搜索策略。
alphago zero的创新之处在于(1)基于深度学习设计了一个强大的评估函数,能够高效评估获胜概率以及当前局势下的下棋策略,并且训练样本基于围棋规则产生,摆脱了对人类棋谱的依赖;(2)利MCTS作为提升器,通过强化学习,不断提升自评估函数性能。alphago zero 用一个深度神经网络来度局面进行评估,同时给出下棋策略,输入是当前围棋状态,输出为获胜概率,和下一步棋的走子策略。
没有调查就没有发言权,深入了解一个事物,仅仅通过媒体/公众号文章是远远不够的,需要静下心去阅读一手材料。alphago zero基本上终结了围棋AI,但在机器学习理论层面并未有大的突破,也并未成为围棋上帝。alphago zero给机器学习领域打开了一扇新的思考窗口,更重要的是它将会吸引大批有天赋的小学生、中学生和大学生进入到AI领域,也许他们才是AI的未来!
由于时间比较仓促,有些图和描述过于粗糙,对于文献引用并也未列出,后续将补上。