强化学习 / 动态规划:策略改进(Policy Improvement)使策略更优的数学证明
前言: Sutton第二版《强化学习》中,第4章第2节“策略改进”介绍了基于贪心算法的策略改进。为什么以(只考虑一个后续状态来选择当前动作的)贪心算法进行更新的策略一定会比原策略更优呢?书上也给出了论证,但不明显。这里我将其整理,把顺序和逻辑重新捋一下。
定义:策略A比策略B好
如果π\piπ和π′\pi 'π′是两个确定的策略,对任意s∈Ss \in Ss∈S,有:
qπ(s,π′(s))≥vπ(s)q_\pi (s, \pi ' (s)) \ge v_\pi (s)qπ(s,π′(s))≥vπ(s)
我们称π′\pi 'π′相比于π\piπ更好。qqq为期望,vvv为价值。
策略A比B好,意味着A更高的价值
将式子qπ(s,π′(s))≥vπ(s)q_\pi (s, \pi ' (s)) \ge v_\pi (s)qπ(s,π′(s))≥vπ(s)展开:
vπ(s)≤qπ(s,π′(s))...≤Eπ′[Rt+1+γRt+2+γ2Rt+3+...∣St=s]=vπ′(s)\begin{aligned} v_\pi (s) & \le q_\pi (s, \pi ' (s)) \\ & ... \\ & \le \mathbb{E}_{\pi '} [R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s] \\ & = v_{\pi '} (s) \end{aligned} vπ(s)≤qπ(s,π′(s))...≤Eπ′[Rt+1+γRt+2+γ2Rt+3+...∣St=s]=vπ′(s)
由此式,可以推导出,若对于状态sss,选择期望更高的动作(选择更好的策略),可以使其价值提高。
tips: 上式的推导步骤省略了,其推导的核心就是应用qqq的定义式,迭代展开qqq:
qπ(s,π′(s))=E[Rt+1+γvπ(St+1)∣St=s,At=π′(s)]=Eπ′[Rt+1+γvπ(St+1)∣St=s]≤Eπ′[Rt+1+γqπ(St+1,π′(St+1))∣St=s]...\begin{aligned} q_{\pi} (s, \pi' (s)) & = \mathbb{E} [R_{t+1} + \gamma v_\pi (S_{t+1} )| S_t = s, A_t = \pi' (s)]\\ & = \mathbb{E}_{\pi '} [R_{t+1} + \gamma v_\pi (S_{t+1} )| S_t = s] \\ & \le \mathbb{E}_{\pi '} [R_{t+1} + \gamma q_{\pi} (S_{t+1}, \pi' (S_{t+1}))| S_t = s] \\ & ... \\ \end{aligned} qπ(s,π′(s))=E[Rt+1+γvπ(St+1)∣St=s,At=π′(s)]=Eπ′[Rt+1+γvπ(St+1)∣St=s]≤Eπ′[Rt+1+γqπ(St+1,π′(St+1))∣St=s]...
策略改进:贪心算法构造更好的策略
在每个状态下根据qπ(s,a)q_\pi (s, a)qπ(s,a)选择一个最优的,换言之,考虑一个新的贪心策略π′\pi 'π′,满足:
π′s(s)=arg maxaqπ(s,a)=argmaxaE[Rt+1+γvπ(St+1)∣St=s,At=π′(s)]=argmaxa{∑s′,rp(s′,r∣s,a)[r+γvπ(s′)]}\begin{aligned} \pi's (s) & = \argmax_a q_\pi (s, a) \\ & = argmax_a \mathbb{E} [R_{t+1} + \gamma v_\pi (S_{t+1} )| S_t = s, A_t = \pi' (s)] \\ & = argmax_a \left\{ \sum_{s', r} p(s', r | s, a)[r + \gamma v_\pi (s')] \right\} \end{aligned}π′s(s)=aargmaxqπ(s,a)=argmaxaE[Rt+1+γvπ(St+1)∣St=s,At=π′(s)]=argmaxa⎩⎨⎧s′,r∑p(s′,r∣s,a)[r+γvπ(s′)]⎭⎬⎫
这个贪心策略采取在短期内看上去最优策略,根据vπv_{\pi}vπ单步搜索。
反证法证明:策略改进是“有效的”
我们知道,贪心策略基于qπ(s,π′(s))≥vπ(s)q_\pi (s, \pi ' (s)) \ge v_\pi (s)qπ(s,π′(s))≥vπ(s),可以保证vπ′(s)≥vπ(s)v_{\pi '} (s) \ge v_\pi (s)vπ′(s)≥vπ(s)。
但是,贪心策略有没有可能造成在每步搜索中(每次策略更新中),存在vπ′(s)=vπ(s)v_{\pi '} (s) = v_\pi (s)vπ′(s)=vπ(s)的情况(则此次更新无效)。
实际上,这是不可能的。反证法:
如果新的策略π′\pi'π′比老的策略π\piπ:vπ′(s)=vπ(s)v_{\pi '} (s) = v_\pi (s)vπ′(s)=vπ(s),那么由上文贪心策略递进式,可得,对任意s∈Ss \in Ss∈S:
vπ′(s)=maxaE[Rt+1+γvπ′(St+1)∣St=s,At=a]=maxa∑s′,rp(s′,r∣s,a)[r+γvπ′(s′)]\begin{aligned} v_{\pi '}(s) & = \max_a \mathbb{E} [R_{t+1} + \gamma v_{\pi '} (S_{t+1} )| S_t = s, A_t = a] \\ & = \max_a \sum_{s', r} p(s', r | s, a)[r + \gamma v_{\pi '} (s')] \end{aligned}vπ′(s)=amaxE[Rt+1+γvπ′(St+1)∣St=s,At=a]=amaxs′,r∑p(s′,r∣s,a)[r+γvπ′(s′)]
这个式子就是贝尔曼最优方程组了,所求解的vπ′v_{\pi '}vπ′一定位最优策略下的v∗v_{*}v∗。
因此,如果如果新的策略π′\pi'π′比老的策略π\piπ:vπ′(s)=vπ(s)v_{\pi '} (s) = v_\pi (s)vπ′(s)=vπ(s),那么一定是已经迭代到了最优的策略,否则,策略改进一定会给出一个更优的结果。
今天我们讲的内容,为以后的工程问题奠定了理论基础,有了理论依据,即:我依据贝尔曼方程更新策略是有效的。
强化学习 / 动态规划:策略改进(Policy Improvement)使策略更优的数学证明相关推荐
- 强化学习-动态规划_强化学习-第5部分
强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...
- 强化学习-动态规划_强化学习-第4部分
强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...
- 【深入浅出强化学习-编程实战】 7 基于策略梯度的强化学习-Cartpole(小车倒立摆系统)
[深入浅出强化学习-编程实战] 7 基于策略梯度的强化学习-Cartpole 小车倒立摆MDP模型 代码 代码解析 小车倒立摆MDP模型 状态输入:s=[x,x˙,θ,θ˙]s = [x,\dot{x ...
- ChatGPT 使用 强化学习:Proximal Policy Optimization算法(详细图解)
ChatGPT 使用 强化学习:Proximal Policy Optimization算法 强化学习中的PPO(Proximal Policy Optimization)算法是一种高效的策略优化方法 ...
- 强化学习中on policy和off policy的区别-深度理解
参考图书: Deep Reinforcement Learning Fundamentals, Research and Applications https://link.springer.com/ ...
- 【githubshare】深度学习蘑菇书,覆盖了强化学习、马尔可夫决策过程、策略梯度、模仿学习
GitHub 上的深度学习技术书籍:<蘑菇书 EasyRL>,覆盖了强化学习.马尔可夫决策过程.策略梯度.模仿学习等多个知识点. GitHub:github.com/datawhalech ...
- ML之RL:基于MovieLens电影评分数据集利用强化学习算法(多臂老虎机+EpsilonGreedy策略)实现对用户进行Top电影推荐案例
ML之RL:基于MovieLens电影评分数据集利用强化学习算法(多臂老虎机+EpsilonGreedy策略)实现对用户进行Top电影推荐案例 目录 基于MovieLens电影评分数据集利用强化学习算 ...
- 强化学习 动态规划 策略评估 策略改进 策略迭代 有模型 无模型
目录 一.动态规划 1.1核心思想 1.2异步动态规划 二.策略评估与改进 2.1有模型学习与无模型学习 2.2策略评估 2.2.1输入 2.2.2输出 2.2.3迭代过程 2.3策略改进 2.3.1 ...
- 强化学习(Reinforcement Learning)之策略梯度(Policy Gradient)的一点点理解以及代码的对应解释
一.策略梯度算法推导以及解释 1.1 背景 设πθ(s)\pi_{\theta }(s)πθ(s)是一个有网络参数θ\thetaθ的actor,然后我们让这个actor和环境(environment ...
最新文章
- 手机碎屏怎么导出里面的数据_Flyme数据抢救功能,手机碎屏后的最后倔强
- 区块链BaaS云服务(14)华大BGI区块链“Baas接口“
- 【有三说图像】图像简史与基础
- 成为Web开发大师你必须知道的7件事情
- ai automatic video editing software
- 【图像修复】基于matlab GUI Lucy_Richardson迭代法图像修复【含Matlab源码 846期】
- 如何做职业规划并进行求职准备(持续更新)
- ADS 修改版图默认单位
- 微软面试58道逻辑面试题
- [整理]邮件里常用英文缩写
- 解读—revealing deep semantic commercial patterns:Insights from urban landscape depiction
- 各大互联网企业Java面试题汇总,看我如何成功拿到百度的offer
- 多用户商城系统源码_业务逻辑功能思维导图_OctShop
- 浅谈DOS扩展器和DPMI
- MongoDB:常见的面试题和答案
- 狭义相对论从入门到入土(建议初一及以上)
- 在家带娃有没有什么副业可以做?在家带娃的副业有哪些?
- C++设计模式之二(设计模式六大原则)
- 永劫无间为啥显示连接服务器失败,永劫无间服务器故障原因-永劫无间服务器连接失败解决方法_游戏369...
- elastic search 日志不打印问题(root用户惹的祸)
热门文章
- 关于iOS 6 中的一些“xxxxxx” is deprecated 问题的解决办法
- 解决gradle:download特别慢的问题
- 【问题解决方案】anaconda-python在cmd-pip安装requests后依然提示No module named requests
- Uncaught TypeError: Illegal invocation问题解决方法
- .NetCore实践篇:成功解决分布式监控ZipKin聚合依赖问题(三)
- babel-loader jsx SyntaxError:意外令牌[重复]
- 如何取消选中单选按钮?
- 清除或重新创建Ruby on Rails数据库
- 方法和函数有什么区别?
- Python基础-pyqt5