想象你是一位站在山脊上的登山者,晨雾缭绕,看不清整座山。你脚下是一块平坦的岩石,面前分出三条小径:一条通向洒满阳光的高坡,一条伸进幽暗的松林,一条沿溪蜿蜒。你口袋里正好有几枚刚捡到的金币——这是此刻的“即时奖励”。但你真正想问的是:站在这块石头上,未来到底还藏着多少宝藏? 这个问题,正是强化学习在回答的核心问题。所谓强化学习,就是让一个智能体像登山者一样,通过不断试错来学习“该走哪条路”。而它用来评估“当前位置值多少”的算盘,就是本文的主角——贝尔曼方程。这个方程用一句朴素的话概括:一个位置的价值 = 脚下刚捡到的金币 + 打折后的前方宝藏。所谓“打折”,是因为远方的宝藏看不见摸不着,路上的风雪、迷路的可能,都会让它们打个折扣。学会这个方程,你就握住了强化学习中几乎所有算法——值迭代、Q学习、DQN——的数学灵魂。现在,让我们沿着这条登山者的小路,一步一步读懂它。

岗位关联

对 AI 从业者而言,贝尔曼方程是理解强化学习一切算法的基石;掌握它,等于拿到了阅读一整个领域的入门钥匙,无论是做游戏 AI、推荐系统还是机器人控制,都能直击算法本质。

目录
  1. 可视化演示
  2. 值函数与回报
  3. 贝尔曼推导
  4. 两值函数关系
  5. 最优贝尔曼
  6. 动态规划解法
  7. 扩展与应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

通过交互式参数调整和采样模拟,直观理解正态分布的概率密度函数及中心极限定理的收敛过程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

正态分布 N(0, 1) 钟形曲线展示概率密度函数 调整μ和σ观察分布变化 f(x) = (1/σ√2π) e^(-(x-μ)²/2σ²) 点击采样按钮模拟随机抽样

值函数与回报

登山者休整时会翻一翻腰包,数一数这一路捡了多少金币。但真正老练的山客不会只盯着眼前——他会盘算:如果一直沿这条山脊走下去,后面还能捡多少。强化学习里的智能体就像这位登山者,每一步从环境拿到一点“即时奖励”,而它真正想衡量的,是从当前这一步开始,未来所有奖励的总和。这个总和,就是强化学习里的“回报”。

不过远方的事情充满不确定性:山可能塌方,路可能被封,向导的旧地图也可能过时。所以登山者习惯给远处的金币打个折扣——越远的宝藏,越要打折。这个打折力度就是折扣因子 γ,取值在 0 到 1 之间。γ 越接近 1,说明登山者越愿意为遥远的宝藏等待;γ 越小,说明他更看重眼前的收益。把每一步的奖励按 γ 的幂次逐级打折再累加,就得到了回报的数学定义:

有了回报,就可以给每个位置打分:从状态 s 出发、按照某个策略 π(也就是“接下来的走法规则”)继续走,平均能拿到多少回报——这个分数称为状态值函数:

回到登山者:状态值函数 v_π(s) 就是他站在某块岩石上,凭多年经验预计还能捡到多少金币的平均估计。腰包里的金币会花光,但算出每个位置的“身价”,才是他这趟山行最重要的收获。

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=∑k=0∞γkRt+k+1\displaystyle G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
  1. 对期望取平均$\mathbb{E}_\pi$ 表示按照策略 π 的概率取平均,因为路上充满随机,不能只看一种可能。
    Eπ[ ⋅ ]\displaystyle \mathbb{E}_\pi[\,\cdot\,]
  2. 给定当前状态$S_t = s$ 是一句“已知条件”,表示我们现在就站在位置 s 上评估价值。
    St=s\displaystyle S_t = s
  3. 策略决定走法下标 $\pi$ 强调:同一个位置,按不同走法规则评估,价值也会不同——有人见山就爬,有人遇桥就绕。
    vπ(s)\displaystyle v_\pi(s)

贝尔曼推导

登山者站在三岔路口,不会把每条路走到黑再回头比较。他更聪明:先看脚下这一步能捡几枚金币,再抬头望一望前方路口的“藏宝指数”,心里快速加总。换句话说——当前位置的价值,等于这一步的金币加上打折后的下一位置价值。这个想法听起来简单,但把它写成数学,就是改变了整个领域的贝尔曼方程。

从回报的定义出发:G_t 的第一项是 R_{t+1},后面的所有项恰好又构成一个从 t+1 时刻开始的回报 G_{t+1},只不过整体乘以 γ。因此回报可以拆成“即时部分 + 递推的未来部分”。再对两边按策略 π 和环境的转移规律取期望,就得到状态值函数满足的递推关系:

这就像登山者的心算口诀:“我这地方值多少?看看每条路第一脚能捡多少,再望一望下一站的身价打个折,按我平时的选择偏好平均一下。”正因为方程是递推的,它才能一遍遍自我更新,最终逼近真实的价值——这是后面所有迭代算法的基石。

vπ(s)=∑aπ(a∣s)∑s′,rp(s′,r∣s,a)[r+γvπ(s′)]\displaystyle v_\pi(s) = \sum_a \pi(a \mid s) \sum_{s', r} p(s', r \mid s, a)\left[r + \gamma v_\pi(s')\right]
  1. 策略的加权$\sum_a \pi(a \mid s)$ 表示在状态 s 处,登山者可能选这条路也可能选那条路,π(a|s) 就是选择动作 a 的概率,把每个动作的贡献按概率加权。
    ∑aπ(a∣s)\displaystyle \sum_a \pi(a \mid s)
  2. 环境的转移规律$\sum_{s', r} p(s', r \mid s, a)$ 表示选了动作 a 之后,山势会把你带到哪个新位置 s'、路上给多少奖励 r,这些都由环境的概率 p 描述,需要全部平均。
    ∑s′,rp(s′,r∣s,a)\displaystyle \sum_{s', r} p(s', r \mid s, a)
  3. 即时奖励加未来价值$r + \gamma v_\pi(s')$ 是核心——这次捡到的金币 r,加上新位置 s' 的身价 v_π(s') 打 γ 折。
    r+γvπ(s′)\displaystyle r + \gamma v_\pi(s')
  4. 整个方程的意义它把“当前位置的价值”改写成了“下一步各种可能结果的加权平均”,形成一个可自我迭代的递推式。
    vπ(s)=∑aπ(a∣s)∑s′,rp(s′,r∣s,a)[r+γvπ(s′)]\displaystyle v_\pi(s) = \sum_a \pi(a \mid s) \sum_{s', r} p(s', r \mid s, a)\left[r + \gamma v_\pi(s')\right]

两值函数关系

登山者评价一个位置有两个角度。第一个角度是“这块岩石本身值多少”,不管接下来从哪条路下去——这是状态值 v_π(s)。第二个角度是“如果我明确选择走左边那条路,值多少”——这是动作值 q_π(s,a),也叫 Q 值,它把动作也纳入评估:先锁定动作 a,之后仍按策略 π 走。如果只问“站在这值多少”,其实就是把所有动作的 Q 值按策略概率加权平均:

反过来,动作值也能用状态值表达:选了动作 a 后,环境把你送到新位置 s' 并给奖励 r,于是 q_π(s,a) = Σ p(s',r|s,a)[r + γv_π(s')]。两个函数就像山的正面与侧面——从正面看是状态值,从侧面看是动作值,其实描述的是同一座山。登山者有时问“这位置值几何”,有时问“这条道值几何”,两种问法通过贝尔曼方程自由切换。正是这种互相转换的能力,让后面所有算法都能灵活选择自己需要的视角。

vπ(s)=∑aπ(a∣s) qπ(s,a)\displaystyle v_\pi(s) = \sum_a \pi(a \mid s)\, q_\pi(s, a)
  1. 动作值先入为主$q_\pi(s, a)$ 表示“在状态 s 先选动作 a,之后按 π 走”的价值,它比状态值多知道一条信息。
    qπ(s,a)\displaystyle q_\pi(s, a)
  2. 按策略加权$\sum_a \pi(a \mid s)$ 表示站在状态 s 时,登山者按习惯以概率 π(a|s) 选各条路,把各动作的价值按这个概率平均。
    ∑aπ(a∣s) qπ(s,a)\displaystyle \sum_a \pi(a \mid s)\, q_\pi(s, a)
  3. 两个视角的桥等式把“不关心动作的状态值”和“关心具体动作的 Q 值”连起来——状态值不过是一篮子的动作值按策略比例调成的平均口味。
    vπ(s)=∑aπ(a∣s) qπ(s,a)\displaystyle v_\pi(s) = \sum_a \pi(a \mid s)\, q_\pi(s, a)

最优贝尔曼

登山队伍里总有一位经验最丰富的向导。别人站在三岔路口还要犹豫,他却能一眼看出哪条路的总回报最高,毫不犹豫地迈步。我们把这种“每一步都选最优”的走法称为最优策略 π_*。在最优策略下,每个位置的价值都达到各自的天花板,这就是最优值函数 v_*(s)。它的方程和普通贝尔曼方程几乎一样,只改了一处:原来的“按策略概率加权平均”变成了“直接取最大”:

登山者听到这里恍然大悟:原来最优策略不用全局规划,只需要在每个位置都问一句“哪条路的价值最大”,然后坚决走那条路。最优贝尔曼方程就像一张绘制了全山“宝藏上限”的传奇地图——只要算出每个位置的 v_*,最优策略就手到擒来。这也是后面值迭代和 Q 学习共同追求的目标。

v∗(s)=max⁡a∑s′,rp(s′,r∣s,a)[r+γv∗(s′)]\displaystyle v_*(s) = \max_a \sum_{s', r} p(s', r \mid s, a)\left[r + \gamma v_*(s')\right]
  1. 取最大运算$\max_a$ 取代了原来的 $\sum_a \pi(a \mid s)$——向导不在多条路之间平均,而是直接挑出价值最大的那个动作。
    max⁡a\displaystyle \max_a
  2. 转移与奖励不变$\sum_{s', r} p(s', r \mid s, a)$ 依然要对环境的随机结果取期望,因为即使向导选了路,山势仍可能让他滑到别处。
    ∑s′,rp(s′,r∣s,a)\displaystyle \sum_{s', r} p(s', r \mid s, a)
  3. 成功对接未来最优$\gamma v_*(s')$ 表示新位置的身价也要用“最优值”来评估,确保每一步都在为全局最优铺路。
    r+γv∗(s′)\displaystyle r + \gamma v_*(s')
  4. 方程的整体形态最优值函数是贝尔曼方程在“最幸运又最明智”假设下的特殊解,它给出了每个位置价值的最终上限。
    v∗(s)=max⁡a∑s′,rp(s′,r∣s,a)[r+γv∗(s′)]\displaystyle v_*(s) = \max_a \sum_{s', r} p(s', r \mid s, a)\left[r + \gamma v_*(s')\right]

动态规划解法

理论很美,但现实是登山者搭不起整座山的观景台。他既没有全知视角,也不可能一脚踏遍每条路。他的变通办法是“反复修订地图”:白天按旧地图走,收集沿途见闻;夜晚在营地,他根据今天的见闻给每个位置重新估价,把旧地图上的数字替换掉,得到一张新地图。日复一日,地图上的数字越来越接近真实。这种“用旧估值算新估值、反复替换直至收敛”的做法,就是动态规划。

值迭代用如下公式逐轮更新每个状态的价值,把第 k 轮的估计变成第 k+1 轮的估计:

vk+1(s)=max⁡a∑s′,rp(s′,r∣s,a)[r+γvk(s′)]\displaystyle v_{k+1}(s) = \max_a \sum_{s', r} p(s', r \mid s, a)\left[r + \gamma v_k(s')\right]
  1. 迭代下标登场$v_k$ 表示第 k 轮的地图估值,$v_{k+1}$ 是下一轮的估值,当前轮的计算完全由上一轮的旧值驱动。
    vk+1(s),vk(s′)\displaystyle v_{k+1}(s), \quad v_k(s')
  2. 旧值带出新值公式右侧的 $v_k(s')$ 是上一轮对新位置的估计,把它代入“即时奖励 + 折扣未来”的结构中,算出本轮的新估计。
    r+γvk(s′)\displaystyle r + \gamma v_k(s')
  3. 整体迭代对所有状态同时执行 $v_{k+1} \leftarrow \max_a \sum p\,[r + \gamma v_k]$,一轮轮刷下去,$v_k$ 会收敛到 $v_*$——地图终将逼近真值。

扩展与应用

\displaystyle Q(s, a) \leftarrow Q(s, a) + \alpha\left[r + \gamma \max_{a'} Q(s', a') - Q(s, a)\right]

1. 旧估计起步:$Q(s, a)$ 是当前对这个位置和动作的估值,更新从它出发,像登山者心里原有的"这条路值 x 枚金币"。$$\displaystyle Q(s, a)$$2. 现实观察修正:$r + \gamma \max_{a'} Q(s', a')$ 是"现实目标"——这次捡到的奖励 r,加上新位置所有动作里最大的 Q 值打 γ 折,代表实地见闻告诉你这条路真正值多少。$$\displaystyle r + \gamma \max_{a'} Q(s', a')$$3. 误差驱动调整:$\left[r + \gamma \max Q - Q(s,a)\right]$ 是"预估与现实的偏差",如果现实比预估好,就往上调;比预估差,就往下调。$$\displaystyle r + \gamma \max_{a'} Q(s', a') - Q(s, a)$$4. 学习率控步幅:$\alpha$ 是学习率,决定每次修正迈多大步子——步幅太小走得慢,太大容易越过真值。$$\displaystyle Q(s, a) \leftarrow Q(s, a) + \alpha\left[\cdots\right]$$Deep Q Network(DQN)则更进一步:当状态多到像整片山脉一样数不清时,登山者不再挨个位置记身价,而是用神经网络这个"经验丰富的预测器"来拟合 Q 值函数,输入一个位置,直接输出各条路的估价。山还是那座山,心算换成了计算机;但无论换多少工具,背后那套"价值 = 即时奖励 + 折扣未来"的算盘,始终是贝尔曼方程。从动态规划到 Q 学习再到 DQN,所有强化学习算法都在这同一个方程上生长。

AI 应用场景

游戏 AI:DQN 学会打街机

阶段:模型训练(奖励驱动的策略学习)

解决的问题:传统游戏 AI 靠人工编写规则,遇到新游戏就束手无策;DQN 用贝尔曼方程的采样版——Q 学习更新公式——让智能体仅凭屏幕像素和得分自学成才。

具体案例:DeepMind 让 DQN 玩 Atari 街机游戏。智能体像一个兴奋的登山者,每帧屏幕是一个状态,每个操作是一条路,得分是随手捡到的金币。它通过反复玩、反复用“即时得分 + 折扣的未来最高分”修正 Q 值,最终在数十款游戏上超越人类水平,整个训练过程无任何人工规则。

推荐系统:为用户长期价值建模

阶段:用户行为建模与长期收益预估

解决的问题:推荐系统只盯着点击率会陷入“标题党”陷阱,看不到用户长期留存;贝尔曼方程把“当前推荐动作”的价值分解为本次点击收益加折扣后的未来用户活跃度价值。

具体案例:某短视频平台把用户状态(看过哪些视频)映射为状态,把推荐视频映射为动作,用贝尔曼方程估计“用户未来会给平台创造的总时长价值”。每次推荐后观察用户是否观看、是否停留,像登山者边走路边修正估值一样,持续优化推荐策略。

机器人路径规划:值迭代绘制全局路径

阶段:环境建模与策略求解

解决的问题:机器人在仓库中搬运货物,传统 A* 只能处理已知地图,无法应对障碍物滑动等随机性;值迭代利用贝尔曼方程,把每个栅格的价值建模为“这一步的奖励 + 折扣的未来价值”,得到抗干扰的全局路径。

具体案例:仓储机器人把货架位置作为终点奖励,把“电量消耗”作为每步负奖励,用值迭代离线算出一张价值地图。运行中即使遇到路面滑移偏离目标格,也能根据当前实际位置的价值调整动作,稳稳抵达货架。

Python 演示

python49 行
import numpy as np # 4x4 网格世界, 演示贝尔曼方程驱动的值迭代# 状态 (i,j), 动作 0=上 1=下 2=左 3=右# 到达右下角得奖励 1, 其他转移奖励 0# 每一步有 0.1 概率滑向两侧动作, 模拟环境随机性 H = W = 4GAMMA = 0.9E = 0.1  # 滑行概率ACTIONS = [(-1, 0), (1, 0), (0, -1), (0, 1)]  def transition_probs(i, j, a):    """返回 {下一状态: 概率}, 包含动作滑行扰动"""    probs = {}    choices = [(a, 1 - 2 * E), ((a + 1) % 4, E), ((a - 1) % 4, E)]    for act, p in choices:        ni, nj = i + ACTIONS[act][0], j + ACTIONS[act][1]        ni, nj = max(0, min(H - 1, ni)), max(0, min(W - 1, nj))        probs[(ni, nj)] = probs.get((ni, nj), 0) + p    return probs  def value_iteration(rounds=60):    """用贝尔曼方程反复更新状态值, 每轮用旧值算新值"""    v = np.zeros((H, W))    for _ in range(rounds):        v_old = v.copy()        for i in range(H):            for j in range(W):                if (i, j) == (H - 1, W - 1):                    v[i, j] = 0.0                    continue                best = float("-inf")                for a in range(4):                    q = 0.0                    for (ni, nj), p in transition_probs(i, j, a).items():                        reward = 1.0 if (ni, nj) == (H - 1, W - 1) else 0.0                        q += p * (reward + GAMMA * v_old[ni, nj])                    best = max(best, q)                v[i, j] = best    return v  if __name__ == "__main__":    result = value_iteration()    print("贝尔曼方程驱动下收敛的状态值:")    print(np.round(result, 3))
目的:用值迭代在带随机扰动的网格世界上求解每个状态的最优价值,直观展示“旧值算新值、轮轮逼近最优”的贝尔曼方程迭代过程。
  1. choices = [(a, 1 - 2 * E), ((a + 1) % 4, E), ((a - 1) % 4, E)]定义动作执行时有 0.1 概率滑向两侧,对应环境转移概率 p(s'|s,a)
  2. v_old = v.copy()复制上一轮估值,保证本轮所有更新都用旧值计算,正是 v_{k+1} 依赖 v_k 的体现
  3. reward = 1.0 if (ni, nj) == (H - 1, W - 1) else 0.0到达终点才给即时奖励,其余转移奖励为 0
  4. q += p * (reward + GAMMA * v_old[ni, nj])累加每个可能下一状态的贡献,即贝尔曼方程中的 Σp[r + γv(s')]
  5. best = max(best, q)对四个动作取最大 Q 值,对应最优贝尔曼方程中的 max 运算
  6. v[i, j] = best用当前状态的最优价值替换旧估值,完成一轮值迭代更新

常见误区

误区我一直以为贝尔曼方程就是 Q 学习,或者 Q 学习就是贝尔曼方程,两个词可以混用。看到代码里更新 Q 值就以为方程被推翻了。

正解贝尔曼方程是一个数学恒等式,描述“价值 = 即时奖励 + 折扣未来价值”这个关系本身;Q 学习只是在环境转移概率未知时,用一个采样样本去逼近这个关系的一种算法。好比“登山者口袋里的金币”和“登山者数金币的习惯”不是一回事——方程是金币本身,算法是数金币的方法。

为何常见:教材常从贝尔曼方程引出 Q 学习,代码又总写成同一套"r + γ·max"的结构,初学者容易把理论核心和具体求解手段混为一谈。

误区折扣因子 γ 越接近 1 越能看长远,所以应该把所有任务的 γ 都设成 0.99 甚至 0.999,这样智能体更聪明。

正解γ 接近 1 确实更重视长期,但也会放大未来估计的不确定性——远方一点小误差被指数放大,价值估计方差飙升,训练更难收敛,甚至导致策略震荡。登山者如果太执着千里之外的宝藏,反而忽略了脚下悬崖。实际任务中要根据环境确定性、任务长度和计算预算综合选择 γ。

为何常见:看论文里 DQN 都用 0.99,容易被“先进经验”带偏,忽略了 γ 和学习稳定性之间的权衡。

误区贝尔曼方程是方程,那我把每个状态的方程列出来,解方程组就能精确算出所有价值,不需要什么迭代。

正解方程确实是线性方程组,理论上可以解,但状态一多(比如围棋 10^170 种局面),方程组规模大到计算机根本存不下。更关键的是,现实环境往往连转移概率 p 都不知道,方程根本列不出来。所以实际算法靠的是“采样 + 迭代”:像登山者靠边走边修正,而不是把整座山的数学方程列完再动身。

为何常见:数学课上习惯解方程求精确解,自然以为强化学习也能一步到位,忽略了规模爆炸和模型未知两大现实约束。

误区最优策略一定需要看到整个地图、做一次超级全局规划才能得到,贝尔曼方程这种“只看下一步”的式子过于短视,不可能得到真正最优。

正解最优贝尔曼方程恰恰证明“局部最优 + 价值传递”就能形成全局最优:每一步选价值最大的动作,而这个价值本身已经包含了未来的最优情况。向导不需要望着整座山,他只需要知道每个位置的“身价”,然后每次都走向身价最高的方向。这是强化学习和传统规划最本质的区别。

为何常见:直觉上“走一步看一步”意味着短视,但忽略了价值函数已经把未来“折叠”进了当前估值,这层抽象需要一点时间才能转过弯。

面试题

Q1. 贝尔曼方程的核心思想是什么?

单选题 · easy

  • A.把状态价值分解为即时奖励加未来价值← 正确答案
  • B.用随机梯度下降不断逼近最优参数
  • C.对所有状态进行穷举搜索得到答案
  • D.用神经网络拟合任意复杂的函数

答案:A。贝尔曼方程的精髓就是“当前位置的价值 = 即时奖励 + 折扣后的未来价值”,像登山者评估“脚下金币 + 前方宝藏”。B 是机器学习参数更新的做法,C 是暴力搜索,D 是函数逼近工具,都不是方程的核心思想。

Q2. 折扣因子 γ 的作用是什么?

单选题 · easy

  • A.限制智能体每次只能选一个动作
  • B.衡量未来奖励的重要性,越接近 1 越看重长期← 正确答案
  • C.增加环境的随机性使训练更真实
  • D.保证所有奖励都是非负数

答案:B。γ 是“远方宝藏打折力度”,数值越接近 1,未来奖励在总价值中占比越高,智能体越有耐心;越接近 0,越只顾眼前。它既不限制动作数量,也不增加随机性,更与奖励正负无关。

Q3. 状态值函数 v_π(s) 的正确理解是?

单选题 · mid

  • A.从状态 s 出发按策略 π 行动的期望回报← 正确答案
  • B.状态 s 下能获得的最大即时奖励
  • C.所有状态回报的简单算术平均值
  • D.某一固定动作返回的确定值

答案:A。v_π(s) 是“站在位置 s,按走法 π 继续走下去,平均能拿到的总回报”,它是对未来全部奖励的期望,不是单步最大奖励(B),不是全局平均(C),也不对应单一动作的固定返回值(D)。

Q4. 关于状态值 v_π(s) 与动作值 q_π(s,a) 的关系,正确的有?

多选题 · mid

  • A.v(s) 是 q(s,a) 对动作的加权平均← 正确答案
  • B.两者在数学上没有任何关联
  • C.q(s,a) 是 v(s) 对动作取最大值
  • D.v(s) = Σπ(a|s)·q(s,a)← 正确答案

答案:AD。A 和 D 是同一件事的两种写法,状态值就是把各动作值按策略概率加权平均——像把各条路的“身价”按选择习惯调成综合分。B 显然不对;C 方向反了,是 v(s) 对动作取最大得到最优状态值,而不是 q 从 v 取最大得来。

Q5. 最优贝尔曼方程与普通贝尔曼方程的关键区别是?

单选题 · mid

  • A.用 max 取代对动作的策略加权平均← 正确答案
  • B.将所有奖励项直接删除
  • C.把折扣因子改为 0 全局
  • D.不再涉及未来状态的估计

答案:A。普通贝尔曼方程像登山者按习惯概率选路,平均各路价值;最优贝尔曼方程则像向导永远只挑价值最大的那条路,把 $\sum_a π(a|s)$ 换成 $\max_a$。其余选项都破坏了方程的基本结构。

Q6. 关于值迭代算法的特点,正确的有?

多选题 · hard

  • A.每次更新使用最优动作的估计← 正确答案
  • B.不需要知道环境转移概率即可计算
  • C.反复迭代后收敛到最优值函数← 正确答案
  • D.一次更新就能得到精确最优值

答案:AC。值迭代每轮都用 max 取最优动作对应的更新量(A 对),靠“旧值算新值”反复刷新,最终收敛到最优值函数(C 对)。它是动态规划方法,必须知道环境的转移概率 p(B 错);收敛需要很多轮而不是一步到位(D 错)。

Q7. Q 学习更新公式中的“时序差分目标”指的是哪一项?

单选题 · hard

  • A.r + γ·max Q(s',a')← 正确答案
  • B.Q(s,a) 当前的旧估计值
  • C.学习率 α 的数值大小
  • D.长期回报的理论上界

答案:A。时序差分目标 = 本次实际观察(r)+ 下一步最优估计(γ·max Q),它代表“现实告诉你这条路值多少”,是登山者实地见闻修正时瞄准的准心。当前旧值 Q(s,a) 是被修正对象而非目标,α 只是更新步幅。

Q8. 为什么 Q 学习可以实现“离线策略”学习?

单选题 · mid

  • A.更新中使用 max 逼近最优值,不依赖行为策略← 正确答案
  • B.因为它根本不更新任何价值函数
  • C.因为它任何时候都需要在线收集数据
  • D.因为它只使用一条固定的历史轨迹

答案:A。Q 学习更新时直接对下一步 Q 取 max,等价于默认“接下来选最优动作”,与数据里实际走的动作无关。就像登山者虽然今天走了左边,但修正右路身价时仍按“向导最优走法”来评估,所以可以用别人的轨迹(离线数据)学习。

Q9. 4×4 网格世界中,终点立即结束且价值为 0,γ=0.9,某状态只有一步到达终点,转移奖励 r=+1,该状态的最优价值最接近?

单选题 · easy

  • A.大约为 1.0,即一步奖励本身← 正确答案
  • B.大约为 0.9,即奖励打了折扣
  • C.大约为 0.1,即奖励的十分之一
  • D.大约为 0,因为终点没有价值

答案:A。用贝尔曼方程心算:v = 1 + γ×0 = 1。登山者脚下就踩着宝箱,未来价值为零,当前位置自然只值这枚金币本身。B 混淆了“折扣应用在未来项”而非当前奖励,C、D 无依据。

Q10. 贝尔曼方程是以下哪些算法的基础?

多选题 · hard

  • A.值迭代算法← 正确答案
  • B.策略迭代算法← 正确答案
  • C.Q 学习算法← 正确答案
  • D.线性回归算法

答案:ABC。值迭代和策略迭代是“已知模型”的动态规划解法,直接复用贝尔曼递推式;Q 学习是模型未知时对最优贝尔曼方程的采样逼近,三者都绕不开“价值 = 即时 + 折扣未来”这条公式。线性回归是监督学习工具,并不构建于贝尔曼方程之上。