增强学习(二)——策略迭代与值迭代

2023-11-08 00:32

本文主要是介绍增强学习(二)——策略迭代与值迭代,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上一篇文章中,我主要介绍了马尔可夫决策过程(MDP)。在了解了增强学习的基本思想后,我们便可以继续讨论“最优策略”的求解方法:

我们之前已经说到了MDP可以表示成一个元组(X, A, Psa, R),我们对最优策略的求解方法自然也就与这个元组密切相关:如果该过程的四元组均为已知,我们称这样的模型为“模型已知”,对这种已知所有环境因素的学习称为“有模型学习”(model-basedlearning);与之对应的就是“无模型学习”,环境因素机器无法得知的,主要是指状态转移概率Pxa

本篇博客对“有模型学习”的两种方法进行介绍,分别是策略迭代和值迭代。在此之前,我们需要明确增强学习的两大步骤,策略评估与策略改进:


策略评估:

在上一篇博客中,我们已经对“状态值函数”和“状态动作值函数”进行了简单介绍,但在之前的考虑中,我们是认为策略已知,故在贝尔曼方程中没有考虑策略π的取值与改进问题。我们在此以“状态值函数”和“状态动作值函数”的T步累积奖赏为例重新进行完整的推导:

    (1)

关于下标,Rax->x’表示的是在x状态下采取a动作,转移到x’状态后得到的回报,其他的类比即可。同理可以得到关于“状态动作值函数”Q的公式:

    (2)

这样的递归式才是对于完整的MDP四元组的贝尔曼等式。也就是说,我们通过这两个公式,就可以通过逐步递归的方式,在编程上实现对策略π的评估。伪代码如下:



策略改进:

由于我们已经知道了怎样对策略进行评估,那么,我们可以产生一个很直接的求解最优策略的方法:从一个初始化的策略出发,先进行策略评估,然后改进策略,评估改进的策略,再进一步改进策略……不断迭代更新,直达策略收敛,这种做法被称为“策略迭代”,伪代码如下:


其中,Q的计算是根据公式(2)来进行的。

此外,我们不难理解,当Qπ(x,π’(x))>=Vπ(x)时,我们可以认为在x的状态下,π’策略相比原来的策略更好。再结合上一篇博文中的最优贝尔曼方程,我们可以将策略的改进视为值函数的改善,以此得出“值迭代”方法,伪代码如下:



但是,这两种方法的缺点显而易见:必须知道状态转移概率才能进行最优策略的计算。这在我们真实的使用场景中几乎不可能实现,所以,我们将在下一篇中介绍适用性更强的“无模型学习”。

这篇关于增强学习(二)——策略迭代与值迭代的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用