【强化学习】AlphaGo Zero详解

1 简介

AlphaGo Zero(以下简称Zero)的过程如下图ab所示,在每个状态s,通过MCTS搜索,获得每个可能move的概率p,其中MCTS搜索采用self-play并执行fθ策略。fθ主要采用微软的ResNet,即基于残差的学习。利用MCTS获得每个可能move的概率p之后,更新fθ权重。最后利用这个fθ评估最后能赢这盘棋的概率v

2 MCTS

每个节点s(状态),包含若干个边,这些边代表在状态s所能执行的动作a∈A(s)。每个边edge存储以下信息

{N(s, a),W(s, a),Q(s, a), P(s, a)}

其中N(s, a) 为访问次数,W(s, a)为执行动作a获得的总的Q值,Q(s, a)为执行动作a获得的平均Q值,P(s, a)是通过fθ得到的先验概率。

 

(1)select

对于叶节点sL,从根节点到当前节点,其策略为:

其中

 

cpuct为常量,控制着探索的范围。

(2)Expand and evaluate

针对要被扩展的叶子节点,将父节点的s左右交换或者旋转一下后,初始化出以下值:

{N(sL, a) = 0, W(sL, a) = 0, Q(sL, a) = 0, P(sL, a) = pa};然后开始模拟,计算出该叶子节点的Q值,W(sL, a)=W(sL, a)+vQ(sL, a) =W(sL, a)/N(sL, a)。

(3)剪枝

如果该节点以及其最好的子节点的Q值小于一定阈值,那么就会将其剪枝,不再被探索。

3 Neural network architecture

输入特征:历史特征+自己当前特征+对手当前特征

神经网络采用微软的ResNet结构。利用两层的ResNet残差学习模块。

 

Zero采用1939ResNet

 

 

ResNet的两层残差模块

 

ResNet的两层残差模块中的“weight layer”,在Zero上对应为卷积模块。卷积模块具体为:

(1) A convolution of 256 filters of kernel size 3×3 with stride 1

(2) Batch normalization

(3) A rectifier nonlinearity

 

 

 

 

 

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值