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=1K−Mv,π
对于每个 ( 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=1∑KGt
a t = a r g max a ∈ A Q ( S t , a ) a_t=arg\max_{a\in A}Q(S_t,a)
蒙特卡洛树搜索算法详解与实现

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

被折叠的 条评论
为什么被折叠?



