200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 强化学习笔记(7)基于模型的RL / Dyna算法/ MCTS

强化学习笔记(7)基于模型的RL / Dyna算法/ MCTS

时间:2021-10-13 05:48:32

相关推荐

强化学习笔记(7)基于模型的RL / Dyna算法/ MCTS

文章目录

Introductionmodel-FreeModel-Based RLAdvantagesDisadvantagesModel定义目标一些模型表示方法:计划 PlanningSample-Based Planning 基于采样的计划整合Model-Free 和 Model-Based两种经验来源:Dyna基于模拟的搜索前向搜索算法 Foward Search基于模拟的搜索算法MCTS简化版 Monte-Carlo Search完全版MCTS

Introduction

上一个话题是直接从经验中学习策略。

之前的都是Model free。agent不需要理解外部环境。

这次直接从经验里面学习模型(Model)并且使用planning去构造一个价值函数或策略。尝试理解外部环境。

把learning和planning 整合成一个体系。

Model大概可以分成两个部分:

模型可以告诉我们所有的状态转换(如何转换)以及发生的动作奖励是多少

model-Free

无模型从经验中直接学习价值函数或者策略。

agent不知道外部世界

Model-Based RL

从经验中学习一个模型根据这个模型去构造价值函数或者策略函数

**agent自己模拟一个外部世界。**赋予模型思考和预测的能力。

agent通过experience来构建自己的模型。模型构建成功之后,就可以通过模型产生value/policy

Advantages

Model-Free有时候直接从status里面学习value/policy太困难了。因为status太多了。Model-Based通过supervised learning 方法有效的学习模型。能够建立不确定的模型

Disadvantages

学习模型、再通过模型构建value function, 会产生两部误差

Model定义

定义:模型MMM 是一个MDP<S,A,P,R>MDP<S,A,P,R>MDP<S,A,P,R>以η\etaη为参数的表示。

假设状态空间S和动作空间A都是已知的。

那么模型的表示为M=<Pη,Rη>M=<P_\eta, R_\eta>M=<Pη​,Rη​>,其中分别代表状态转换和奖励转换Pη≈RP_\eta \approx RPη​≈R , Rη≈RR_\eta \approx RRη​≈R

St+1∼Pη(St+1∣St,At)Rt+1=Rη(Rt+1∣St,At)S_{t+1} \sim P_\eta(S_{t+1} | S_t, A_t) \\ R_{t+1} = R_\eta(R_{t+1}|S_t, A_t) St+1​∼Pη​(St+1​∣St​,At​)Rt+1​=Rη​(Rt+1​∣St​,At​)

通常假设状态转换和奖励之间是条件独立的

P[St+1,Rt+1∣St,At]=P[St+1∣St,At]P[Rt+1∣St,At]\mathbb{P} [S_{t+1}, R_{t+1} | S_t, A_t]= \mathbb{P}[S_{t+1} | S_t, A_t]\mathbb{P}[R_{t+1}|S_t,A_t] P[St+1​,Rt+1​∣St​,At​]=P[St+1​∣St​,At​]P[Rt+1​∣St​,At​]

目标

从经验序列{S1,A1,R2,S2,A2,R3...,STS_1,A_1,R2, S_2,A_2,R_3...,S_TS1​,A1​,R2,S2​,A2​,R3​...,ST​}学习一个KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲{M}_\eta。

这是一个监督学习的问题:

S1,A1→R2,S2...S_1, A_1 \rightarrow R_2,S_2 \\ ... S1​,A1​→R2​,S2​...

一共分成两个部分:

s,a -> r , 可以认为是回归问题。s,a -> s’ ,可认为是概率密度估计的问题。

选择参数η\etaη使得最小化损失函数。

一些模型表示方法:

Table Lookup Model 查表模型。存储状态行为对的转换概率和奖励Linear Expectation ModelLinear Gaussian ModelDeep Belief Network Model…

计划 Planning

给出一个模型KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲{M}_\eta = <P_\…

使用一些算法来解决MDP<S,A,Pη,Rη><S,A,P_\eta,R_\eta><S,A,Pη​,Rη​>

这些算法是之前所学的:

Value iteration 价值迭代Policy iteration 策略迭代Tree Search 树搜索…

Sample-Based Planning 基于采样的计划

只用模型产生样本。

然后使用无模型学习方法来学习这些样本。 例如Q-learning / MC control/ Sarsa

这两步可以理解为agent自己的想像。

例子:

过程:

从真实的经验出发建模得到中间的模型从模型中采样数据(这一步其实是agent通过模型自己想像的)从采样的数据中学习价值函数。

建造模型的好处就是一旦模型创建成功,我们就相当于有无穷的数据可以训练。

如果模型不准确

那么基于模型的RL算法表现受限制。planning过程将会得到一个次最优策略

解决办法:

使用Model-Free RL。利用模型的不确定性进行推算(贝叶斯算法)

整合Model-Free 和 Model-Based

两种经验来源:

Real experience: 来自实际环境交互(True MDP)

Simulated experience: 来自于Model产生的。(approximate MDP)

Dyna

整合:

算法实现:

Dyna-Q有一个局限性,就是当环境改变,Model不能发现。所以要在Model构建的时候加入探索和额外奖励。这个就是Dyna-Q+

基于模拟的搜索

上面所说的Model,是通过一些方法拟合或者用表格表示出来reward和下一个状态的概率密度,也就是整个的MDP。

基于模拟的搜索,是从当前状态开始,通过模型建立一个前向所搜索树,利用model-free方法来学习当前状态这个搜索树的最佳决策。如果使用MC则称为Mote-Carlo Tree Search(MCTS), 如果使用Sarsa算法,则成为TD search。下面详细来解释:

前向搜索算法 Foward Search

前向搜索算法的思想则不同。他是通过向前看可能发生的各种情况,最后综合来选择最好的动作。在向前看的过程中,会建立一个以当前状态为根节点的搜索树

使用这个思想就不需要求解整个MDP过程,只需要求解从当前状态开始的子MDP过程。

基于模拟的搜索算法

在前向搜索过程中使用的经验是来自于 计划采样的(sample-based planning)

通过Model获得从当前状态开始,采样k个模拟序列

使用无模型算法从获得的序列中学习

MC control -> MC searchSarsa -> TD search

MCTS

简化版 Monte-Carlo Search

给定Model KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲M_v 和模拟策略π\piπ

对于每个动作的产生,都经历3个过程:

从当前状态开始,通过Model和模拟策略π\piπ进行模拟,从而产生序列。(Simulation)通过平均return来进行评估(Envaluation) Q(st,a)=1K∑k=1KGt−P→qπ(st,a)Q(s_t,a) = \frac{1}{K} \sum_{k=1}^{K}G_t -^P\rightarrow q_\pi(s_t,a)Q(st​,a)=K1​∑k=1K​Gt​−P→qπ​(st​,a) 通过最大的Q值选择执行动作

简化版只关注当前状态行为对应的收获。 不关注模拟采样得到的中间状态和对应行为价值。

完全版MCTS

采样k个模拟序列

创建一个由已经访问过结点和动作所组成的树

对于树内的每个状态行为价值对,都采用这个式子进行评估

构建完成之后,选择当前状态StS_tSt​所能执行动作中Q值最大的。

对树的每个节点都计算平均收获来估算价值。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。