6 Markov决策过程之折扣因子与价值函数

在上一篇文章中,我们探讨了 Markov决策过程(MDP)的基本概念,包括状态、动作和奖励。这些构成了强化学习的基础框架。在本篇中,我们将深入讨论 MDP 中的重要元素之一:折扣因子与价值函数。这些概念不仅是理论上的重要工具,而且在实际应用中也具有重要的意义。

价值函数

在强化学习中,价值函数用于评估某一状态或状态-动作对的价值。一般而言,价值函数可以分为两类:

  1. 状态价值函数 $V(s)$:给定一个状态 $s$,它表示从该状态出发,在策略 $\pi$ 下,未来所能获得的期望回报。
  2. 动作价值函数 $Q(s, a)$:给定一个状态 $s$ 和一个动作 $a$,它表示在状态 $s$ 下执行动作 $a$,然后遵循策略 $\pi$ 所能获得的期望回报。

状态价值函数和动作价值函数的计算公式如下:

  • 状态价值函数:
    $$
    V_\pi(s) = \mathbb{E}\pi \left[ \sum{t=0}^{\infty} \gamma^t R_t \mid S_0 = s \right]
    $$

  • 动作价值函数:
    $$
    Q_\pi(s, a) = \mathbb{E}\pi \left[ \sum{t=0}^{\infty} \gamma^t R_t \mid S_0 = s, A_0 = a \right]
    $$

在上面的公式中:

  • $R_t$ 是在时间步 $t$ 获得的即时奖励。
  • $\gamma$ 是 折扣因子,其值在 $[0, 1]$ 的范围内。

折扣因子

折扣因子 $\gamma$ 是 MDP 中一个重要的超参数,它决定了未来奖励的当前值。其物理意义在于,随着时间的推移,未来的奖励会被“折扣”到现在的价值。具体来说:

  • 当 $\gamma$ 接近 $1$ 时,未来的奖励与当前的奖励几乎同等重要,模型将倾向于追求长期回报。
  • 当 $\gamma$ 接近 $0$ 时,模型更看重当前的奖励,短期决策将成为优先考虑的因素。

案例分析

假设我们有一个简单的游戏,玩家在一个 1 到 10 的数字上进行“拿奖励”的游戏。每个时刻玩家都有机会选择一个数字 $x$,获取该数字的奖励,而游戏会在 $10$ 轮后结束。

选择一个折扣因子 $\gamma = 0.9$ 和一个奖励序列 $R_0, R_1, \ldots, R_9$,我们可以计算每一步的状态价值。假设奖励序列为 $R_t = 10 - t$,那么我们可以通过以下方式计算从初始状态 $S_0$ 取得的折现价值:

1
2
3
4
5
6
7
8
9
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决策过程中的折扣因子与价值函数,它们不仅为我们提供了量化决策的工具,也为强化学习算法的设计奠定了基础。我们看到,折扣因子的选择直接影响到代理(Agent)的决策行为,在不同的环境中可能需要进行不同的调整。

下一篇文章将继续讨论动态规划,它是强化学习中的一种重要方法,我们将介绍其基本思想和框架,如何利用动态规划来解决 MDP 的问题。

6 Markov决策过程之折扣因子与价值函数

https://zglg.work/reinforcement-learning-zero/6/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论