AlphaGo
论文:
AlphaGo:《Mastering the game of Go with deep neural networks and tree search》
核心部件:
- 监督学习的策略网络(SL policy network)
13layers CNN network
输入:当前state
输出:所有可能action的概率分布
更新策略:
Δσ∝∂logpσ(a|s)∂σ
- 速度快但准确率不如SL的策略网络(fast rollout policy network)
linear softmax of small pattern features with weights π
- 强化学习的策略网络(RL policy)
网络结构与SL相同,所有参数初始化为与SL参数相同,即在SL的基础上利用policy gradient reinforcement learning再进行训练。
Δρ∝∂logpρ(at|st)∂ρzt
其中, rewardzt={01t is non-terminal time stept is terminal time step
- 价值评估网络(value network)
评估在状态s下采取策略p
vp(s)=E[zt|st=s,at...T∼p]
理想状态下,我们可以有一个最优的value function v∗(s) ,但实际上,我们利用RL policy network估计 vpρ 来近似 v∗(s) .value network的目标就是建立以 θ 为参数的网络,输出 vθ(s) , vθ(s)≈vpρ≈v∗(s) .
网络目标是最小化估计值 vθ(s) 与对应输出z之间的均方误差
Δθ∝∂vθ(s)∂θ(z−vθ(s))
骨架:
MCTS(Monte Carlo Tree Search)
Selection:
每条边
(s,a)
存储了action value
Q(s,a)
,访问次数
N(s,a)
,先验概率
P(s,a)
.在每次仿真中,从根节点开始,t时刻位于状态
st
时,根据
at=argmaxa(Q(st,a)+u(st,a))
选择action.其中, u(s,a)∝P(s,a)1+N(s,a) 用于鼓励探索。
Expansion&Evaluation:
经过L步之后到达某一叶子节点 sL ,到达叶子节点时,将 sL 通过SL网络输出每个legal action a的概率分布, P(s,a)=pσ(a|s) ,将树进行扩展。同时,将叶子节点通过value network计算 vθ(sL) ,通过fast rollout policy pπ 快速到达terminal step得到reward zL ,利用参数 λ 将二者结合起来
V(sL)=(1−λ)vθ(sL)+λzL
Backup:
结束仿真之后,所有被访问过的边的action values和visit counts将被更新。
N(s,a)=∑i=1n11(s,a,i)
Q(s,a)=1N(s,a)∑i=1n11(s,a,i)V(siL)
siL 是第i次模拟的叶子节点。