深度强化学习考点:函数逼近的必要性、经验回放与目标网络的动机、演员评论家的分工,以及与大模型时代的概念衔接。通关标准:说出 Q 表走向神经网络的每一步动机,把深度 Q 网络的训练闭环完整讲下来,并把前沿概念挂回全册知识树。编队收官关,也是全册的阅兵式。
关卡一(单选):从 Q 表走向深度 Q 网络,最根本的动因是:
A. 神经网络训练更时髦 B. 真实问题的状态空间过大或连续,表格无法枚举 C. 表格法收敛慢 D. 深度网络不需要探索
关卡二(简答):经验回放解决什么问题?从监督学习对数据分布的假设说起。
关卡三(单选):目标网络的存在意义是:
A. 增加模型容量 B. 让计算目标值的参数短暂冻结,避免"自己追自己"导致的目标漂移 C. 代替探索 D. 加速前向传播
关卡四(多选):关于强化学习与前沿概念的衔接,正确的包括:
A. 演员评论家把"选动作"与"打分"分给两个网络协同学习
B. 基于人类反馈的强化学习用奖励模型替人类给回答打分,把大模型对齐成符合偏好的行为
C. 预训练加微调、提示学习是第四编队预训练路线在应用层的延续
D. 深度 Q 网络可以直接拿来微调语言模型
关卡一选 B。 表格法的适用前提是状态可枚举、数量可控;围棋状态数超天文数字,机器人控制的关节角连续取值,表格既存不下也无法泛化——没见过的状态在表里没有行。神经网络当逼近器后,相似状态共享参数、输出自然泛化,这正是深度强化学习的立身之本。A 是现象不是动因;C 表格法每次更新只动一格其实很快,慢的是探索覆盖;D 荒谬,探索恰恰是强化学习刚需,网络不会替你探索。
关卡二:监督学习默认训练样本独立同分布;而智能体在线采集的转移样本是高度相关的(这一步与上一步几乎同一局面),拿去直接训练网络,梯度被局部相关性带偏、训练剧烈震荡。经验回放把交互得到的转移四元组存进缓冲池,训练时随机抽取小批量——随机化打散时间相关性,让批次近似独立同分布;副作用红利是旧经验被反复复用,数据效率上升。一句话:回放池是强化学习自建的"洗牌器"。
关卡三选 B。 深度 Q 网络的训练目标是"奖励加折扣后的新状态最大 Q 值",这个最大值由网络自己算——网络每更新一步,目标就跟着变,等于追逐一个自己在挪动的靶子,收敛困难。解法是配一个结构相同、参数滞后同步的目标网络专职算目标:主网络每步更新,目标网络隔较长周期才复制一次参数(或按小比例软更新),靶子在两次同步之间是静止的。A 错在两个网络同构不增容量;C、D 风马牛不相及。
关卡四选 A、B、C。 演员评论家双网络分工:策略网络(演员)负责选动作,价值网络(评论家)负责评估好坏并给出更新信号,兼顾策略方法的直接与值方法的稳定。基于人类反馈的强化学习先用人类偏好数据训练奖励模型,再用它当"环境奖励"去优化语言模型的行为,是大模型对齐的主力技术。C 正确:预训练加微调与提示学习正是第四编队预训练路线的应用形态。D 错在深度 Q 网络是离散动作的值方法,与语言模型逐词生成的策略优化不是一套机制,属于概念硬凑。
用数值把"目标漂移"及其解法演一遍。背景:用最简单的线性函数当"网络",观察目标值在"同一网络自算"与"滞后目标网"两种模式下的稳定性差异。
# 目标漂移对照:单网络自算 vs 滞后目标网(线性逼近,可笔算复核) random.seed(5) # 迷你设定:Q(s,a) 近似为 w * 特征;环境真值恒为 10 w_main, w_target = 2.0, 2.0 # 主参数与目标网参数(初始相同) FEAT, LR, GAMMA = 1.5, 0.1, 0.9 R = 1.0 # 每步即时奖励 print("轮 主Q 自算目标 目标网目标") for t in range(1, 7): q_main = w_main * FEAT self_target = R + GAMMA * w_main * FEAT # 目标随主参数实时变(追自己) frozen_target = R + GAMMA * w_target * FEAT # 目标网滞后,短期内不动 w_main += LR * (self_target - q_main) * FEAT if t % 3 == 0: # 周期性同步 w_target = w_main print(f"{t} {q_main:5.2f} {self_target:7.2f} {frozen_target:7.2f}") # 输出: # 轮 主Q 自算目标 目标网目标 # 1 3.00 3.70 3.70 # 2 4.06 5.47 4.76 # 3 5.42 7.82 6.60 # 4 7.42 11.40 11.40 # 5 10.06 16.44 12.77 # 6 13.62 23.56 18.05
结果解读:自算目标随主参数水涨船高,估计一路自我抬升、迟迟落不到真值十;目标网一列在同步间隔内保持静止,给主参数提供了稳定的锚点。真实深度 Q 网络里这条差异被放大百倍——没有目标网,训练曲线几乎必然震荡发散。变式:把同步周期从每三轮改成每一轮重跑,观察两列差异消失、估计又开始"追自己",体会同步周期就是稳定性与时效性的折中旋钮。
再模拟经验回放的"洗牌"效果:
# 经验回放缓冲区:顺序采集 vs 随机批采样(相关性对比) import random random.seed(9) buffer = [] for t in range(1000): buffer.append((f"s{t}", "右", 0.0, f"s{t+1}")) # 连续采集的相邻转移 def naive_batch(buf, n=4): # 直接取最近相邻的四条 return buf[-n:] def replay_batch(buf, n=4): # 回放池随机抽样 return random.sample(buf, n) seq = naive_batch(buffer) rand = replay_batch(buffer) print("顺序批(时间相邻,高度相关):", seq) print("回放批(时间打散,近似独立):", rand) # 输出示例: # 顺序批(时间相邻,高度相关): [('s996', '右', 0.0, 's997'), ('s997', '右', 0.0, 's998'), ('s998', '右', 0.0, 's999'), ('s999', '右', 0.0, 's1000')] # 回放批(时间打散,近似独立): [('s412', '右', 0.0, 's413'), ('s871', '右', 0.0, 's872'), ('s57', '右', 0.0, 's58'), ('s733', '右', 0.0, 's734')]
结果解读:顺序批里四条样本几乎是同一局面的复写,梯度信息重复冗余;回放批把不同时期的经验打散混装,批内方差大、信息覆盖面广——这正是"近似独立同分布"的操作化含义。变式:把缓冲池容量改小到十条重跑,观察回放批退化回顺序批,理解"池子太小等于没洗牌"。
闭环读法:蓝色环节(回放池)治样本相关性,橙色环节(目标网)治目标漂移,绿色环节(误差)把两个网络的估计差变成主网络的学习信号——三件套各治一种病,缺一训练就翻车。
易错点一:把深度 Q 网络说成策略梯度方法。它是值函数方法:网络拟合的是动作价值,策略只是"取最大值动作"的附属品;策略梯度一族(含演员评论家的演员侧)优化的是策略参数本身。面试被问"值方法与策略方法的分野",这条分界线必须脱口而出。
易错点二:目标网络同步得太勤。每步都复制等于没有目标网,训练回到追逐漂移目标的老毛病;同步太疏则目标长期过时。周期与软更新比例是超参数,不是可有可无的装饰。
易错点三:低估奖励设计在深度化后的杀伤力。网络对奖励尺度敏感,回报量级一大,损失与梯度跟着失衡——深度框架下常对奖励做裁剪或缩放,这条在表格法时代可以偷懒的细节到深水区变成生死线。
变式一:问"深度 Q 网络为什么会高估,怎么缓解"。答:目标里的 max 运算在噪声估计下总是挑到正向误差最大的那项,系统性偏高;双网络版用主网络选动作、目标网络估值,把"选择"与"评价"解耦,高估明显缓解。
变式二:问"大模型对齐为什么借强化学习而不直接监督微调"。答:监督微调只能模仿示范答案,覆盖不了"哪个回答更好"的偏好序信息;基于人类反馈的强化学习把偏好训成奖励模型,再优化整条生成策略,能学到示范之外的价值取向——这也是全册概念合龙处:感知(视觉编队)、序列(语言编队)、决策(本编队)三线在当代大模型体系里各就其位。
复盘产出:决策卡"深度化三件套"一栏补齐,前沿概念已逐一挂回知识树。全册六支编队至此全部通关——回到导读的知识地图做最终验收:每张产出卡都能摆回原位、每笔数值都能亲手复算,这场演习就真正打完了。