1.背景
本文主要为我本身对AlphaGo1论文的理解及解读。由于本身可能能力有限,解读不准确的地方欢迎大家指正。
符号简要说明
s : State(状态) 指代当前棋局状态,可以表示为一个 19 × 19 19 \times 19 19×19 的特征平面
a : Action(动作) 指代在某一状态s下,可能采取某一动作(即将棋子下在某一个地方)
A ( s ) A(s) A(s) : Action space(动作空间) 指代给定状态s下,所有合法的动作
f ( s , a ) f(s,a) f(s,a) : 在状态s下,执行动作a后的后续状态
p ( a ∣ s ) p(a|s) p(a∣s) : 策略,在A(s)上的一个概率分布。(给定状态s,选择动作a的概率)
z t z_t zt : 游戏结果,在游戏结束前均为0,游戏结束为1,代表玩家1获胜,为0代表平局,为-1代表失败
v p ( s ) v^p(s) vp(s) : 给定状态s,在策略p下的价值函数(value function),代表了期望结果。 v p ( s ) = E [ z t ∣ s t = s , a t . . . T p ] v^p(s)=E[z_t|s_t=s,a_{t...T} p] vp(s)=E[zt∣st=s,at...Tp]
v ∗ ( s ) v^*(s) v∗(s) : 在零和博弈中,给定状态s, 有一个唯一的最优价值函数
许多策略性游戏,比如象棋,围棋等,都可以被定义为交替马尔可夫游戏(alternating Markov games)。棋类游戏如围棋,也可以被定义为在给定状态s下,根据策略p, 在动作空间A(s)中选择一个动作a,使得价值函数v最好。
最优价值函数 v ∗ ( s ) v^*(s) v∗(s) 可以递归的应用最小最大搜索(minimax search)来计算。但对于大多数游戏,这个计算量都太大了。因此提出用一个估算值 v ( s ) = v ∗ ( s ) v(s) = v^*(s) v(s)=v∗(s) 来代替,该方法即为用alpha-beta pruning的深度优先最小最大搜索。这种方法可以适用于象棋和国际象棋等,但仍不能解决围棋。
文章提出,针对围棋,可以结合蒙特卡洛树搜索法(MCTS)和强化学习,通过两次估计来预测最优价值函数 v n ( s ) = v p n ( s ) = v ∗ ( s ) v^n(s)=v^{p^n}(s)=v^*(s) vn(s)=vpn(s)=v∗(s)。第一次估计,是给定策略 p n p^n pn, 通过n次蒙特卡洛模拟来估计其模拟策略p的价值函数。第二次估计,是用模拟策略p的价值函数代替最大最小价值函数。
2. 网络详细介绍
网络组成简要说明
p σ p_\sigma pσ