AlphaGo原理浅析

来源:互联网 发布:想在淘宝开店没货源 编辑:程序博客网 时间:2024/06/06 00:22

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...Tp]

  理想状态下,我们可以有一个最优的value function v(s),但实际上,我们利用RL policy network估计vpρ来近似v(s).value network的目标就是建立以θ为参数的网络,输出vθ(s),vθ(s)vpρv(s).
  网络目标是最小化估计值vθ(s)与对应输出z之间的均方误差
  
Δθvθ(s)θ(zvθ(s))

  

骨架:

  MCTS(Monte Carlo Tree Search)
  Monte Carlo Tree Search in AlphaGo
  Selection:
  每条边(s,a)存储了action valueQ(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次模拟的叶子节点。

这里写图片描述
  


原创粉丝点击