alphago Zero
PS:具体详细可看论文Mastering the game of Go without human knowledge;Learning to play Othello without human knowledge
AlphaGo Zero–它不需要人类展示如何玩Go。它不仅优于所有以前的Go玩家,无论是人类还是机器,只需要三天的训练时间就可以。
对于离散,确定性游戏,MCTS是首选算法。玩Go,象棋或棋子等游戏的机器人可以通过尝试所有游戏,然后检查对手的所有可能响应,之后所有可能的移动等等来确定它应该做出什么样的移动。
国际象棋和围棋等游戏有很大的分支因素。在给定的游戏状态中,有许多可能采取的行动,使得充分探索未来的游戏状态变得非常困难。使用vanilla Monte Carlo树搜索移动评估效率不高。我们需要一种方法来进一步将注意力集中在有价值的举措上。
假设我们有专家策略 π对于给定的状态s,告诉我们专家级玩家有多大概率做出每一个可能的行动。不幸的是,获得专家策略很困难,并且验证该政策是最优的也很困难。幸运的是,可以通过使用修改形式的蒙特卡罗树搜索来改进策略
通过避免昂贵且可能不准确的随机播放(模拟游戏直至结束返回reward,但模拟游戏所需时间很长,想想一盘棋要多久才能结束),可以实现第二种效率形式。一种方法是直接估计状态的价值函数,这个函数接收状态s作为输入,输出一个[-1,1]的的数字,无需rollouts。所以我们现在要找到一种方法,能够训练策略\(\pi\)以及价值函数V
Alpha Zero算法通过加速蒙特卡罗树搜索(无Rollout)与自身玩游戏,随着时间的推移产生越来越好的专家策略和价值函数。专家策略\(\pi\)和价值函数\(V\)都是神经网络。事实上,这可混合成一个神经网络f,\(f(s)->[p,V]\).p是下一步所有动作的概率,v是价值,估计当前player在状态s获胜的概率。在每一状态s,受神经网络\(f_{\theta}\)指导的MCTS会搜索一次。并且MCTS搜索会生成每个可能动作的概率\(\pi\).通常\(\pi\)会比\(f_{\theta}\)生成的概率p要好。目标函数为:
\(l=\sum_t( v_{\theta}(s_t) -z_t )^2-\pi_{t}log(p_{\theta}(s_t))\)