深入理解强化学习——马尔可夫决策过程:策略迭代-[贝尔曼最优方程]

本文主要是介绍深入理解强化学习——马尔可夫决策过程:策略迭代-[贝尔曼最优方程],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分类目录:《深入理解强化学习》总目录


当我们一直采取 arg ⁡ max ⁡ \arg\max argmax操作的时候,我们会得到一个单调的递增。通过采取这种贪心 arg ⁡ max ⁡ \arg\max argmax操作,我们就会得到更好的或者不变的策略,而不会使价值函数变差。所以当改进停止后,我们就会得到一个最佳策略。当改进停止后,我们取让Q函数值最大化的动作,Q函数就会直接变成价值函数,即:
Q π ( s , π ′ ( s ) ) = max ⁡ a ∈ A Q π ( s , a ) = Q π ( s , π ( s ) ) = V π ( s ) Q_\pi(s, \pi'(s))=\max_{a\in A}Q_\pi(s, a)=Q_\pi(s, \pi(s))=V_\pi(s) Qπ(s,π(s))=aAmaxQπ(s,a)=Qπ(s,π(s))=Vπ(s)

我们也就可以得到贝尔曼最优方程(Bellman Optimality Equation):
V π ( s ) = max ⁡ a ∈ A Q π ( s , a ) V_\pi(s)=\max_{a\in A}Q_\pi(s, a) Vπ(s)=aAmaxQπ(s,a)

贝尔曼最优方程表明:最佳策略下的一个状态的价值必须等于在这个状态下采取最好动作得到的回报的期望。 当马尔可夫决策过程满足贝尔曼最优方程的时候,整个马尔可夫决策过程已经达到最佳的状态。只有当整个状态已经收敛后,我们得到最佳价值函数后,贝尔曼最优方程才会满足。满足贝尔曼最优方程后,我们可以采用最大化操作,即:
V π ∗ ( s ) = max ⁡ a Q π ∗ ( s , a ) V^*_\pi(s)=\max_{a}Q^*_\pi(s, a) Vπ(s)=amaxQπ(s,a)

当我们取让Q函数值最大化的动作对应的值就是当前状态的最佳的价值函数的值。另外,我们给出Q函数的贝尔曼方程:
Q π ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) Q^*_\pi(s, a)=R(s, a)+\gamma\sum_{s'\in S}p(s'|s, a)V^*(s') Qπ(s,a)=R(s,a)+γsSp(ss,a)V(s)

我们上两式合并可得:
Q π ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) max ⁡ a Q ∗ ( s ′ , a ′ ) V ∗ ( s ) = max ⁡ a Q π ∗ ( s , a ) = max ⁡ a ( R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) ) \begin{aligned} Q^*_\pi(s, a)&=R(s, a)+\gamma\sum_{s'\in S}p(s'|s, a)V^*(s')\\ &=R(s, a)+\gamma\sum_{s'\in S}p(s'|s, a)\max_{a}Q^*(s', a')\\ \\ V^*(s)&=\max_{a}Q^*_\pi(s, a)\\ &=\max_a(R(s, a)+\gamma\sum_{s'\in S}p(s'|s, a)V^*(s')) \end{aligned} Qπ(s,a)V(s)=R(s,a)+γsSp(ss,a)V(s)=R(s,a)+γsSp(ss,a)amaxQ(s,a)=amaxQπ(s,a)=amax(R(s,a)+γsSp(ss,a)V(s))

接着我们就可以得到Q函数之间的转移。Q学习是基于贝尔曼最优方程来进行的,当取Q函数值最大的状态 max ⁡ a ′ Q ∗ ( s ′ , a ′ ) \max_{a'}Q^*(s', a') maxaQ(s,a)的时候可得:
Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) max ⁡ a ′ Q ∗ ( s ′ , a ′ ) Q^*(s, a)=R(s, a)+\gamma\sum_{s'\in S}p(s'|s, a)\max_{a'}Q^*(s', a') Q(s,a)=R(s,a)+γsSp(ss,a)amaxQ(s,a)

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

这篇关于深入理解强化学习——马尔可夫决策过程:策略迭代-[贝尔曼最优方程]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/486051

相关文章

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片