[Reinforcement Learning] 动态规划(Planning)
动态规划
动态规划(Dynamic Programming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。
动态规划常常适用于具有如下性质的问题:
- 具有最优子结构(Optimal substructure)
- Principle of optimality applies
- Optimal solution can be decomposed into subproblems
- 重叠子问题(Overlapping subproblems)
- Subproblems recur many times
- Solutions can be cached and reused
动态规划方法所耗时间往往远少于朴素解法。
马尔可夫决策过程MDP满足上述两个性质:
- 贝尔曼方程提供了递归分解的结构;
- 价值函数可以保存和重复使用递归时的结果。
使用动态规划解决MDP/MRP
动态规划需要满足MDP过程是已知的(model-based)。
- For Predict:
- Input:MDP 和策略 或者是 MRP
- Output:价值函数
- For Control:
- Input:MDP
- Output:最优价值函数 或者最优策略
策略评估
策略评估(Policy Evaluation)指的是计算给定策略的价值,解决的问题是 "How to evaluate a policy"。
策略评估的思路:迭代使用贝尔曼期望方程(关于 MDP 的贝尔曼期望方程形式见《马尔可夫决策过程》)。
策略评估过程如下图所示:
使用向量形式表示:
策略迭代
策略迭代(Policy Iteration,简称PI)解决的问题是 "How to improve a policy"。
给定一个策略 :
- 评估策略 :
- 提升策略:通过采用贪婪方法来提升策略:
可以证明,策略迭代不断进行总是能收敛到最优策略,即 。
策略迭代可以使用下图来形式化的描述:
广义策略迭代
通过上述提到的策略评估我们不难发现,策略评估是一个不断迭代的过程:
那么问题来了,Does policy evaluation need to converge to ?
我们是不是可以引入一个停止规则或者规定在迭代 次后停止策略评估?
再进一步想,我们为什么不在每次策略评估的迭代过程中进行策略提升(等同于策略评估迭代1次后停止)?
注:这和后续要介绍的值迭代等价。
因此我们可以把上述策略迭代的过程一般化,即广义策略迭代(Generalised Policy Iteration,简称GPI)框架:
值迭代
介绍值迭代之前,我们先介绍下最优化原理。
最优化原理
最优化原理(Principle of Optimality)定义:
一个过程的最优决策具有这样的性质:即无论其初始状态和初始决策如何,其今后诸策略对以第一个决策所形成的状态作为初始状态的过程而言,必须构成最优策略。
最优化原理如果用数学化一点的语言来描述的话就是:
以状态 为起始点,策略 可以得到最优值 当且仅当:
- 任意状态 对于状态 均可达;
- 以状态 为起始点,策略 可以得到最优值 。
根据最优化原理可知,如果我们得到了子问题的解 ,那么以状态 为起始点的最优解 可以通过一步回退(one-step lookahead)就能获取:
也就是说,我们可以从最后开始向前回退从而得到最优解,值迭代就是基于上述思想进行迭代更新的。
MDP值迭代
值迭代(Value Iteration,简称VI)解决的问题也是 "Find optimal policy "。
但是不同于策略迭代使用贝尔曼期望方程的是,值迭代使用贝尔曼最优方程进行迭代提升。
值迭代与策略迭代不同的地方在于:
- Use Bellman optimal function, rather than Bellman expectation function
- Unlike policy iteration, there is no explicit policy
- Intermediate value functions may not correspond to any policy
如下图所示:
对应的向量表示为:
下图为三种方法的总结:
动态规划扩展
异步动态规划(Asynchronous Dynamic Programming)
- In-place dynamic programming
- Prioritised sweeping
- Real-time dynamic programming
Full-Width Backups vs. Sample Backups
Full-Width Backups
- DP uses full-width backups(DP is model-based)
- Every successor state and action is considered
- Using knowledge of the MDP transitions and reward function
- DP is effective for medium-sized problems (millions of states)
- For large problems, DP suffers Bellman’s curse of dimensionality(维度灾难)
维度灾难:Number of states grows exponentially with number of state variables
- Even one backup can be too expensive
Sample Backups
后续将要讨论的时序差分方法
- Using sample rewards and sample transitions
- Instead of reward function R and transition dynamics P
- Advantages:
- Model-free: no advance knowledge of MDP required
- Breaks the curse of dimensionality through sampling
- Cost of backup is constant, independent of
Reference
[1] 智库百科-最优化原理
[2] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[3] 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帮你做增删改查!!