Introduction

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

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

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

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

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

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

model-Free

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

agent不知道外部世界

Model-Based RL

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

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

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

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

Advantages

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

Disadvantages

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

Model定义

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

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

那么模型的表示为M=<Pη,Rη>M=<P_\eta, R_\eta>,其中分别代表状态转换和奖励转换PηRP_\eta \approx RRηRR_\eta \approx R
St+1Pη(St+1St,At)Rt+1=Rη(Rt+1St,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)
通常假设状态转换和奖励之间是条件独立的
P[St+1,Rt+1St,At]=P[St+1St,At]P[Rt+1St,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]

目标

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

这是一个监督学习的问题:
S1,A1R2,S2... S_1, A_1 \rightarrow R_2,S_2 \\ ...
一共分成两个部分:

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

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

一些模型表示方法:

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

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

计划 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>

这些算法是之前所学的:

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

Sample-Based Planning 基于采样的计划

  • 只用模型产生样本。

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

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

例子:

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

过程:

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

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

如果模型不准确

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

解决办法:

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

整合Model-Free 和 Model-Based

两种经验来源:

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

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

Dyna

整合:

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

算法实现:

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

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

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

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

基于模拟的搜索

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

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

前向搜索算法 Foward Search

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

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

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

基于模拟的搜索算法

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

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

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

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

  • MC control -> MC search
  • Sarsa -> TD search

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

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)=1Kk=1KGtPqπ(st,a)Q(s_t,a) = \frac{1}{K} \sum_{k=1}^{K}G_t -^P\rightarrow q_\pi(s_t,a)
  • 通过最大的Q值选择执行动作
    强化学习笔记(7)基于模型的RL / Dyna算法/ MCTS

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

完全版MCTS

  • 采样k个模拟序列

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

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

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

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

强化学习笔记(7)基于模型的RL / Dyna算法/ MCTS
对树的每个节点都计算平均收获来估算价值。

相关文章:

  • 2021-05-18
  • 2021-12-13
  • 2022-01-07
  • 2021-11-29
  • 2021-12-23
  • 2021-11-26
  • 2021-09-29
  • 2021-12-17
猜你喜欢
  • 2021-12-07
  • 2021-05-25
  • 2021-04-08
  • 2022-12-23
  • 2021-12-18
  • 2021-04-18
  • 2022-12-23
相关资源
相似解决方案