1. 背景
通过系列一对Alpha的介绍,我们已经知道了AlphaGo的大致模型内容。在2017年,论文1又基于AlphaGo提出了一个新模型AlphaGo Zero。新模型和AlphaGo的主要区别就在于,完全没有应用人类对弈数据。在AlphaGo中,人类对弈数据主要在快速策略网络和监督学习策略网络。
在论文中提到,应用人类专家数据的缺点主要有两部分:1. 很难获取可靠的专家数据;2. 系统的表现会受限于人类专家的水平。缺点1也可以被理解为围棋中人类对弈数据有赢方也有坏棋,输方也有好棋,数据好坏不是很可靠。
AlphaGo Zero 的创新点主要有四部分:
- 应用自对弈强化学习进行训练,摒弃所有人类专家数据;
- 不应用任何除棋盘数据外的任意其他数据;
- 应用单个神经网络,而不是像AlphaGo那样分为策略网络和估值网络;
- 简化了树搜索算法,不再需要应用快速策略来完整模拟棋局。
通过这些,AlphaGo Zero实现了更快速和精确的结果。
2. 方法
AlphaGo Zero只含有一个深度神经网络 f θ f_\theta fθ 。该网络将当前棋盘数据(即 19 × 19 19 \times 19 19×19 的棋盘特征)以及历史棋盘数据作为输入,然后输出动作概率分布和一个价值 ( p , v ) = f θ ( s ) (p,v)=f_\theta(s) (p,v)=fθ(s) 。p是一个动作概率向量,代表了选每个动作的概率, p a = P r ( a ∣ s ) p_a=Pr(a|s) pa=Pr(a∣s)。价值v是一个标量,估计了当前玩家在状态s可以获胜的概率。这个网络结合了策略网络和估值网络。
在AlphaGo Zero中,MCTS可以被视作是一个策略提升算子。对于每个状态s,原本的神经网络 f θ f_\theta fθ 本身输出了一个动作概率分布 p p p ,然后MCTS搜索基于该网络,再输出一个概率分布 π \pi π 。新的概率分布 π \pi π 较 p p p 会选择更强的动作。
同时,MCTS也可以被视作是一个估值提升算子。在一次模拟棋局结束时,MCTS会输出一个输赢结果z,而z也可以作为网络 f θ f_\theta fθ 的输出价值v的指导。
2.1 MCTS in AlphaGo Zero
MCTS中搜索树的每一条边(s,a)都存有:(1)先验概率 P ( s , a ) P(s,a) P(s,a) ; (2)访问次数 N ( s , a ) N(s,a) N(s,a);(3)动作价值 Q ( s , a ) Q(s,a) Q(s,a)。
先验概率 P ( s , a ) P(s,a) P(s,a) 为网络 f θ ( s ) f_\theta(s) fθ(s) 中输出的动作概率向量p中的一项。
动作价值 Q ( s , a ) Q(s,a) Q(s,a) 为多次模拟中网络 f θ ( s ′ ) f_\theta(s') fθ(s′) 输出的价值v的平均值。状态 s ′ s'