↓ Skip to main content
  1. Posts/

从 Value Iteration 到 Q-Learning:没有真实 Q 值,模型如何学会决策?

·7401 words·15 mins
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

上一篇结尾留了一个问题:如果不知道环境的转移概率和 Reward 函数,应该怎么利用 Bellman Equation 学习策略?

那篇从 Policy Iteration 走到 Value Iteration,用 A/B 两状态的例子跑完了整个过程。最后得到了最优策略,A 选择前往 B,B 选择 \(b_1\),\(V^*(A) = 2.7\)。

但整个过程有一个前提:环境模型完全已知。我需要知道"A 前往 B 时 Reward 是 0"和"B 选 \(b_1\) 时 Reward 是 3"这些信息,才能计算 Bellman 更新。

继续跟 MIT 6.S191 Lecture 5 往下走,发现这个前提在大多数实际问题里都不成立。

环境模型未知时怎么办
#

先说清楚"环境模型未知"到底是什么意思。

Value Iteration 的更新公式:

$$ V_{k+1}(s) = \max_a \sum_{s'} P(s' \mid s, a)\bigl[r(s, a, s') + \gamma\, V_k(s')\bigr] $$

这里 \(r(s, a, s')\) 是给定转移 \((s, a, s')\) 的即时奖励,\(P(s' \mid s, a)\) 是转移概率。要算右边的期望,必须对所有可能的下一状态 \(s'\) 求加权和——这需要知道 \(P(s' \mid s, a)\) 的完整分布以及对应的即时奖励。

“环境模型未知"指的是 Agent 不知道 \(P(s' \mid s, a)\) 和 \(r(s, a, s')\)。它不知道在某个状态执行某个动作后,下一状态的概率分布是什么。

这不是说环境不满足 MDP 假设。环境本身可能完全是一个合法的 MDP——有确定的状态集合、动作集合、转移概率和奖励函数。只是 Agent 不掌握这些信息。

那 Agent 能做什么?它可以和环境交互。在状态 \(s\) 执行动作 \(a\),环境返回即时奖励 \(r\) 和下一状态 \(s'\)。Agent 拿到的是一条经验:

$$ (s, a, r, s') $$

一次采样,一个具体的转移结果。不是概率分布,不是所有可能结果的加权和。

Value Iteration 与 Q-Learning 的信息来源对比

Model-Based 方法(如 Value Iteration)知道环境模型,可以直接算期望。Model-Free 方法不知道模型,只能从交互样本中学习。

这里有一个我最初搞混的地方。Model-Free 不是说"不需要状态、动作或奖励”。Agent 仍然观察状态、执行动作、接收奖励。它缺少的是转移概率和奖励函数的解析形式——没有办法对所有可能的下一状态求加权和。

为什么要用 Q 而不是 V
#

上一篇的 Value Iteration 围绕 \(V(s)\) 展开。我最初的想法是:能不能也用采样的方式更新 V?

问题出在"选动作"这件事上。

假设我已经有了一个估计的 \(V(s)\)。在状态 \(s\),我要选择最优动作。Value Iteration 的做法是:

$$ \pi^*(s) = \arg\max_a \sum_{s'} P(s' \mid s, a)\bigl[r(s, a, s') + \gamma\, V(s')\bigr] $$

即使 V 已经精确了,我仍然需要 \(P(s' \mid s, a)\) 才能比较各动作的期望。 不知道转移概率,就没办法算"执行动作 \(a\) 之后各个下一状态的加权和"。

换成 Q 就不一样了。之前的文章定义过 Q-Function:在状态 \(s\) 执行动作 \(a\)、后续遵循某策略时 Return 的期望。

最优 Q-Function 的 Bellman Optimality Equation:

$$ Q^*(s, a) = \mathbb{E}\bigl[R_{t+1} + \gamma \max_{a'} Q^*(S_{t+1}, a') \mid S_t = s, A_t = a\bigr] $$

如果我已经知道精确的 \(Q^*(s, a)\),选动作只需要:

$$ \pi^*(s) = \arg\max_a Q^*(s, a) $$

直接对 Q 值取 argmax。不需要转移概率,不需要遍历所有可能的下一状态。 Q 已经把"执行这个动作之后的长期期望"编码进去了。

这是 Q-Function 在 Model-Free 场景下的关键优势。

那问题变成:没有环境模型,怎么学到 \(Q^*\)?

从一次采样构造更新目标
#

假设 Agent 在状态 \(s\) 执行了动作 \(a\),环境返回了即时奖励 \(r\) 和下一状态 \(s'\)。

Bellman Optimality Equation 说的是期望关系。但这一次交互只有一个具体的 \((s, a, r, s')\)。不过我可以用它构造一个更新目标:

$$ y = r + \gamma \max_{a'} Q(s', a') $$

这个 \(y\) 不是完整的数学期望,而是基于一次采样构造的目标。\(r\) 是真实的即时奖励,\(\max_{a'} Q(s', a')\) 是对 \(s'\) 处最优后续价值的当前估计。

然后用这个目标去更新 \(Q(s, a)\) 的估计。经典的 Tabular Q-Learning(表格 Q-Learning)更新公式:

$$ Q(s, a) \leftarrow Q(s, a) + \alpha\bigl[r + \gamma \max_{a'} Q(s', a') - Q(s, a)\bigr] $$

逐项拆开:

  • \(Q(s, a)\):当前对这个状态-动作对的价值估计。
  • \(r\):从环境中实际观察到的即时奖励。
  • \(\max_{a'} Q(s', a')\):下一状态中各动作 Q 值的最大值——对后续最优价值的当前估计。
  • \(r + \gamma \max_{a'} Q(s', a')\):更新目标(TD Target)。
  • \(r + \gamma \max_{a'} Q(s', a') - Q(s, a)\):当前估计与新目标之间的误差。
  • \(\alpha\):学习率,控制每次更新的步长。

为什么不需要转移概率? 不是说概率消失了。转移概率仍然存在于环境中——Agent 每次和环境交互时,环境按照自身的概率分布返回下一状态。Agent 通过反复采样,让不同结果逐渐反映到 Q 的估计中。不是一次性算出精确期望,而是用很多次经验逐步逼近。

如果转移是确定性的,一次采样就得到了唯一的下一状态。如果转移是随机的,反复访问同一个 \((s, a)\) 会得到不同的 \((r, s')\),多次更新之后,Q 的估计会综合这些不同结果。

没有真实标签,训练目标从哪来
#

到这里我卡了很久。

在普通的监督学习中,Loss 看起来像这样:

$$ L = (f_\theta(x) - y)^2 $$

\(y\) 是训练标签,是独立于模型的真实值。模型 \(f_\theta(x)\) 要做的就是逼近这个 \(y\)。

Q-Learning 的更新目标 \(r + \gamma \max_{a'} Q(s', a')\) 里,第二项 \(\max_{a'} Q(s', a')\) 是模型自身对下一状态的估计。如果这个估计本身不准确,用它构造的目标也不准确。

这不是在拿自己的预测结果训练自己吗?

我用上一篇的 A/B 环境重新走一遍这个过程,看看到底发生了什么。

用 A/B 例子手算 Q-Learning
#

环境和上一篇完全一样。状态 A 有两个动作:直接结束(Reward 1)和前往 B(Reward 0)。状态 B 有两个动作:\(b_0\)(Reward 0,结束)和 \(b_1\)(Reward 3,结束)。\(\gamma = 0.9\)。所有转移确定性。

假设 Q 表初始全为 0。学习率 \(\alpha = 1\)(只为便于手算,不是通常的设置)。

第一步: Agent 在 B 选择 \(b_1\),环境返回 \(r = 3\),游戏结束。

终止状态没有后续价值,更新目标就是即时奖励:

$$ Q(B, b_1) \leftarrow Q(B, b_1) + 1 \times [3 + 0 - Q(B, b_1)] = 0 + [3 - 0] = 3 $$

这一步没有 Bootstrapping——目标完全来自真实的环境奖励。

第二步: Agent 在 A 选择前往 B,环境返回 \(r = 0\),到达 B。

现在 B 已经有了 Q 值。\(\max_{a'} Q(B, a') = \max(0, 3) = 3\)。

$$ Q(A, \text{前往B}) \leftarrow 0 + 1 \times [0 + 0.9 \times 3 - 0] = 2.7 $$

A 的更新目标是 \(0 + 0.9 \times 3 = 2.7\)。其中 0 是真实的即时奖励,3 是之前学到的 B 的 Q 值。

第三步: 假设 Agent 也在 A 选择直接结束,环境返回 \(r = 1\),游戏结束。

$$ Q(A, \text{结束}) \leftarrow 0 + 1 \times [1 + 0 - 0] = 1 $$

现在比较 A 的两个动作:\(Q(A, \text{前往B}) = 2.7\),\(Q(A, \text{结束}) = 1\)。Agent 可以判断前往 B 更好。

Bootstrapping 中的价值传播

这个过程和上一篇 Policy Iteration 最终得到的结果完全一致——最优策略是 A 前往 B,B 选 \(b_1\),\(V^*(A) = 2.7\)。但 Q-Learning 不需要知道转移概率,它只用了三条交互样本。

几个需要注意的地方:

  • 这里的学习顺序是精心安排的——先让 B 学到准确的 Q 值,再更新 A。实际 Q-Learning 中 Agent 的探索顺序是随机的。
  • \(\alpha = 1\) 意味着旧的估计完全被新的目标覆盖。通常 \(\alpha\) 远小于 1,每次只做部分更新。
  • 这个例子因为环境很小且转移确定性,几步就收敛了。一般问题需要大量交互。
  • 只有实际访问过的状态-动作对才会被更新。没去过的状态,Q 值不会改变。

但如果 B 的 Q 值不准确呢
#

前面的例子里,B 的 Q 值在第一步就变成了正确的 3。但假设 Agent 只部分学习了——当前 \(Q(B, b_1) = 1.5\),不是真正的最优值 3。

这时候更新 A:

$$ y_A = 0 + 0.9 \times 1.5 = 1.35 $$

A 的更新目标是 1.35。但真正的最优值是 2.7。

Bootstrapping 构造的更新目标可能是错的。它不是 Ground Truth。

那为什么反复学习仍然有可能改善估计?

因为 B 的终止动作有真实的环境奖励作为纠正信号。Agent 每次在 B 执行 \(b_1\) 并获得 \(r = 3\) 时,\(Q(B, b_1)\) 都会朝着 3 的方向更新。随着 B 的估计逐步改善,A 使用 B 的估计构造的目标也会逐步改善。

这和上一篇的价值传播思想是一回事——B 的价值变化"传回"A,使 A 的估计跟着改善。区别在于 Value Iteration 通过对所有后继状态求期望来传播,Q-Learning 通过逐次采样来传播。

关键的逻辑链条:终止状态有真实 Reward → 相邻状态通过 Bootstrapping 利用这些信息 → 信息逐步向前传播 → 反复更新使估计逐渐接近真实值。

需要补充一个重要的边界。经典表格 Q-Learning 在满足特定条件时(学习率适当衰减、所有状态-动作对被无限次访问),可以证明收敛到 \(Q^*\)。这个收敛保证不能直接推广到使用神经网络的情况——后面会再说。

Bootstrapping 到底是什么
#

走到这里,可以给 Bootstrapping(自举)一个准确的描述了。

Bootstrapping 是指利用当前已有的价值估计,来构造另一个价值估计的更新目标。

Q-Learning 里,\(Q(s', a')\) 本身是估计值,被用来构造 \(Q(s, a)\) 的更新目标。这就是 Bootstrapping。

几个容易搞混的地方:

  • Bootstrapping 不是统计学里的 Bootstrap Resampling(Bootstrap 重采样)。名字相似但含义完全不同。
  • Bootstrapping 不限于神经网络。前面的表格 Q-Learning 例子没有用到任何神经网络,同样使用了 Bootstrapping。
  • Bootstrapping 的目标不等于真实值。它是"当前最好的估计 + 一步真实奖励"的组合,随着学习推进逐步改善。

TD Error 到底在度量什么
#

前面 Q-Learning 更新公式里方括号中的那个差值:

$$ \delta_t = r + \gamma \max_{a'} Q(s', a') - Q(s, a) $$

它有一个名字:TD Error(Temporal Difference Error,时序差分误差)。

Q-Learning 的更新可以简写成:

$$ Q(s, a) \leftarrow Q(s, a) + \alpha\, \delta_t $$

Temporal Difference(时序差分)这个名字一开始让我困惑——我以为它是说"Reward 关于时间的导数"之类的东西。实际上它描述的是:利用相邻时间步之间价值估计的关系来构造更新信号。

当前时刻在 \(s\),Q 值是 \(Q(s, a)\)。执行动作后到了 \(s'\),用 \(r + \gamma \max_{a'} Q(s', a')\) 构造了一个新的目标。两者之间的差值 \(\delta_t\) 就是驱动学习的信号。

如果 \(\delta_t \gt 0\),说明新目标比当前估计高——“往好的方向修正”。如果 \(\delta_t \lt 0\),说明当前估计过于乐观。如果 \(\delta_t = 0\),当前估计与目标一致,不需要更新。

和 Monte Carlo 方法比较
#

TD 不是唯一的学习方式。还有一种思路:不用 Bootstrapping,直接等一条完整轨迹结束,用实际采样到的 Return 做更新目标。这就是 Monte Carlo(蒙特卡洛)方法。

Monte Carlo 的更新目标:

$$ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots $$

从时刻 \(t\) 一直累加到轨迹结束。\(G_t\) 是实际走出来的 Return,不依赖任何价值估计。

TD 的更新目标(以 Q-Learning 为例):

$$ y_t = R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') $$

只看了一步真实 Reward,后面的部分用当前 Q 估计补上。

Monte Carlo 与 TD Learning 对比
Monte CarloTD(如 Q-Learning)
更新目标实际采样的完整 Return \(G_t\)\(r + \gamma \max_{a'} Q(s', a')\)
何时可以更新必须等轨迹结束每一步都可以更新
是否使用 Bootstrapping否是
偏差无偏(\(G_t\) 是 Return 的一次实现)有偏(目标包含估计成分)
方差高(一条轨迹的随机波动大)低(只依赖一步转移)

几个需要保持清醒的区分:

  • Monte Carlo 使用的 \(G_t\) 是一条轨迹的实际采样 Return。它是 Return 这个随机变量的一次实现,不等于真实的期望价值 \(V^*(s)\) 或 \(Q^*(s, a)\)。
  • TD 的目标包含估计成分,因此引入了偏差。这个偏差会随着 Q 估计的改善逐步减小。
  • 不能简单断言 TD 在所有问题上都优于 Monte Carlo,或反过来。它们有各自适用的场景。

走到这里,概念之间的关系可以理清了。

TD Learning(时序差分学习)是一类使用 Bootstrapping 进行更新的方法。Q-Learning 是 TD Learning 的一种具体算法——它面向最优 Q 值,使用 \(\max_{a'} Q(s', a')\) 构造 TD Target。 Q-Learning 和 TD Learning 不是同义词:TD Learning 是更大的框架,Q-Learning 是其中一个实例。

Q 表装不下的时候
#

前面所有讨论都假设 Q 用一张表来存储——每个状态-动作对有一个独立的数值。

但如果状态空间很大呢?

游戏画面是高维图像输入——一帧 84×84 的灰度图就有 \(256^{84 \times 84}\) 种可能的像素组合。连续状态空间更不用说。为每一个可能的状态-动作对单独存一个 Q 值,完全不现实。

而且 Q 表还有一个更根本的问题:它没有泛化能力。 状态 A 的 Q 值更新了,和状态 A 极其相似的状态 A’ 不会受到任何影响——因为在表格里它们是完全独立的条目。

一个自然的想法:既然 Q-Function 是一个从状态-动作对到实数的映射,能不能用一个参数化的函数去近似它?

$$ Q_\theta(s, a) \approx Q^*(s, a) $$

如果用神经网络作为这个函数,参数 \(\theta\) 在所有状态之间共享。更新一个状态的 Q 值时,参数变化会影响网络对其他相似状态的预测——这就是泛化。

对于有限个离散动作的情况,一种常见的网络结构是:

  • 输入:状态 \(s\)
  • 输出:每个动作对应一个 Q 值,即 \([Q_\theta(s, a_1), Q_\theta(s, a_2), \ldots, Q_\theta(s, a_n)]\)
  • 选择动作:\(a^* = \arg\max_a Q_\theta(s, a)\)

一次前向传播,所有动作的 Q 值同时算出来。

从 Q 表到 Q 网络

这就是 DQN(Deep Q-Network)的基本思路。不是所有 Q 网络都必须用这种"输入状态、输出所有动作 Q 值"的结构——也可以输入 \((s, a)\) 输出单个 Q 值。但前者在离散动作空间中更常用,因为取 argmax 只需要比较一个向量。

需要强调一点:神经网络的近似能力不等于保证预测正确。 泛化意味着相似状态会得到相似的 Q 值,但"相似"的度量由网络的架构和训练过程决定,不一定符合任务的真实结构。函数近似引入了新的问题——下一节会讲。

用神经网络之后,训练过程怎么变了
#

从表格 Q-Learning 过渡到 DQN,核心的 Bellman 递归关系没有变。变的是 Q 的表示方式和更新机制。

从更新公式到 Loss
#

表格 Q-Learning 直接修改 Q 表中的数值:

$$ Q(s, a) \leftarrow Q(s, a) + \alpha [\underbrace{r + \gamma \max_{a'} Q(s', a')}_{\text{TD Target}} - Q(s, a)] $$

用神经网络之后,Q 值由参数 \(\theta\) 决定。不能直接"改 Q 表里的一个格子",需要通过梯度下降更新 \(\theta\)。

Agent 与环境交互,获得一条经验 \((s, a, r, s', d)\),其中 \(d\) 表示 \(s'\) 是否为真正的终止状态。

构造训练目标:

$$ y = r + \gamma (1 - d) \max_{a'} Q_{\theta^-}(s', a') $$
  • 如果 \(d = 1\)(终止状态),\(y = r\)。终止后没有后续价值,只有即时奖励。
  • 如果 \(d = 0\)(非终止),\(y = r + \gamma \max_{a'} Q_{\theta^-}(s', a')\)。

这里 \(\theta^-\) 是用于计算目标的参数——后面会解释为什么它和当前训练的参数 \(\theta\) 需要区分。

Loss:

$$ L(\theta) = \bigl(Q_\theta(s, a) - y\bigr)^2 $$

这看起来和普通的回归 Loss 一样:预测值 \(Q_\theta(s, a)\),目标值 \(y\),最小化两者的平方差。然后对 \(\theta\) 求梯度、反向传播、更新参数。

但"看起来像"不代表"本质相同"。

在普通监督学习中,\(y\) 是固定的训练标签,不随模型参数变化。在 DQN 中,\(y\) 通过 \(\max_{a'} Q_{\theta^-}(s', a')\) 包含了模型自身的估计。即使用了 \(\theta^-\) 做一定程度的分离,目标仍然不是独立于学习过程的 Ground Truth。

构造目标时应当把 \(y\) 视为固定值(常数),不让梯度沿 \(y\) 一侧反向传播。原因是:如果 \(y\) 也随 \(\theta\) 更新而变化,优化目标本身在移动,训练过程会变得不稳定。

为什么神经网络会使训练变得不稳定
#

表格 Q-Learning 更新一个 \(Q(s, a)\),不会影响其他状态-动作对的 Q 值。但神经网络的参数是共享的——更新 \(\theta\) 以改善某个 \((s, a)\) 的 Q 值,可能同时改变了其他所有状态-动作对的预测。

再加上两个问题:

目标在移动。 \(y\) 依赖 Q 网络的输出。参数变了,目标也变了。模型在追一个自己不断推开的靶子。

连续样本高度相关。 Agent 与环境顺序交互,相邻时间步的 \((s, a, r, s')\) 来自几乎相同的局部环境区域。连续的训练样本之间不是独立的。

经典 DQN 用两个技巧来缓解这些问题。

Experience Replay(经验回放): 把每次交互得到的 \((s, a, r, s', d)\) 存入一个缓冲区。训练时不用最新的样本,而是从缓冲区中随机采样一个 batch。随机采样打破了时间上的相关性,并且允许同一条经验被多次复用。

Target Network(目标网络): 维护一份参数 \(\theta^-\) 的副本,用于计算 TD Target。这份副本不实时更新——每隔一段时间才把在线网络的参数复制过来(或者按某个比例缓慢更新)。这样在一段时间内,训练目标是相对稳定的。

DQN 训练闭环

这两个技巧不能完全解决问题——函数近似下的训练稳定性仍然是一个活跃的研究方向。但它们是 DQN 能够在 Atari 游戏上工作的关键组成部分。

Q-Learning 和 DQN 到底是什么关系
#

我在学习过程中好几次把 Q-Learning 和 DQN 混为一谈。整理一下它们的关系。

维度Tabular Q-LearningDQN
Q 的表示表格(每个状态-动作对一个数值)神经网络
训练信息环境交互样本 \((s,a,r,s')\)环境交互样本 \((s,a,r,s')\)
核心递归关系Bellman Optimality EquationBellman Optimality Equation
更新方式直接修改 Q 表中的数值梯度下降更新网络参数
泛化能力没有——每个条目独立有——参数共享使相似状态获得相似 Q 值
主要挑战状态空间太大时存不下函数近似带来的训练稳定性问题

Q-Learning 本身不是神经网络算法。 它是一种利用 TD 更新学习最优 Q 值的方法,可以用表格实现。DQN 是用神经网络作为 Q-Function 的近似器,再加上 Experience Replay 和 Target Network 等稳定性技巧。

还有一个特性值得一提。Q-Learning 是 Off-Policy(离策略)的。

Agent 在收集数据时可以使用 \(\epsilon\)-greedy 策略——大部分时间选当前估计最优的动作(exploitation),偶尔随机选一个动作(exploration)。但在计算 TD Target 时,用的是 \(\max_{a'} Q(s', a')\)——这是完全贪心的选择,不管 Agent 实际用了什么探索策略。

也就是说,收集数据的策略(behavior policy)和算法试图学习的策略(target policy)可以不同。 前者需要探索,后者是纯贪心的最优策略。Off-Policy 这个性质也是 Experience Replay 能够成立的原因之一——缓冲区里存储的旧数据来自之前的行为策略,仍然可以用来更新当前的 Q 估计。

写在最后
#

从上一篇的 Value Iteration 走到这里,整条路线大致是这样的:

Value Iteration 能工作,但需要已知的环境模型。去掉这个前提之后,需要一种能从交互样本中学习的方法。Q-Function 天然适合 Model-Free 场景——学到 Q 之后,选动作只需要 argmax,不需要转移概率。

Q-Learning 利用 Bellman Optimality Equation 的递归结构,从每次交互中构造 TD Target 来更新 Q 值。TD Target 包含当前的 Q 估计——这就是 Bootstrapping。Bootstrapping 的目标不是 Ground Truth,但真实环境奖励提供了锚点,反复更新使估计逐步改善。

当状态空间太大时,Q 表不可行,神经网络作为函数近似器登场。DQN 保留了 Q-Learning 的核心递归关系,用梯度下降替代了直接修改表格,再加上 Experience Replay 和 Target Network 来对抗训练不稳定性。

回到最初的问题——如果没有人提供正确的 Q 值作为标签,Agent 怎么学习?

真实环境反馈提供了锚点(终止状态的 Reward),Bellman 递归关系提供了在状态之间传播价值信息的结构,Bootstrapping 利用当前估计构造更新目标,反复交互和更新使整个 Q-Function 逐步逼近最优。 不需要事先知道答案,也不需要一次性算出精确值。

参考资料
#

Related

从条件概率到贝叶斯定理:再理解全概率与全期望

·6128 words·13 mins
起因 # 上一篇讨论了 Markov Property,提到 Bellman Equation 需要它作为前提。 准备看 Bellman Equation 的推导时,我卡在了一个叫 Law of Total Expectation(全期望公式)的地方。它的核心思想是:计算整体期望时,可以先按某个变量的不同取值分组,分别算各组的条件期望,再按组别的概率加权平均。之前那篇定义的 State Value \(V^\pi(s) = \mathbb{E}_\pi[G_t \mid S_t = s]\),在 Bellman Equation 里正是用这个思路按"下一个 State"分组来展开。

从马尔可夫性质出发:DP 无后效性、HMM 与 VAE 的知识联想

·4970 words·10 mins
起因 # 继续跟着 MIT 6.S191 Lecture 5 学强化学习。上一篇理解了 Return、State Value Function \(V^\pi(s)\) 和 Action Value Function \(Q^\pi(s,a)\)。 接下来要学的是 Bellman Equation。 我之前隐约知道它能把 \(V^\pi(s)\) 写成递归形式——当前状态的长期价值,等于下一步的期望 Reward 加上折扣后下一状态的期望长期价值。但刚准备细看推导时,发现它有一个前提条件:

从 Return 到 Q-Function:强化学习如何评价一个尚未发生的决策

·10320 words·21 mins
上一篇结尾留了一个问题: 如果一个动作的长期回报要等到几十步甚至更多步之后才能知道,那 Agent 在当前状态下,如何判断不同动作的长期价值? Return 可以衡量一条轨迹的累计收益。但做决策的时候,未来还没有发生——不存在一条可以直接计算的轨迹。那在当前时刻,怎么评价一个 State 甚至一个具体 Action 的长期价值?