AlphaGo Zero原理浅析

来源:互联网 发布:linux shadow密码破解 编辑:程序博客网 时间:2024/06/05 10:16

AlphaGo Zero

论文:《Mastering the game of Go without human knowledge》

AlphaGo与AlphaGo Zero主要有以下几点不同:

  • AlphaGo中用了3个policy network,AlphaGo Zero只用了一个reinforcement learning network
  • AlphaGo Zero将policy network,value network合并
  • AlphaGo Zero中没有Monte Carlo rollout
  • AlphaGo Zero的RL network用了残差卷积网络

Reinforcement Learning Network

  在AlphaGo Zero中只用了一个network,同时输出了action probability和value.输入是当前状态,即将当前棋盘图片输入。network用的是残差卷积网络,加了batch normalization和非线性激活函数。

fθ=(p,v)
loss=(zv)2πTlogp+c||θ||2

骨架

  AlphaGo Zero的骨架同样是MCTS.

  树上每一个节点表示状态s,边表示(s,a),每条边存储{N(s,a),W(s,a),Q(s,a),P(s,a)}, N(s,a)表示被访问次数,W(s,a)表示总的action value,Q(s,a)表示平均action value,P(s,a)表示选择(s,a)的概率。

Select

  这一步与AlphaGo一样,从根节点s0开始,根据

at=argmaxa(Q(st,a)+u(st,a))
选择动作,直到叶子节点sL,其中
U(s,a)=cpuctP(s,a)ΣbN(s,b)1+N(s,a)
cpuct是决定探索程度的常数,这一搜索策略在初始化时倾向于选择高先验概率,低访问次数的action,但渐渐地倾向于高action value的action.

Expand and evaluate

  叶子节点sL经过RL network计算action value v,此时搜索过程被封锁。叶子节点sL会被expand,并初始化为 {N(sL,a)=0,W(sL,a)=0,Q(sL,a)=0,P(sL,a)=pa}.  

Backup

  对叶子节点进行expand之后,接下来要对之前经历过的节点信息进行更新。

N(st,at)=N(st,at)+1
W(st,at)=W(st,at)+v
Q(st,at)=W(st,at)N(st,at)
  

Training  

  从状态s1开始,Monte Carlo树对每个状态t计算

π(a|s0)=N(s0,a)1/τ/ΣbN(s0,b)1/τ
其中,τ是控制探索程度的参数。同时,RL会计算出
(p,v)=fθ(st)
直到T时刻,得出最终胜负,即得到reward z,接着就会反向传播更新RL network.
  
  


原创粉丝点击