本节摘要:状态空间 10×10=100 可 Q 表;1000×1000=10⁶ 或连续坐标则表格不可行。线性/神经网络 Q(s,a;θ) 参数共享、泛化到未见状态。非线性逼近可能不稳定。
存储:|S|×|A| 个浮点——Atari 像素状态空间天文数字。
样本:每 (s,a) 需多次访问才准;相似状态不共享信息。
泛化:未见 s 的 Q 无定义。
| 状态规模 | 表格 | 函数近似 |
|---|---|---|
| 100 | 可行 | 过度 |
| 10⁶+ | 不可行 | 必需 |
| 连续 | 需离散化 | NN 直接吃向量/图像 |
线性:Q(s,a)=w^T φ(s,a),φ 为手工特征。
神经网络:Q(s,a;θ) 或输入 s 输出 |A| 维 Q 值(DQN 常用)。
相似状态特征接近 → 更新 w/θ 时邻近状态 Q 一起动 → 泛化。

⚠️ 常见坑:用 NN 做 Q-learning 无 replay/target——训练常发散(Moving Target 问题)。
💡 关键直觉:Deep RL = RL 算法 + 可微函数近似(多为 NN)。
函数近似的最大吸引力是泛化——参数共享让相似状态共享知识,不用为每个状态单独攒样本。这里把"收益"和"代价"都摊开讲,并给一个计算存储瓶颈的具体例子。
Q 表的内存账: 一个棋盘游戏,离散格子 100×100 = 10^4 个状态,4 个动作 Q 表 = 10^4 × 4 个浮点 ≈ 320KB —— 表格还行 同一游戏换成连续坐标(浮点数 x,y):状态空间"无穷大" Q 表需要无限个格子 —— 必须函数近似 Atari 游戏像素输入(210×160×3 灰度帧): 直接枚举状态 = 天文数字(远超宇宙原子数)—— 只能近似
泛化为什么加速学习:表格法里状态 S1 学到的东西对相邻状态 S2 毫无帮助;而神经网络里,S1 和 S2 的特征向量接近,更新 θ 时两者对应的输出会被"连带"修正。于是"见过一个状态的样本"变成了"对一簇相似状态都有效",数据利用率成倍提升。这也是"相似状态特征接近 → 邻近状态一起动"这句话的工程含义。
逼近价值的独特麻烦:用函数近似学 Q 时,"数据分布"和"目标"都在动态变化——策略在变(分布变),TD 目标 R+γQ(s',·;θ) 里的 Q 也在变(目标变,即 moving target 问题)。这跟监督学习"固定数据集、固定标签"完全不同,是深度 RL 训练不稳定的根源。第 5.2 节的经验回放与目标网络,本质上就是针对这两个不稳定的"工程稳压器"。
线性近似值得先掌握:Q(s,a)=w·φ(s,a) 的线性模型虽然表达力弱,但收敛性质好、训练简单,是理解"特征工程"的好入口——只要特征 φ 设计得好(编码位置、距离、方向等关键信息),线性模型在不少问题上就能取得不错效果。神经网络只是在特征表达上更强(自动从原始输入学特征,CNN 从像素学),代价是稳定性差、要配稳定技巧。从线性到神经网络,变的是表达力,不变的是"参数共享带来泛化、参数逼近带来不稳定"这一对trade-off。
把"特征工程"落到一个具体任务上,体会函数近似的收益与代价。任务:网格寻宝(20×20),目标是学会从任意起点走到宝藏。若用表格法,Q 表是 400 状态 ×4 动作 = 1600 个值,可行但每个状态都要积累访问样本;若改用特征近似,请先设计三个手工特征,例如"到宝藏的曼哈顿距离""当前格子是否在宝藏所在行/列""上一步的动作方向"。
写完后回答三个问题。第一,这几个特征能区分"关键情况"吗?——比如距离越近价值应该越高,所以距离特征是有效的;但如果两个状态距离相同、路径不同,仅靠这三个特征就无法区分它们,这就是"特征表达力不足"导致的价值近似误差。第二,用线性模型 Q(s,a)=w·φ(s,a) 的话,每个动作需要一组权重,4 个动作就是 4 组,对比 1600 个表格值,参数少了多少?——显著减少,这正是泛化省下的存储与样本成本。第三,如果你把格子坐标直接当特征(不设计距离),线性模型还能学好吗?——大概率不能,因为"坐标与价值"不是线性关系,这解释了为什么神经网络(非线性)能自动学特征而线性模型依赖手工设计。
最后做个思想实验:把格子数从 20×20 扩到 1000×1000,表格法需要 100 万个状态(Q 表 400 万个值),而函数近似的参数量不变——这就是"状态爆炸时表格法不可行、必须近似"的直观证据。做完这个练习,"函数近似动机"就不再是口号,而是你能算清账的具体工程决策。