《深度强化学习》全书总复习《深度强化学习》全书总复习逐项覆盖权威目录,以公式、轨迹、交互实验和失败对照重建深度强化学习证据链。为什么先冻结环境、轨迹与参数版本 、、、、、共同构成本页坐标。用环境、数据、目标、优化、策略版本和评价六本账串联十九章,要求每个算法都能回到同一条可重放轨迹。 阅读时把环境状态、采样数据、学习目标、优化参数和评价策略分成五份账。每一条转移至少保存状态、动作、奖励、下一状态、终止与截断标记、行为概率和采集时的参数版本;每一次更新保存目标值、损失、梯度范数、更新前后参数摘要和随机种子。这样才能判断改进来自正确算法,而不是信息泄漏、状态污染或评价仍在学习。 数学骨架 τ=(S0,A0,R1,…,ST)\tau=(S_0,A_0,R_1,\ldots,S_T)τ=(S0,A0,R1,…,ST) yt=Rt+1+γ(1−dt)bootstrap(St+1)y_t=R_{t+1}+\gamma(1-d_t)\operatorname{bootstrap}(S_{t+1})yt=Rt+1+γ(1−dt)bootstrap(St+1) θk+1=update(θk,Dk,yk)\theta_{k+1}=\operatorname{update}(\theta_k,D_k,y_k)θk+1=update(θk,Dk,yk) claim⇒trace+counterexample+replay\text{claim}\Rightarrow\text{trace}+\text{counterexample}+\text{replay}claim⇒trace+counterexample+replay 公式必须落实为shape与版本合同。奖励是标量,动作可以是离散索引或连续向量,终止转移的未来项固定为零;行为策略负责产生数据,目标策略负责定义学习目标,在线参数与冻结参数不能靠变量名猜测。先用一个两状态、两动作或两智能体样例手算,再运行批量训练。 最小实现骨架 def record_transition(env, policy, observation): action, logp, policy_version = policy.sample(observation) next_observation, reward, terminated, truncated, info = env.step(action) return { "observation": observation, "action": action, "reward": float(reward), "next_observation": next_observation, "terminated": bool(terminated), "truncated": bool(truncated), "behavior_logp": float(logp), "policy_version": policy_version, } def one_step_target(transition, bootstrap_value, gamma): future = 0.0 if transition["terminated"] else bootstrap_value return transition["reward"] + gamma * future def audit_update(before, target, loss, gradient, after): assert target.isfinite().all() assert loss.isfinite().all() assert gradient.isfinite().all() return {"before": before.digest(), "target": target.detach(), "grad_norm": gradient.norm(), "after": after.digest()} 这三段代码不替代具体算法,而是固定共同边界:环境只产生事实,目标函数只读取冻结转移,优化器只在审计通过后更新。章节中的DQN、SARSA、策略梯度、A3C、MADDPG或MCTS都必须映射回这套生命周期。 常见失败与回退 本章回顾 用环境、数据、目标、优化、策略版本和评价六本账串联十九章,要求每个算法都能回到同一条可重放轨迹。 最终掌握标准不是复述算法名,而是能说明每个量来自哪里、由哪版策略产生、在哪个边界归零、如何手算,以及故障样本应在哪一步被发现。通过标准是:随机抽取价值学习、策略学习、多智能体和应用各一章,均能手算首个目标、复现实验、注入单一故障并定位第一处证据分叉。 前后导航 附录B 习题答案 复习本章(6 题)下一章 →《深度强化学习》权威学习地图讨论评论区加载中…