6 强化学习从零学教程系列:Markov决策过程之折扣因子与价值函数
系列进度
强化学习入门 · 第 6 / 28 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
强化学习的核心是智能体在环境中试错,学习时要同时看状态、动作、奖励和策略更新。阅读时可以按「价值函数 -> 折扣因子 -> 状态动作 -> 奖励回报」建立结构,再回到正文里的代码、案例或指标做验证。
读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「价值函数」,再查「折扣因子」。
在上一篇文章中,我们探讨了 Markov决策过程(MDP)的基本概念,包括状态、动作和奖励。这些构成了强化学习的基础框架。在本篇中,我们将深入讨论 MDP 中的重要元素之一:折扣因子与价值函数。这些概念不仅是理论上的重要工具,而且在实际应用中也具有重要的意义。
价值函数
在强化学习中,价值函数用于评估某一状态或状态-动作对的价值。一般而言,价值函数可以分为两类:
学习折扣因子和价值函数时,先看即时奖励和未来奖励如何合并。折扣越小,模型越看重眼前收益。
- 状态价值函数 :给定一个状态 ,它表示从该状态出发,在策略 下,未来所能获得的期望回报。
- 动作价值函数 :给定一个状态 和一个动作 ,它表示在状态 下执行动作 ,然后遵循策略 所能获得的期望回报。
状态价值函数和动作价值函数的计算公式如下:
-
状态价值函数:
-
动作价值函数:
在上面的公式中:
- 是在时间步 获得的即时奖励。
- 是 折扣因子,其值在 的范围内。
折扣因子
折扣因子 是 MDP 中一个重要的超参数,它决定了未来奖励的当前值。其物理意义在于,随着时间的推移,未来的奖励会被“折扣”到现在的价值。具体来说:
读完《强化学习从零学教程系列:Markov决策过程之折扣因子与价值函数》后,可以回头问三件事:它解决什么问题,哪一步最容易出错,自己能否拿一个小例子跑通。
- 当 接近 时,未来的奖励与当前的奖励几乎同等重要,模型将倾向于追求长期回报。
- 当 接近 时,模型更看重当前的奖励,短期决策将成为优先考虑的因素。
案例分析
假设我们有一个简单的游戏,玩家在一个 1 到 10 的数字上进行“拿奖励”的游戏。每个时刻玩家都有机会选择一个数字 ,获取该数字的奖励,而游戏会在 轮后结束。
选择一个折扣因子 和一个奖励序列 ,我们可以计算每一步的状态价值。假设奖励序列为 ,那么我们可以通过以下方式计算从初始状态 取得的折现价值:
def compute_value(gamma, rewards):
total_value = 0
for t in range(len(rewards)):
total_value += (gamma ** t) * rewards[t]
return total_value
rewards = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
gamma = 0.9
value = compute_value(gamma, rewards)
print("折现价值:", value)
执行上述代码,我们将获得该游戏的总折现价值。
学完《强化学习从零学教程系列:Markov决策过程之折扣因子与价值函数》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。
如果想把《强化学习从零学教程系列:Markov决策过程之折扣因子与价值函数》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。
小结
在本篇中,我们深入探讨了 Markov决策过程中的折扣因子与价值函数,它们不仅为我们提供了量化决策的工具,也为强化学习算法的设计奠定了基础。我们看到,折扣因子的选择直接影响到代理(Agent)的决策行为,在不同的环境中可能需要进行不同的调整。
下一篇文章将继续讨论动态规划,它是强化学习中的一种重要方法,我们将介绍其基本思想和框架,如何利用动态规划来解决 MDP 的问题。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
强化学习从零学教程系列:Markov决策过程之折扣因子与价值函数适合谁读?
这是 强化学习入门 系列第 6 / 28 篇,适合正在学习强化学习入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇强化学习入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读