[Reinforcement Learning] Model-Free Control
上篇总结了 Model-Free Predict 问题及方法,本文内容介绍 Model-Free Control 方法,即 "Optimise the value function of an unknown MDP"。
在这里说明下,Model-Free Predict/Control 不仅适用于 Model-Free 的情况,其同样适用于 MDP 已知的问题:
- MDP model is unknown, but experience can be sampled.
- MDP model is known, but is too big to use, except by samples.
在正式介绍 Model-Free Control 方法之前,我们先介绍下 On-policy Learning 及 Off-policy Learning。
On-policy Learning vs. Off-policy Learning
On-policy Learning:
- "Learn on the job"
- Learn about policy from experience sampled from (即采样的策略与学习的策略一致)
Off-policy Learning:
- "Look over someone's shoulder"
- Learn about policy from experience sampled from (即采样的策略与学习的策略不一致)
On-Policy Monte-Carlo Learning
Generalized Policy Iteration
具体的 Control 方法,在《动态规划》一文中我们提到了 Model-based 下的广义策略迭代 GPI 框架,那在 Model-Free 情况下是否同样适用呢?
如下图为 Model-based 下的广义策略迭代 GPI 框架,主要分两部分:策略评估及基于 Greedy 策略的策略提升。
Model-Free 策略评估
在《Model-Free Predict》中我们分别介绍了两种 Model-Free 的策略评估方法:MC 和 TD。我们先讨论使用 MC 情况下的 Model-Free 策略评估。
如上图GPI框架所示:
- 基于 的贪婪策略提升需要 MDP 已知:
- 基于 的贪婪策略提升不需要 MDP 已知,即 Model-Free:
因此 Model-Free 下需要对 策略评估,整个GPI策略迭代也要基于 。
Model-Free 策略提升
确定了策略评估的对象,那接下来要考虑的就是如何基于策略评估的结果 进行策略提升。
由于 Model-Free 的策略评估基于对经验的 samples(即评估的 存在 bias),因此我们在这里不采用纯粹的 greedy 策略,防止因为策略评估的偏差导致整个策略迭代进入局部最优,而是采用具有 explore 功能的 -greedy 算法:
因此,我们确定了 Model-Free 下的 Monto-Carlo Control:
GLIE
先直接贴下David的课件,GLIE 介绍如下:
对于 -greedy 算法而言,如果 随着迭代次数逐步减为0,那么 -greedy 是 GLIE,即:
GLIE Monto-Carlo Control
GLIE Monto-Carlo Control:
- 对于 episode 中的每个状态 和动作 :
- 基于新的动作价值函数提升策略:
定理:GLIE Monto-Carlo Control 收敛到最优的动作价值函数,即:。
On-Policy Temporal-Difference Learning
Sarsa
我们之前总结过 TD 相对 MC 的优势:
- 低方差
- Online
- 非完整序列
那么一个很自然的想法就是在整个控制闭环中用 TD 代替 MC:
- 使用 TD 来计算
- 仍然使用 -greedy 策略提升
- 每一个 step 进行更新
通过上述改变就使得 On-Policy 的蒙特卡洛方法变成了著名的 Sarsa。
- 更新动作价值函数
Sarsa算法的伪代码如下:
Sarsa(λ)
n-step Sarsa returns 可以表示如下:
时:
时:
...
时:
因此,n-step return
n-step Sarsa 更新公式:
具体的 Sarsa(λ) 算法伪代码如下:
其中 为资格迹。
下图为 Sarsa(λ) 用于 Gridworld 例子的示意图:
Off-Policy Learning
Off-Policy Learning 的特点是评估目标策略 来计算 或者 ,但是跟随行为策略 。
Off-Policy Learning 有什么意义?
- Learn from observing humans or other agents
- Re-use experience generated from old policies
- Learn about optimal policy while following exploratory policy
- Learn about multiple policies while following one policy
重要性采样
重要性采样的目的是:Estimate the expectation of a different distribution。
Off-Policy MC 重要性采样
使用策略 产生的 return 来评估 :
朝着正确的 return 方向去更新价值:
需要注意两点:
- Cannot use if is zero when is non-zero
- 重要性采样会显著性地提升方差
Off-Policy TD 重要性采样
TD 是单步的,所以使用策略 产生的 TD targets 来评估 :
- 方差比MC版本的重要性采样低很多
Q-Learning
前面分别介绍了对价值函数 进行 off-policy 学习,现在我们讨论如何对动作价值函数 进行 off-policy 学习:
- 不需要重要性采样
- 使用行为策略选出下一步的动作:
- 但是仍需要考虑另一个后继动作:
- 朝着另一个后继动作的价值更新 :
讨论完对动作价值函数的学习,我们接着看如何通过 Q-Learning 进行 Control:
- 行为策略和目标策略均改进
- 目标策略 以greedy方式改进:
- 行为策略 以 -greedy 方式改进
- Q-Learning target:
Q-Learning 的 backup tree 如下所示:
关于 Q-Learning 的结论:
Q-learning control converges to the optimal action-value function,
Q-Learning 算法具体的伪代码如下:
对比 Sarsa 与 Q-Learning 可以发现两个最重要的区别:
- TD target 公式不同
- Q-Learning 中下一步的动作从行为策略中选出,而不是目标策略
DP vs. TD
两者的区别见下表:
Reference
[1] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[2] David Silver's Homepage
作者:Poll的笔记
博客出处:http://www.cnblogs.com/maybe2030/
本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
<如果你觉得本文还不错,对你的学习带来了些许帮助,请帮忙点击右下角的推荐>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!