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

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

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


当我们一直采取 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

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.