提交 459b91c6 编写于 作者: X xiaowei_xing

test

上级 230f83a6
......@@ -32,4 +32,26 @@ $$
不管给出的模型是学习到的近似模型,还是像围棋这样的精确模型,这些方法都试图基于向前搜索或模拟来寻找最优动作。搜索树以当前的状态为根,使用模型生成其他节点。因为不需要求解整个 MDP 而只需要从当前状态开始求解子 MDP,所以这种方法可以节省大量的资源。一般来说,当我们收集了仿真经历 $\{S_T^K,A_t^k,R_t^k,...,S_T^K\}_{k=1}^{K}$后,我们可以将无模型方法应用于控制,如蒙特卡洛给出了蒙特卡洛搜索算法或 SARSA 给出了 TD 搜索算法。
更具体地说,在一个简单的 MC 搜索算法中,给出了一个模型 M 和一个模拟策略 $\pi$,对于每个动作 $a\in A$,我们模拟 $K$ 个 $\{S_T^K,a,R_t^k,...,S_T^K\}_{k=1}^{K}$ 形式的片段(在第一动作后遵循策略 $\pi$)。$Q(s_t,a)$ 值被估计为上述轨迹的平均回报,随后我们选择最大化这个估计的 $Q(s_t,a)$ 值的动作。
\ No newline at end of file
更具体地说,在一个简单的 MC 搜索算法中,给出了一个模型 M 和一个模拟策略 $\pi$,对于每个动作 $a\in A$,我们模拟 $K$ 个 $\{S_T^K,a,R_t^k,...,S_T^K\}_{k=1}^{K}$ 形式的片段(在第一动作后遵循策略 $\pi$)。$Q(s_t,a)$ 值被估计为上述轨迹的平均回报,随后我们选择最大化这个估计的 $Q(s_t,a)$ 值的动作。
### 4.1 蒙特卡洛树搜索(Monte Carlo Tree Search)
这类算法基于两个原则:(1)状态的真实价值可以通过随机模拟的平均回报值来估计;(2)这些值可以用于迭代地调整策略,从而使我们能够关注搜索空间的高价值区域。
我们逐步构造一个以当前节点为根的部分搜索树。树由对应于状态 $s$ 的节点组成,此外,每个节点还存储统计信息,如总访问次数 $N(s)$、每个状态-动作对的访问次数 $N(s,a)$ 以及蒙特卡洛 $Q(s,a)$ 值估计等。一种典型的方法是一直构造这种树,直到某些预先定义的计算耗尽,价值估计会变得越来越准确。每个迭代大致可以分为四个阶段:
1. 选择:从根节点开始,我们在树中循环地选择子节点,直到达到非终结叶节点;
2. 扩展:将被选中的叶节点添加到搜索树中;
3. 仿真:从这一节点开始仿真来生成输出的估计值;
4. 反向传播:通过反向沿着根到选中叶节点的路径,更新遇到的节点的统计信息,从而将仿真中获得的值在树中反向传播。
MCTS 的变体通常包含对涉及的两个主要策略的修改:
$\bullet$ 树策略:根据存储的统计信息为树的节点选择动作,变体包括贪婪策略、UCB
$\bullet$ 仿真策略:用于树中叶节点的仿真,变体包括随机模拟、AlphaGo 的默认策略网络
**算法一**
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册