读完AlphaGo论文的一点理解

读完AlphaGo论文的一点理解

对于围棋这个博弈游戏,如果使用普通的搜索决策算法,如:MaxMin算法,那么想要构建出一棵博弈树是很困难的,因为围棋的搜索空间是十分巨大的,所以搜索要花费大量的时间。而AlphaGo则是是将目前火热的神经网络与博弈游戏中常用的蒙特卡洛树搜索(MCTS)算法相结合,把蒙特卡洛树搜索算法作为框架,然后将神经网络放入其中,利用神经网络来协助MCTS算法进行决策和估值,从而有效的降低搜索空间的复杂度。

在AlphaGo中,主要是使用了深度学习中的卷积神经网络(CNN),因为围棋的棋盘可以看作是一个19×19的像素矩阵,传入CNN中,这样可以提高处理的效率,更好的捕获当前状态的特征。它首先是把人类专家的博弈数据作为样本,传入CNN中,训练两个监督学习策略网络p_σ和p_π,p_σ用于预测人类的走子行为,p_π则用于MCTS估值时进行快速走子。然后基于p_σ再训练一个强化学习策略网络p_p,让它以赢棋为目的不断的进行自我对弈,以提高其棋力,并且p_p在自我对弈的过程中,可以产生大量的对弈数据以供最后的估值网络训练,从而提高估值网络的泛化能力。最后训练一个估值网络v_θ,用于对当前棋面进行快速估值。

有了以上通过训练得到的神经网络后,利用MCTS算法将这些神经网络整合到一起,就成了AlphaGo的博弈模型。MCTS算法分为四个步骤,分别是:选择、扩展、估值和回溯,并且MCTS中的每条边(s,a)都包含三个状态:决策收益Q(s,a),访问次数N(s,a),先验概率P(s,a)。在第一步选择的时候,首先从根节点开始,然后自上而下搜索蒙特卡洛树的下一层的节点,但是AlphaGo并不是搜索全部的节点,在搜索之前,它会先利用UCT函数,算出一个UCT值,然后根据UCT值的大小向下搜索,选择一个UCT最优且未访问的叶子节点;第二步,对第一步中找到的叶子节点进行扩展,同时采用先前训练的监督学习策略网络p_σ算出该叶子节点上每个行为的先验概率,以供第一步的UCT函数计算UCT值,;然后进行第三步估值,这一步中主要利用了之前训练的快速走子策略网络p_π和估值网络v_θ,这两个神经网络相结合快速对当前访问的叶子节点进行估值;第四步根据第三步得到的估值然后进行回溯,更新所经过的边上的一些状态参数。最后算法会选择访问次数最大的策略作为当前的走子策略。通过选择步骤,MCTS算法降低了搜索的宽度,通过估值步骤,MCTS算法又进一步降低了搜索的深度,所以说,MSCT算法在结合了神经网络后是一类能极为高效地解决复杂博弈问题的搜索策略。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值