文章目录
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定义
定义: 模型 是一个以为参数的表示。
假设状态空间S和动作空间A都是已知的。
那么模型的表示为,其中分别代表状态转换和奖励转换 ,
通常假设状态转换和奖励之间是条件独立的
目标
从经验序列{}学习一个KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲{M}_\eta。
这是一个监督学习的问题:
一共分成两个部分:
- s,a -> r , 可以认为是回归问题。
- s,a -> s’ ,可认为是概率密度估计的问题。
选择参数使得最小化损失函数。
一些模型表示方法:
- Table Lookup Model 查表模型。存储状态行为对的转换概率和奖励
- Linear Expectation Model
- Linear Gaussian Model
- Deep Belief Network Model
- …
计划 Planning
给出一个模型KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲{M}_\eta = <P_\…
使用一些算法来解决MDP
这些算法是之前所学的:
- 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 search
- Sarsa -> TD search
MCTS
简化版 Monte-Carlo Search
给定Model KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲M_v 和模拟策略
对于每个动作的产生,都经历3个过程:
- 从当前状态开始,通过Model和模拟策略进行模拟,从而产生序列。(Simulation)
- 通过平均return来进行评估(Envaluation)
- 通过最大的Q值选择执行动作
简化版只关注当前状态和行为对应的收获。 不关注模拟采样得到的中间状态和对应行为价值。
完全版MCTS
-
采样k个模拟序列
-
创建一个由已经访问过结点和动作所组成的树
-
对于树内的每个状态行为价值对,都采用这个式子进行评估
- 构建完成之后,选择当前状态所能执行动作中Q值最大的。
对树的每个节点都计算平均收获来估算价值。