强化学习读书笔记 - 08 - 规划式方法和学习式方法
强化学习读书笔记 - 08 - 规划式方法和学习式方法
学习笔记:
Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016
需要了解强化学习的数学符号,先看看这里:
什么是模型(model)
环境的模型,本体可以通过模型来预测行为的反应。
对于随机的环境,有两种不同的模型:
- distribution model - 分布式模型,返回行为的各种可能和其概率。
- sample model - 样本式模型,根据概率,返回行为的一种可能。
样本式模型的数学表达
规划型方法和学习型方法(Planning and Learning with Tabular Methods)
-
planning methods - 规划型方法。通过模型来获得价值信息(行动状态转换,奖赏等)。
比如:动态规划(dynamic programming)和启发式查询(heuristic search)。
模型planning相当于模型模拟(model simulation)。 -
learning methods - 学习型方法。通过体验(experience)来获得价值信息。
比如:蒙特卡洛方法(Mento Carlo method)和时序差分方法(temporal different method)。
蒙特卡洛树方法是一个规划型方法,需要一个样本式模型。而蒙特卡洛方法是一个学习型方法。
这并不矛盾,只是意味着学习型方法的体验是可以用模型来执行,而获得一个模拟的经验(simulated experience)。
- 规划型方法和学习型方法的相似性
规划型方法和学习型方法都是通过计算策略价值来优化策略。因此,可以融合到一起。
见书中例子:Random-sample on-step tabular Q-planning.
规划型方法
规划就是通过模型来学习 - 优化策略,有两种:
-
state-place planning - 状态空间规划
这也是本书中所讲的。 -
plan-place planning - 规划空间规划
本书不讲。
Dyna - 结合模型学习和直接强化学习
- model learning - 模型学习,通过体验来优化模型的过程。
- directly reinforcement learning - 直接强化学习,通过体验来优化策略的过程。
这里的思想是:通过体验来直接优化策略和优化模型(再优化策略)。见图:
Tabular Dyna-Q
Initialize Q(s,a) and Model(s,a)∀s∈S and a∈A(s)
Do forever(for each episode):
(a) S← current (nonterminal) state
(b) A←ϵ−greedy(S,Q)
(c) Execute action A; observe resultant reward, R, and state, S′
(d) Q(S,A)←Q(S,A)+α[R+γmaxa Q(S′,a)−Q(S,A)]
(e) Model(S,A)←R,S′ (assuming deterministic environment)
(f) Repeat n times:
S← random previously observed state
A← random action previously taken in S
R,S′←Model(S,A)
Q(S,A)←Q(S,A)+α[R+γmaxa Q(S′,a)−Q(S,A)]
理解
上面的算法,如果n=0,就是Q-learning算法。Dyna-Q的算法的优势在于性能上的提高。
我想主要原因是通过建立模型,减少了操作(c),模型学习到了Model(S,A)←R,S′。
优化的交换(Prioritized Sweeping)
下面的算法,提供了一种性能的优化,只评估那些误差大于一定值θ的策略价值。
Initialize Q(s,a), Model(s,a), ∀s,∀a and PQueue to empty
Do forever(for each episode):
(a) S← current (nonterminal) state
(b) A←policy(S,Q)
(c) Execute action A; observe resultant reward, R, and state, S′
(d) Model(S,A)←R,S′
(e) P←|R+γmaxa Q(S′,a)−Q(S,A)|
(f) if P>θ, then insert S,A into PQueue with priority P
(g) Repeat n times, while PQueue is not empty:
S,A←first(PQueue) (will remove the first also)
R,S′←Model(S,A)
Q(S,A)←Q(S,A)+α[R+γmaxa Q(S′,a)−Q(S,A)]
Repeat, for all S,A predicted to lead to S:
¯P← predicted reward for ¯S,¯A,S
P←|¯R+γmaxa Q(S′,a)−Q(¯S,¯A)|
if P>θ, then insert ¯S,¯A into PQueue with priority P
蒙特卡洛树搜索
我有另外一个博文介绍了这个算法。
蒙特卡洛树搜索算法(UCT): 一个程序猿进化的故事
参照
- Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016
- 强化学习读书笔记 - 00 - 术语和数学符号
- 强化学习读书笔记 - 01 - 强化学习的问题
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
- 强化学习读书笔记 - 03 - 有限马尔科夫决策过程
- 强化学习读书笔记 - 04 - 动态规划
- 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
- 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)
请“推荐”本文!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?