前言: 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 max⁡aqπ(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)​=aargmax​qπ​(s,a)=argmaxa​E[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)=max⁡aE[Rt+1+γvπ′(St+1)∣St=s,At=a]=max⁡a∑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)​=amax​E[Rt+1​+γvπ′​(St+1​)∣St​=s,At​=a]=amax​s′,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)使策略更优的数学证明相关推荐

  1. 强化学习-动态规划_强化学习-第5部分

    强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...

  2. 强化学习-动态规划_强化学习-第4部分

    强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...

  3. 【深入浅出强化学习-编程实战】 7 基于策略梯度的强化学习-Cartpole(小车倒立摆系统)

    [深入浅出强化学习-编程实战] 7 基于策略梯度的强化学习-Cartpole 小车倒立摆MDP模型 代码 代码解析 小车倒立摆MDP模型 状态输入:s=[x,x˙,θ,θ˙]s = [x,\dot{x ...

  4. ChatGPT 使用 强化学习:Proximal Policy Optimization算法(详细图解)

    ChatGPT 使用 强化学习:Proximal Policy Optimization算法 强化学习中的PPO(Proximal Policy Optimization)算法是一种高效的策略优化方法 ...

  5. 强化学习中on policy和off policy的区别-深度理解

    参考图书: Deep Reinforcement Learning Fundamentals, Research and Applications https://link.springer.com/ ...

  6. 【githubshare】深度学习蘑菇书,覆盖了强化学习、马尔可夫决策过程、策略梯度、模仿学习

    GitHub 上的深度学习技术书籍:<蘑菇书 EasyRL>,覆盖了强化学习.马尔可夫决策过程.策略梯度.模仿学习等多个知识点. GitHub:github.com/datawhalech ...

  7. ML之RL:基于MovieLens电影评分数据集利用强化学习算法(多臂老虎机+EpsilonGreedy策略)实现对用户进行Top电影推荐案例

    ML之RL:基于MovieLens电影评分数据集利用强化学习算法(多臂老虎机+EpsilonGreedy策略)实现对用户进行Top电影推荐案例 目录 基于MovieLens电影评分数据集利用强化学习算 ...

  8. 强化学习 动态规划 策略评估 策略改进 策略迭代 有模型 无模型

    目录 一.动态规划 1.1核心思想 1.2异步动态规划 二.策略评估与改进 2.1有模型学习与无模型学习 2.2策略评估 2.2.1输入 2.2.2输出 2.2.3迭代过程 2.3策略改进 2.3.1 ...

  9. 强化学习(Reinforcement Learning)之策略梯度(Policy Gradient)的一点点理解以及代码的对应解释

    一.策略梯度算法推导以及解释 1.1 背景 设πθ(s)\pi_{\theta }(s)πθ​(s)是一个有网络参数θ\thetaθ的actor,然后我们让这个actor和环境(environment ...

最新文章

  1. 手机碎屏怎么导出里面的数据_Flyme数据抢救功能,手机碎屏后的最后倔强
  2. 区块链BaaS云服务(14)华大BGI区块链“Baas接口“
  3. 【有三说图像】图像简史与基础
  4. 成为Web开发大师你必须知道的7件事情
  5. ai automatic video editing software
  6. 【图像修复】基于matlab GUI Lucy_Richardson迭代法图像修复【含Matlab源码 846期】
  7. 如何做职业规划并进行求职准备(持续更新)
  8. ADS 修改版图默认单位
  9. 微软面试58道逻辑面试题
  10. [整理]邮件里常用英文缩写
  11. 解读—revealing deep semantic commercial patterns:Insights from urban landscape depiction
  12. 各大互联网企业Java面试题汇总,看我如何成功拿到百度的offer
  13. 多用户商城系统源码_业务逻辑功能思维导图_OctShop
  14. 浅谈DOS扩展器和DPMI
  15. MongoDB:常见的面试题和答案
  16. 狭义相对论从入门到入土(建议初一及以上)
  17. 在家带娃有没有什么副业可以做?在家带娃的副业有哪些?
  18. C++设计模式之二(设计模式六大原则)
  19. 永劫无间为啥显示连接服务器失败,永劫无间服务器故障原因-永劫无间服务器连接失败解决方法_游戏369...
  20. elastic search 日志不打印问题(root用户惹的祸)

热门文章

  1. 关于iOS 6 中的一些“xxxxxx” is deprecated 问题的解决办法
  2. 解决gradle:download特别慢的问题
  3. 【问题解决方案】anaconda-python在cmd-pip安装requests后依然提示No module named requests
  4. Uncaught TypeError: Illegal invocation问题解决方法
  5. .NetCore实践篇:成功解决分布式监控ZipKin聚合依赖问题(三)
  6. babel-loader jsx SyntaxError:意外令牌[重复]
  7. 如何取消选中单选按钮?
  8. 清除或重新创建Ruby on Rails数据库
  9. 方法和函数有什么区别?
  10. Python基础-pyqt5