【强化学习】MCTS

蒙特卡洛树搜索算法详解与实现
本文深入探讨了基于仿真的搜索方法,包括MCSearch和MCTS(蒙特卡洛树搜索)。MCSearch是一种简单的模拟方法,通过多次采样计算动作价值。MCTS则在MCSearch基础上进行优化,减少了计算量。MCTS的核心是UCT策略,它平衡了探索和开发,避免过度专注于已知好的动作。文中还给出了MCTS在棋类游戏中的应用及其搜索步骤,并提供了一个简单的Python实现示例。

Simulation-Based Search

基于仿真的搜索包含两点:一个是simulation,其次是search。simulation是基于强化学习model进行采样,得到样本数据。但这不是基于和环境交互获得的真实数据。search则是为了利用样本结果来帮我们计算应该采用什么动作,以实现长期利益最大化
要理解什么是Simulation-Based Search,首先要明白什么是forward search,forward search从当前考虑的一个节点(状态) S t S_t St开始,然后对其所有可能的action进行扩展,建立一棵以 S t S_t St为根节点的搜索树,这棵树是一个MDP(马尔科夫决策过程),求解这个MDP,然后得到 S t S_t St状态最应该采用的动作 A t A_t At。如下图所示
在这里插入图片描述

MC Search

Simulation-based Search的一种简单方法是:简单MC Search。它基于一个模型 M v M_v Mv和策略 π \pi π,针对当前状态 S t S_t St,对每一个可能采样的动作KaTeX parse error: Undefined control sequence: \inA at position 2: a\̲i̲n̲A̲,都进行K轮采样,这样每个动作 a a a都会得到K组完整的episode。即:
{ S t , a , R t + 1 k , S t + 1 k , A t + 1 k , . . . S T k } k = 1 K − M v , π \{S_t,a,R_{t+1}^k,S_{t+1}^k,A_{t+1}^k,...S_T^k\}_{k=1}^K -M_v,\pi { St,a,Rt+1k,St+1k,At+1k,...STk}k=1KMv,π
对于每个 ( S t , a ) (S_t,a) (St,a),使用MC算法算法先算出每一个episode的 G t G_t Gt,然后得到每个 ( S t , a ) (S_t,a) (St,a),算出动作价值函数和选择最优动作
Q ( S t , a ) = 1 K ∑ k = 1 K G t Q(S_t,a)=\frac{1}{K}\sum_{k=1}^{K}G_t Q(St,a)=K1k=1KGt
a t = a r g max ⁡ a ∈ A Q ( S t , a ) a_t=arg\max_{a\in A}Q(S_t,a)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值