假设你带着全部身家来到一座陌生的城市,想买一处铺面投资。你站在街角,心里最想知道两件事:这块地到底值多少钱?如果我在这儿开一家咖啡店,又能赚多少?前一个问题,对应强化学习里的状态价值 V(s);后一个问题,对应动作价值 Q(s,a)。接下来,我用“地产投资”的眼光带你把这套核心估值工具看个透——从回报怎么算、折扣因子为什么重要,到贝尔曼方程像估值师一样递归估值,再到 Q-learning 边开店边修正“赚钱预期”。这套思维,是游戏 AI、推荐系统、机器人导航共同的地基。

岗位关联

学懂值函数,你就拿到了强化学习所有经典算法的钥匙:Q-learning、DQN、策略梯度,底层都在围绕“某个状态值多少、某个动作值多少”做文章。

目录
  1. 可视化演示
  2. 1. 值函数概念:给地段估个基准价
  3. 2. V与Q区别:地段均价与开店回报
  4. 3. MDP基础:读懂城市的交通规则
  5. 4. 贝尔曼方程:估值师的递归算法
  6. 5. 最优值函数:最聪明的经营策略
  7. 6. 策略与值函数:从估值到决策
  8. 7. Q学习地基:边开店边修正估值
  9. 8. 应用价值:从一条街到一座城
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

动态演示值函数V与Q的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。

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

值函数V与Q:值函数的 值函数的定义与核心作用 状态价值函数V(s)的含义 核心机制可视化 值函数V与Q整体架构与关键组件

1. 值函数概念:给地段估个基准价

你刚到陌生城市,不会急着问“哪家咖啡店赚钱”,而是先看地段——这块地整片均价多少?同样,强化学习智能体刚进入环境时,第一件事也是学会判断:“我现在站的位置,到底值多少?”这个值,就是状态价值 V(s)。

但“值多少”不能只看眼前。你在铺面今天能收 100 块租金,明年、后年还能收。不过明年的 100 块不如今天值钱,因为钱会贬值、市场会变。于是引入了折扣因子 γ(读作 gamma,通常取 0~1 之间),让越远的收益衰减得越狠。

把这段想明白,你就理解了估值师的工具:一个地段的价值,不是它今天能卖多少钱,而是把它未来能带来的每一笔收益都折现到今天,再加总。

Vπ(s)=Eπ[Gt∣St=s],Gt=∑k=0∞γkRt+k+1V^{\pi}(s) = \mathbb{E}_{\pi}\left[ G_t \mid S_t = s \right], \quad G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
V(s) 的数学意思:从状态 s 出发,按策略 π 行动,未来所有折扣奖励之和的期望。用大白话说,就是“站在这个地段,长期平均能赚多少”。
  1. 未来奖励序列从 t+1 时刻开始,环境会按顺序给出一个接一个的奖励。
    Rt+1,  Rt+2,  Rt+3,  …R_{t+1},\; R_{t+2},\; R_{t+3},\; \ldots
  2. 折扣因子让远期贬值第 k 步之后的奖励要乘 γ 的 k 次方,k 越大折得越狠。
    γkRt+k+1\gamma^k R_{t+k+1}
  3. 回报是折扣奖励之和把这些打了折的奖励全部加起来,得到一局完整收益,称为回报 G_t。
    Gt=∑k=0∞γkRt+k+1G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
  4. 已知当前状态条件写法的意思是“我现在确实站在状态 s”,这是估值的出发点。
    St=sS_t = s
  5. 取期望得到价值未来有随机性,对所有可能情况求平均,就得到状态 s 的价值。
    Vπ(s)=Eπ[Gt∣St=s]V^{\pi}(s) = \mathbb{E}_{\pi}\left[ G_t \mid S_t = s \right]

2. V与Q区别:地段均价与开店回报

地段均价只告诉你“这片区域大致的行情”。但真正决定你赚不赚钱的,是具体做什么——同一块地,开咖啡店、开书店还是做仓库,回报天差地别。动作价值 Q(s,a) 就是回答:“在状态 s 这个地段上,采取动作 a 这个具体生意,长期能赚多少。”

回到买房场景:V 是“这条街的均价”,Q 是“我开咖啡店能赚多少”。你要做决定时,看的当然不是街均价,而是具体到某个店面的回报预期——所以决策时 Q 更直接。

Qπ(s,a)=Eπ[Gt∣St=s,At=a],Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)Q^{\pi}(s, a) = \mathbb{E}_{\pi}\left[ G_t \mid S_t = s, A_t = a \right], \qquad V^{\pi}(s) = \sum_{a \in A} \pi(a \mid s) Q^{\pi}(s, a)
左边是 Q 的定义:在状态 s 下先固定动作 a,再按策略行动,未来回报的期望。右边是 V 与 Q 的关系:V 其实就是把各个动作的 Q 值,按策略选择的概率做了加权平均。
  1. 条件多了一个动作Q 比 V 多知道一条信息——“我打算这么干”。
    St=s,  At=aS_t = s,\; A_t = a
  2. Q 是动作维度的估值在固定状态和动作下,未来回报的期望,决策时直接看它。
    Qπ(s,a)=Eπ[Gt∣St=s,At=a]Q^{\pi}(s, a) = \mathbb{E}_{\pi}\left[ G_t \mid S_t = s, A_t = a \right]
  3. 策略给动作分配概率π(a|s) 表示在状态 s 下,按策略 π 选择动作 a 的比例。
    π(a∣s)\pi(a \mid s)
  4. V 是 Q 的加权平均把所有动作的 Q 值按策略概率加权求和,得到状态的整体价值。
    Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)V^{\pi}(s) = \sum_{a \in A} \pi(a \mid s) Q^{\pi}(s, a)

3. MDP基础:读懂城市的交通规则

想要给铺面估值,你至少得先懂这座城市的规则:哪些路段通、哪些有红绿灯、人流怎么流动。马尔可夫决策过程(MDP)就是强化学习世界的“城市规则说明书”,用五元组描述:状态集合 S、动作集合 A、转移概率 P、奖励函数 R、折扣因子 γ。

其中最重要的一条规则叫马尔可夫性质:下一个路口长什么样,只取决于你此刻站在哪个路口、往哪条路走,和你昨天怎么绕路毫无关系。正是这条性质,让“站在当前状态就能估值”成为可能。

有了这份“城市规则”,估值师才能算:从这块地出发,按概率加权,平均会流向哪些更值钱的地段。

p(s′,r∣s,a)=Pr⁡(St+1=s′,Rt+1=r∣St=s,At=a)p(s', r \mid s, a) = \Pr(S_{t+1} = s', R_{t+1} = r \mid S_t = s, A_t = a)
转移概率 p 描述“从状态 s 做了动作 a 之后,城市会把我们带到哪个新状态 s'、并给多少奖励”的随机规则。它就像一份城市规划图,标明了每条路上各种情况的概率。
  1. 下一时刻的随机结果从 (s,a) 出发,下一时刻会落到某个新状态并拿到一个奖励。
    St+1=s′,  Rt+1=rS_{t+1} = s',\; R_{t+1} = r
  2. 条件描述“此刻正在做什么”已知当前状态和将要执行的动作。
    St=s,  At=aS_t = s,\; A_t = a
  3. 转移概率给出分布p 函数把“状态+动作”映射到“下一状态+奖励”的概率。
    p(s′,r∣s,a)=Pr⁡(St+1=s′,Rt+1=r∣St=s,At=a)p(s', r \mid s, a) = \Pr(S_{t+1} = s', R_{t+1} = r \mid S_t = s, A_t = a)

4. 贝尔曼方程:估值师的递归算法

一位老练的估值师不会凭空报数,他会说:这块地的价值 = 今年能收到的租金 + 明年这块地(按折现率换算到今天)的价值。这就是贝尔曼方程的核心思想——把当下的价值,拆成“即时奖励”和“未来价值”递归地算。

这个递归式最美妙的地方在于:V(s') 自己也满足同样的拆法,于是可以一层层往下拆,直到终点。它把“仿佛要看穿无限远未来”的难题,变成了一步一步的自我迭代。

这个递归和“复利贴现”如出一辙:店铺价值 = 今年的现金流 + 明年整家店(折现后)的价值。估值不用预知未来,只需要知道“下一步怎么走”,然后把未来交给下一次递归。

Vπ(s)=∑aπ(a∣s)∑s′,rp(s′,r∣s,a)[r+γVπ(s′)]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]
公式的意思是:状态 s 的价值 = 对所有动作按策略权重求和,再对每个动作的所有可能结果按转移概率加权,把“即时奖励 r”加上“折扣后的后继状态价值 γV(s')”。
  1. 对动作加权求和策略 π 会以不同概率选择不同动作,每个动作的贡献都要算进去。
    ∑aπ(a∣s)\sum_{a} \pi(a \mid s)
  2. 对转移结果加权求和做了动作后,可能去向多个后继状态,每个结果的概率用 p 表示。
    ∑s′,rp(s′,r∣s,a)\sum_{s', r} p(s', r \mid s, a)
  3. 递归核心表达式括号里正是“今年租金 + 明年折现价值”,这是整个方程的魂。
    r+γVπ(s′)r + \gamma V^{\pi}(s')

5. 最优值函数:最聪明的经营策略

每个街区都有“最赚钱的经营方式”。如果你在所有状态下都采用最优策略 π\,此时得到的 V\(s) 就是这块地的“理想价值”——在所有可能行动中挑最大的那个。最优动作值函数 Q\*(s,a) 则是“在状态 s 做动作 a,之后每一步都按最优方式继续”的价值。

最优值函数和最优策略是同一枚硬币的两面:只要拿到了 Q\*,策略就变成了“每步选 Q 最大的动作”。这就是贝尔曼最优方程登场的地方。

地段报告摆在你面前:步行街最优解是开奶茶店、老城区最优解是开便利店。Q\* 就是这张“全市最优开店指南”,照着它走,每个路口都知道往哪拐。

Q∗(s,a)=∑s′,rp(s′,r∣s,a)[r+γmax⁡a′Q∗(s′,a′)]Q^{*}(s, a) = \sum_{s', r} p(s', r \mid s, a) \left[ r + \gamma \max_{a'} Q^{*}(s', a') \right]
与普通贝尔曼方程的区别只有一个:对未来的估计不再是“按策略平均”,而是“取所有动作里 Q 值最大那个”。从“我会怎么做”升级为“我应该怎么做”。
  1. 下一步选最好的动作在到达后继状态 s' 后,不再按老策略平均,而是挑 Q 最大的动作。
    max⁡a′Q∗(s′,a′)\max_{a'} Q^{*}(s', a')
  2. 最优点估计放进递归用“最优未来的价值”替代“平均未来的价值”。
    r+γmax⁡a′Q∗(s′,a′)r + \gamma \max_{a'} Q^{*}(s', a')
  3. 对所有随机结果加权转移概率 p 把各种可能的路况按概率汇总,得到期望。
    Q∗(s,a)=∑s′,rp(s′,r∣s,a)[r+γmax⁡a′Q∗(s′,a′)]Q^{*}(s, a) = \sum_{s', r} p(s', r \mid s, a) \left[ r + \gamma \max_{a'} Q^{*}(s', a') \right]

6. 策略与值函数:从估值到决策

有人问:估值表都有了,策略不就是“哪项 Q 高选哪个”吗?对,这就是贪婪策略。但更准确地说,值函数与策略是互相成就的:策略决定了走哪条路,值函数给每条路打分;拿到分数后,策略又可以改进,去走分数更高的路。如此循环,就是策略迭代的核心。

回到投资视角:V 和 Q 是“行情表”,策略是“出手规则”。行情表越准,规则就越狠;规则越狠,实际赚到的越多,反过来又能把行情表修正得更准——这就是强化学习里“评估”与“改进”的良性循环。

aπ(s)=arg⁡max⁡a∈AQπ(s,a)a^{\pi}(s) = \arg\max_{a \in A} Q^{\pi}(s, a)
这个公式是“从值函数到策略”的桥:在状态 s 下,扫描所有候选动作,挑出 Q 值最大的那个动作作为输出。
  1. 列出所有候选动作状态 s 下可做的所有选择都在动作集合 A 中。
    a∈Aa \in A
  2. 逐一比较 Q 值对每个候选动作,查 Q 表得到它的长期回报估计。
    Qπ(s,a)Q^{\pi}(s, a)
  3. 取出最大值对应的动作argmax 不关心最大 Q 是多少,只关心“哪个动作拿到了最大 Q”。
    aπ(s)=arg⁡max⁡a∈AQπ(s,a)a^{\pi}(s) = \arg\max_{a \in A} Q^{\pi}(s, a)

7. Q学习地基:边开店边修正估值

理论估值再漂亮,也得接受现实检验。Q-learning 的思路朴素得可爱:你不需要完整的地图(模型),只要一家店一家店地试。每试一次,你就拿到一条真实反馈:“实际赚了 r,下一块地的最好预期是 γmax Q'”。把这条反馈和原来的估计一对比,差值就是“意外收获”,再按学习率 α 吸收进来。

这就像开店老板的经营日志:上月以为这条街开奶茶店能赚 8 万,实际只赚了 6 万,下个月就把预算调低一点。试得多了,手上的“Q 表”自然就贴近真实行情。

Q(s,a)←Q(s,a)+α[r+γmax⁡a′Q(s′,a′)−Q(s,a)]Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]
这行公式就是 Q-learning 的全部秘密:新的 Q 值 = 旧 Q 值 + 学习率 × TD 误差。TD 误差即“实际观测”与“原有预期”的差距,差距越大,修正越多。
  1. TD 目标真实的反馈:把拿到的即时奖励,加上“下一步的最优折现价值”。
    r+γmax⁡a′Q(s′,a′)r + \gamma \max_{a'} Q(s', a')
  2. TD 误差预期差:目标值减去原先对 (s,a) 的估计,就是这次试错带来的修正量。
    δ=r+γmax⁡a′Q(s′,a′)−Q(s,a)\delta = r + \gamma \max_{a'} Q(s', a') - Q(s, a)
  3. 按学习率吸收修正α 控制修正力度,α 大学得快但容易震荡,α 小则稳而慢。
    Q(s,a)←Q(s,a)+αδQ(s, a) \leftarrow Q(s, a) + \alpha \delta

8. 应用价值:从一条街到一座城

地产估值思维一旦建立,你会发现到处都是“状态—动作—价值”的影子。游戏 AI 里,画面像素是状态,摇杆操作是动作,Q 函数告诉它“这个局面下开枪值不值”;推荐系统里,用户画像和浏览历史拼成状态,推哪条内容是动作,Q 值衡量的是长期留存而不只是眼前点击;机器人导航中,传感器读数构成状态,转向和前进是动作,V 值就像一张地形热力图,指引机器人往“价值高地”移动。

值函数之所以被称为强化学习的“地基”,是因为几乎所有经典算法最后都在回答同一个问题:怎么做才更值。Q-learning 直接学 Q 表;DQN 用神经网络拟合 Q 表;策略梯度虽然直接学策略,但也要靠值函数来评估“这次改动到底好不好”。

你现在掌握的,不只是一堆符号,而是一套通用的思考框架:无论环境多复杂,只要定义了状态、动作、奖励,估值工具就能帮你判断哪一步更划算。这条街的地段报告你已读懂,整座城市的地图,也就徐徐展开了。

AI 应用场景

游戏 AI 的对局估值

阶段:策略决策

解决的问题:传统游戏 AI 依赖大量规则脚本,遇到新关卡就要重写逻辑。用值函数后,AI 自己学会评估“当前局面值多少分、走这步棋值不值”,不需要手写规则。

具体案例:Atari 游戏中的 DQN 用神经网络拟合 Q(s,a),输入屏幕像素,输出每个动作的 Q 值,智能体选 Q 最大的动作玩游戏,最终在多个游戏中超越人类玩家。棋类 AI 也常把 Q 值当作落子搜索的剪枝依据。

推荐系统的长期价值评估

阶段:价值评估

解决的问题:只看点击率是短视的,容易让用户陷入信息茧房。用 V(s) 评估用户当前兴趣状态的长期价值,用 Q(s,a) 预测“推这条内容”的长期收益,可以兼顾短期点击与长期留存。

具体案例:某视频平台把用户近 50 次行为编码成状态向量,Q 值预估推荐某视频后的 7 日留存概率。系统不再追求单次点击最大化,而是用 Q-learning 的思想优化用户 30 日活跃度,结果用户粘性显著提升。

机器人导航的价值热力图

阶段:环境交互

解决的问题:机器人在未知环境中不知道该优先探索哪里。用 V 函数给地图上每个位置打分,相当于生成一张“价值热力图”,引导机器人优先走向高价值区域,避开死胡同。

具体案例:仓储物流机器人把货架位置、电量、任务点编码为状态,Q(s,a) 评估“是否去某个货架取货”的长期效率。相比人工设定的巡逻路线,基于值函数的决策策略让整体拣货效率提升约 20%。

Python 演示

python52 行
"""一维走廊 Q-learning:智能体从最左出发,走到最右终点获得奖励。"""import random  class CorridorAgent:    def __init__(self, n_states=6, gamma=0.9, alpha=0.1):        self.n_states = n_states        self.gamma = gamma        self.alpha = alpha        self.q_table = [[0.0, 0.0] for _ in range(n_states)]     def choose_action(self, state, epsilon=0.1):        if random.random() < epsilon:            return random.randint(0, 1)        if self.q_table[state][0] >= self.q_table[state][1]:            return 0        return 1     def step(self, state, action):        if action == 0:            nxt = max(0, state - 1)        else:            nxt = min(self.n_states - 1, state + 1)        reward = 1.0 if nxt == self.n_states - 1 and nxt != state else 0.0        return nxt, reward     def update(self, state, action, reward, nxt):        td_target = reward + self.gamma * max(self.q_table[nxt])        self.q_table[state][action] += self.alpha * (            td_target - self.q_table[state][action]        )     def train(self, episodes=300, epsilon=0.1):        for _ in range(episodes):            state = 0            while state != self.n_states - 1:                action = self.choose_action(state, epsilon)                nxt, reward = self.step(state, action)                self.update(state, action, reward, nxt)                state = nxt  def main():    agent = CorridorAgent()    agent.train()    print("训练后的 Q 表(0=向左, 1=向右):")    for s in range(agent.n_states):        print("状态%d: 左=%.3f 右=%.3f" % (s, agent.q_table[s][0], agent.q_table[s][1]))  if __name__ == "__main__":    main()
目的:在一维走廊环境中用 Q-learning 训练智能体,让它学会从最左端走到最右端,最终打印出每个状态下“向左/向右”两个动作的 Q 值。
  1. self.q_table = [[0.0, 0.0] for _ in range(n_states)]初始化 Q 表,每个状态存两个动作的估值,初始都猜 0。
  2. if random.random() < epsilon: return random.randint(0, 1)以 ε 概率随机探索,保证不困在局部最优。
  3. td_target = reward + self.gamma * max(self.q_table[nxt])算出 TD 目标:本次奖励 + 下一步最优 Q 的折现。
  4. self.q_table[state][action] += self.alpha * (td_target - self.q_table[state][action])用 TD 误差修正旧估计,这是 Q-learning 的心脏。
  5. while state != self.n_states - 1:每局从起点出发,一直走到终点才结束。

常见误区

误区“V 和 Q 不都是评估好坏的吗?我觉得差不多,随便用哪个都行。”

正解用买房打比方:V 是“这块地的均价”,Q 是“在这块地上开咖啡店的投资回报”。Q 比 V 多一个动作维度,是决策的直接依据。V 是把所有动作的 Q 按策略概率加权平均后的结果,两者视角不同,不能混用。

为何常见:第一次接触时容易被“都是价值”的表面相似迷惑,忽略了 Q 多了一个“具体动作”的条件。

误区“V(s) 不就是 Q(s,a) 里最大的那个吗?所以 V(s) = max_a Q(s,a)。”

正解只有在最优策略下,V\(s) = max_a Q\(s,a) 才成立。一般策略下,V^π(s) 是 π 对所有动作 Q 值的加权平均,不是 max。如果策略是“50% 概率开咖啡店、50% 概率开书店”,那 V 是两个回报的平均数,而不是较大的那个。

为何常见:因为最优策略的结论太漂亮,学习者容易把“最优时成立”错当成“一切时候成立”。

误区“奖励就是把每一步的都加起来呗,第 100 步的 1 分和第 1 步的 1 分不是一样吗?”

正解γ 小于 1 意味着未来奖励会按幂次衰减。如果 γ=1 且任务无限长,回报会发散到无穷大,估值失去意义。γ 越接近 1,智能体越“有远见”;γ 越小,越“近视”。和现实一样,明天的 100 块没有今天的 100 块值钱。

为何常见:直觉上认为“奖励越多越好”,忽略了时间顺序带来的不确定性和资金成本。

误区“Q-learning 是无模型算法,所以我不需要知道环境长什么样,连奖励都不用定义。”

正解无模型指的是不需要显式的转移概率表 p(s'|s,a),但智能体仍然必须与环境交互采样,拿到真实的 (s, a, r, s') 数据,Q 值才有修正的依据。相当于你开店前不知道街坊邻居的精准画像,但必须真的开店试错,才能收集到真实数据。

为何常见:“无模型”这个说法听起来像“不需要环境”,其实它只是省掉了建模这一步,交互采样一步都不能少。

面试题

Q1. V(s)与Q(s,a)的核心区别是什么?

单选题 · easy

  • A.V评估动作,Q评估状态
  • B.V和Q的含义相同
  • C.V看状态,Q看状态和动作← 正确答案
  • D.V只看眼前的奖励

答案:C。V(s) 只依赖状态,评估“站在这里值多少”;Q(s,a) 同时依赖状态和动作,评估“在这里做某件事值多少”。就像地段均价 vs 开咖啡店的回报,Q 比 V 多一个动作维度。

Q2. 折扣因子γ在回报公式中的作用是什么?

单选题 · easy

  • A.让远期奖励按γ的幂次衰减← 正确答案
  • B.把所有奖励都放大γ倍
  • C.控制动作选择的随机性
  • D.决定状态转移的方向

答案:A。回报公式里第 k 步奖励要乘 γ^k,γ 在 0~1 之间时,越远的奖励缩水越厉害。它刻画了“未来的钱不如现在的钱值钱”,γ 越大智能体越有远见。

Q3. 马尔可夫性质的核心含义是什么?

单选题 · easy

  • A.状态的变化完全连续
  • B.奖励只由动作决定
  • C.未来依赖全部历史
  • D.未来只依赖当前状态← 正确答案

答案:D。马尔可夫性质保证:下一个状态只由当前状态和动作决定,和历史轨迹无关。这正是 V(s) 和 Q(s,a) 能“只看当前状态就估值”的前提,否则估值还需要带上全部历史。

Q4. 贝尔曼方程把当前价值拆成了哪两部分?

单选题 · mid

  • A.历史奖励的不断累加
  • B.即时奖励加折扣未来价值← 正确答案
  • C.状态转移概率的乘积
  • D.动作空间中动作的个数

答案:B。贝尔曼方程的灵魂是 r + γV(s'):当前价值 = 这次能拿到的奖励 + 折现后的后继状态价值。它把“看穿未来”变成“只算一步 + 递归”,是动态规划的基础。

Q5. V(s)与Q(s,a)的数学关系是什么?

单选题 · mid

  • A.V是对Q按策略加权平均← 正确答案
  • B.Q是对V按状态加权平均
  • C.V恒等于最大的Q值
  • D.两者之间没有关系

答案:A。V^π(s) = Σ_a π(a|s) Q^π(s,a),即按策略概率把所有动作的 Q 值加权求和。它相当于地段均价与各店面回报的关系:均价是所有经营方式回报的加权平均。

Q6. Q-learning更新中最关键的操作是什么?

单选题 · mid

  • A.把当前的Q值直接清零
  • B.随机无规律调整Q值
  • C.以TD目标为基准更新Q值← 正确答案
  • D.让Q值等于即时奖励

答案:C。Q-learning 用 TD 目标 r + γmax Q(s',a') 作为修正基准,让 Q(s,a) 向目标靠拢。它既用了真实奖励,又用了下一步的最优估计,这正是它能不断逼近真实 Q\* 的原因。

Q7. 贝尔曼最优方程中 max 的含义是什么?

单选题 · hard

  • A.最优动作的期望价值← 正确答案
  • B.所有动作价值的平均
  • C.转移概率中的最大值
  • D.即时奖励的最大值

答案:A。max_a' Q\*(s',a') 表示进入后继状态后,选取所有动作中 Q 值最大的那个,即“每一步都按最优方式行动”的预期。它把“按策略平均”升级为“取最优”,是普通贝尔曼方程到最优方程的关键变化。

Q8. 下列哪些属于值函数在强化学习中的用途?

多选题 · mid

  • A.评估状态和动作的好坏← 正确答案
  • B.为策略选择提供依据← 正确答案
  • C.作为TD学习的更新目标← 正确答案
  • D.直接替代整个神经网络

答案:ABC。值函数用于估值、指导策略、充当 TD 目标。但“替代神经网络”是错的——DQN 恰恰相反,是用神经网络来拟合值函数。值函数是“被拟合的对象”,不是神经网络的替代品。

Q9. 关于探索与利用的权衡,正确的做法有哪些?

多选题 · mid

  • A.以ε概率随机探索动作← 正确答案
  • B.以1-ε概率选择最优动作← 正确答案
  • C.总是选择完全随机的动作
  • D.总是选择当前最优的动作

答案:AB。ε-greedy 策略以 ε 概率随机探索、以 1-ε 概率利用当前最优。C 是纯探索,D 是纯利用,两者都没有权衡。只有边探索边利用,才能既收集新信息又不浪费已有知识。

Q10. 关于Q-learning,下列说法正确的有哪些?

多选题 · hard

  • A.学习目标是Q最优函数← 正确答案
  • B.属于离线策略的方法← 正确答案
  • C.更新中使用max估计未来← 正确答案
  • D.不需要折扣因子γ

答案:ABC。Q-learning 学的是 Q\*,更新用 max 意味着“假设未来都选最优动作”,因此属于离线策略方法。折扣因子 γ 在 TD 目标中必不可少,没有它远期回报会发散,所以 D 错误。