龙空技术网

蒙特卡洛树搜索与Model-free DRL

布谷AI 163

前言:

如今咱们对“uct算法优化”大概比较着重,同学们都需要剖析一些“uct算法优化”的相关内容。那么小编也在网上汇集了一些有关“uct算法优化””的相关文章,希望大家能喜欢,同学们快快来学习一下吧!

我们这里所说的MCTS(蒙特卡洛树搜索),是指通过蒙特卡洛评估和树搜索,对强化学习环境π(•|s)建模的方法。

何为蒙特卡洛?

Monte Carlo method,也就是先从某个分布采样,再基于采样的结果近似分布统计量。

直觉就是,当采样足够多的时候,采样数据集就能代表真实分布。

为什么要基于采样数据呢?

采样数据是有限的,使计算变得可行,也使梯度学习策略SGD变得可行。

百度百科

何为蒙特卡洛评估?

Monte Carlo estimation,一种求解强化学习的方法。

蒙特卡洛方法,Q(s, a)取均值;贪心策略,π(s)取最大。

Sutton RL an introduction

Mode-based vs Model-Free

由于MCTS一般应用于Model-based,有必要先了解下Model-based和Model-free。

如果把整个强化学习任务看作一个整体的话,不管采用什么算法架构,人类开发(环境建模、Agent设计)和机器学习的总工作量是不变的,最终都是完成决策这个任务。

不同的架构,就是这三方面分配的任务不同。

所谓的Model-based,就是Agent事先能看到环境本身的模型即MDP相关的分布:状态转移概率P(s'|s,a)和奖赏函数R(r|s, a),或环境直接给出,或通过统计学习得到。

当环境有很明确的先验知识时,可以以环境Model的形式输入,减少机器学习的工作量,提高整体效率。

而在Model-free场景下,Agent执行某个Action后只能得到环境的即时反馈(s_new,reward),看不到环境的分布。

一个Model-based环境,如果通过再加一个采样器,对于Agent来说只能看到即时采样结果,其实已经变成了Model-free的形式,就可以采用Model-free相关的算法。

个人理解,通常所说的Model-free,其实P(s'|s,a)、R(r|s, a)是确定的,这种情况下的好处是设计环境很方便,只需要实现Action之后的场景状态更新即可。

而基于外加采样器的Model-free场景,环境本身还是需要设计或学习得到的,这个也正是人类专家知识输入的方式。

当然P(s'|s,a)、R(r|s, a)是确定的,也可以看作采样的一种。

所以可以从另一个角度再区分一下Mode-base和Model-free,如果学习是直接基于采样样本的,是Model-free;如果学习是基于环境相关概率分布的,是Model-based。

需要注意,基于采样和基于分布,其实并没有本质区别,类比于点估计和分布估计,二者都有可能找到最优解。

但基于采样样本的,通过Batch Learning,更适合梯度SGD学习。

如果P(s'|s,a)、R(r|s, a)是确定的,对Batch Size并没有要求,一条也能学习,因为一条数据已经代表了分布;而如果P(s'|s,a)、R(r|s, a)是不确定的,理论上Batch Data尽量能反映分布较好。

MCTS过程

MCTS对环境的要求是能够采样即可,采样基于Simulator的场景较多。

MCTS建立一棵树的目的,就是确定根节点root的State对应的最优的Action。

主要还是用于生成分布π(a|s),供于采样,为环境建模。

如果用树本身求解Q*(s, a), 需要接受Q(s, a)是随机版的原始累计折扣奖赏。

给定一个根节点s0,建立一棵树的过程如下:

确定路径(Episode)的总数E、确定树的最大深度D。

一个Episode表示一条路径。初始化根节点root;

每个节点应该包含经过该节点的总Episode数 N(v)及该节点的累计reward Q(v),初始化为0。

int8.io

选择

给定一个状态S,如果其对应的所有Action都已经存在与树中,则采用UCT policy优先选择UCT较大子节点,直至找到还有没有访问的子节点的节点。

UCT:Upper Confidence Bound 计算:

int8.io

拓展

从还没有访问的子节点中随机选择一个,追加到树中。模拟

剩下的节点随机选择Action,直至达到最大深度D或到达终止状态的叶子节点。回溯

从叶子节点开始,通过折扣因子奖赏回溯Episode,更新每个节点的计数及奖赏信息。重复3~6,直至达到Episode总数E上限。

最终当整棵树建好后,采用蒙特卡洛评估即通过均值Q(v)/N(v)的估计Q(v),通过最大化Q(s,a)选取a;也可以通过访问次数来近似π(•|s)分布。

MCTS与Model-free算法结合

当π(a|s)模拟好之后,一个Model-based环境就可以生成采样数据(s, a, r, s'),基于这些采样数据,就可以采用常见的Model-free方法,来优化MCTS里面的Q(s, a)近似。

以AlphaZero为例,神经网络近似策略policy π(.|s)及state-value V(s),UCT更新函数优化如下:

acme paper

损失函数包含π(•|s)与π_mcts(•|s)两个分布的距离及V(s)的均方误差。

标签: #uct算法优化