\documentclass[a4paper]{article}
\usepackage[fontset=fandol]{ctex}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{etoolbox}
\usepackage{subcaption}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}
\newtcolorbox{knowledgebox}[1]{enhanced, colback=blue!5!white, colframe=blue!75!black, colbacktitle=blue!75!black, coltitle=white, fonttitle=\bfseries, title=#1, boxrule=1pt, sharp corners}
\newtcolorbox{importantbox}[1]{enhanced, colback=yellow!10!white, colframe=yellow!80!black, colbacktitle=yellow!80!black, coltitle=black, fonttitle=\bfseries, title=#1, sharp corners}
\newtcolorbox{warningbox}[1]{enhanced, colback=red!5!white, colframe=red!75!black, colbacktitle=red!75!black, coltitle=white, fonttitle=\bfseries, title=#1, sharp corners}
\lstset{basicstyle=\ttfamily\small, keywordstyle=\color{blue}, stringstyle=\color{red!60!black}, commentstyle=\color{green!60!black}, breaklines=true, frame=single, numbers=left, numberstyle=\tiny\color{gray}, captionpos=b, extendedchars=false}
\newcommand{\notetitle}{CS224R Lecture 6: Q-Learning}
\newcommand{\noteauthors}{基于公开课程资料整理}
\newcommand{\notedate}{2025 年春季}
\newcommand{\videochannel}{Stanford Online}
\newcommand{\videopublishdate}{2025-04}
\newcommand{\videoduration}{约 80 分钟}
\newcommand{\videourl}{https://cs224r.stanford.edu/spring\_2025/}
\newcommand{\videocoverpath}{cover.jpg}
\newcommand{\repourl}{https://github.com/hqhq1025/ai-course-notes}

% Footer with repo info
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyfoot[R]{\footnotesize\color{gray}\href{\repourl}{AI Course Notes}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}
\begin{titlepage}
\centering
{\Large 课程笔记\par}\vspace{1.2cm}
{\huge\bfseries \notetitle\par}\vspace{0.8cm}
{\large \noteauthors\par}\vspace{0.3cm}
{\large \notedate\par}\vspace{1.1cm}
\ifdefempty{\videocoverpath}{{\small 封面图未提供。\par}}{\includegraphics[width=0.82\textwidth,height=0.45\textheight,keepaspectratio]{\videocoverpath}\par}
\vfill
\begin{tcolorbox}[width=0.9\textwidth, colback=black!2!white, colframe=black!60, sharp corners]
\textbf{视频作者/频道}：\videochannel\par
\textbf{发布日期}：\videopublishdate\par
\textbf{视频时长}：\videoduration\par
\textbf{讲者}：Chelsea Finn\par
\textbf{课程主页}：\href{https://cs224r.stanford.edu/spring_2025/}{cs224r.stanford.edu}\par
\textbf{项目主页}：\href{\repourl}{\nolinkurl{\repourl}}\par
\end{tcolorbox}
\end{titlepage}
\tableofcontents
\newpage

\section{从 Actor-Critic 到纯 Value-Based 方法}

前几讲介绍了 actor-critic 方法：同时维护策略（actor）和价值函数（critic）。Q-Learning 走得更远——\textbf{完全去掉显式策略}，只学习 Q 函数，然后从 Q 函数隐式地派生策略。

\begin{knowledgebox}{Value-Based vs. Actor-Critic}
\begin{itemize}
    \item \textbf{Actor-Critic}：同时学习策略 $\pi_\theta$ 和价值函数 $\hat{V}$ 或 $\hat{Q}$。
    \item \textbf{Value-Based (Q-Learning)}：只学习最优 Q 函数 $Q^*$，策略隐式为 $\pi(s) = \arg\max_a Q^*(s, a)$。
\end{itemize}
\end{knowledgebox}

\subsection{本章小结}

Q-Learning 是一种纯 value-based 方法，不需要显式的策略网络。

\section{Q-Learning 基础}

\subsection{最优 Q 函数}

\begin{importantbox}{Bellman 最优方程}
最优 Q 函数 $Q^*$ 满足：
$$Q^*(s, a) = r(s, a) + \gamma \max_{a'} Q^*(s', a')$$

关键性质：$Q^*$ 对应的策略 $\pi^*(s) = \arg\max_a Q^*(s, a)$ 是所有策略中最优的。
\end{importantbox}

与 actor-critic 中拟合 $Q^\pi$（当前策略的 Q 函数）不同，Q-Learning 直接拟合 $Q^*$（最优策略的 Q 函数），使用 max 而不是 $\mathbb{E}_{a' \sim \pi}$。

\subsection{DQN 算法}

Deep Q-Network (DQN) 使用深度神经网络来参数化 $Q_\phi(s, a)$：

$$\min_\phi \sum_{(s,a,r,s') \in \mathcal{B}} \left\| Q_\phi(s, a) - \left(r + \gamma \max_{a'} Q_{\phi'}(s', a')\right) \right\|^2$$

\begin{importantbox}{DQN 的关键技巧}
\begin{itemize}
    \item \textbf{Replay Buffer}：存储所有历史转移，随机采样来打破数据相关性。
    \item \textbf{Target Network}：使用延迟更新的 $Q_{\phi'}$ 计算 TD target，避免"自己追自己"的不稳定。
    \item \textbf{$\epsilon$-Greedy 探索}：以概率 $\epsilon$ 随机选择动作，否则选 $\arg\max_a Q(s,a)$。
\end{itemize}
\end{importantbox}

\subsection{本章小结}
 
Q-Learning 通过拟合最优 Q 函数来间接获得最优策略。DQN 将 Q-Learning 扩展到高维状态空间，replay buffer 和 target network 是关键的稳定化技巧。

\section{数据采集与 Replay Buffer 管理}

\subsection{好数据塑造通用性}

Q-Learning 是典型的 off-policy 方法，训练过程中可重用历史转移，因此数据质量直接决定效果。

\begin{importantbox}{数据的三维质量框架}
\begin{enumerate}
    \item \textbf{Coverage}：状态-动作对是否遍布整个训练分布。
    \item \textbf{Freshness}：旧数据可能已经过时，尤其当策略迭代很快时。
    \item \textbf{Signal-to-Noise}：奖励与下一状态之间的因果链是否足够清晰。
\end{enumerate}
\end{importantbox}

\begin{figure}[H]
\centering
\includegraphics[width=0.86\textwidth,page=1]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Replay buffer 抽样的分布偏移与纠正策略}
\end{figure}

\subsection{优先经验回放与分布修正}

优先经验回放（PER）根据 TD Error 分配采样概率，使训练更多聚焦于高价值/高误差样本。修正方法包括：

\begin{itemize}
    \item importance sampling weight 用以抵消非均匀采样
    \item alpha、beta 超参数控制采样与修正的强度
\end{itemize}

\begin{knowledgebox}{Replay Buffer 的工程实践提示}
1. 定期清理过旧元素以防止“冷启动”偏移。 2. 保持 buffer size 在百万级别以平衡样本多样性。 3. 为不同任务维护多个 buffer（exploration vs. demonstration）。
\end{knowledgebox}

\subsection{案例：Atari Replay 抽样流程}

以经典 Atari Q-Learning 为例，训练流水线可简化为以下步骤：

\begin{enumerate}
    \item 通过 epsilon-greedy 收集原始 transition，插入 `online buffer`。
    \item 每 1k steps 用 prioritized sampling 生成 mini-batch，同时记录 TD error distribution。
    \item 将 TD error 作曲线可视化，若长尾方向持续偏移，触发 `replay augmentation`（#32, #64 sampling）。
    \item 定期将 high-variance batch 提前放入 `high-priority buffer` 供评估与 debugging。
\end{enumerate}

\begin{importantbox}{Replay 监控 checklist}
\begin{itemize}
    \item 记录 replay hit ratio，确保采样重用率在 70-95%。
    \item `TD error` 上升时自动增加 `beta` 以增强 importance sampling 校正。
    \item 将 human-verified failure transitions 复制到 separate buffer，方便 later inspection。
\end{itemize}
\end{importantbox}

\subsection{本章小结}

Q-Learning 的 off-policy 特性让 replay buffer 成为性能发动机，采样策略和数据质量直接决定最终泛化能力。

\section{连续动作空间的挑战}

DQN 原始形式只适用于\textbf{离散}动作空间（网络输出每个动作的 Q 值，然后取 argmax）。对于连续动作空间，$\max_a Q(s,a)$ 本身就是一个优化问题。

解决方案包括：
\begin{enumerate}
    \item \textbf{离散化}：将连续空间离散化，但维度诅咒严重。
    \item \textbf{采样}：随机采样多个动作，取 Q 值最大的。
    \item \textbf{学习一个 actor}：回到 actor-critic 框架（如 SAC）。
    \item \textbf{DDPG}：训练一个确定性策略网络 $\mu_\theta(s) = \arg\max_a Q(s,a)$。
\end{enumerate}

\begin{warningbox}{Q-Learning 在连续空间的困难}
纯 Q-Learning 在连续动作空间中需要解决内层优化问题 $\max_a Q(s,a)$，这在高维空间中计算代价很大。这也是为什么连续控制任务中 actor-critic 方法（如 SAC）通常比纯 Q-learning 更受欢迎。
\end{warningbox}

\subsection{本章小结}
 
Q-Learning 在离散动作空间中自然高效，但在连续动作空间中需要额外的技巧或回归到 actor-critic 方法。

\section{稳定化与正则化策略}

\subsection{Bootstrapping 与梯度归一}

Bootstrapping 将网络输出与自身目标绑定，容易引发梯度爆炸。实践中常用梯度裁剪和归一化来控制。

\begin{importantbox}{稳定技巧速查}
\begin{itemize}
    \item 梯度裁剪到 1.0，避免更新过大导致发散。
    \item Layer normalization 和 weight decay 控制输出范围。
    \item Double Q 的动作选择与估值拆分也属于稳定策略。
\end{itemize}
\end{importantbox}

\subsection{奖励塑形与行为规范}

在高维任务中，直接使用 reward 会产生高方差。可以添加 shaping term 或 entropy penalty 平滑 learning signal。

\begin{warningbox}{奖励塑形的陷阱}
shaping term 必须是 potential-based，否则可能改变最优策略；添加 penalty 也不能让 Q 值无限增大。
\end{warningbox}

\subsection{动作约束与输出裁剪}

为了避免 Q 函数输出漂移，可采用 clipping 与 output constraint：

\begin{itemize}
    \item 将 TD target 限制在 observed reward range ± margin，防止估值爆炸。
    \item 引入 Q regularization（如 L2 shrinkage toward previous target）使更新更平滑。
    \item 对 action 采样加噪后 clamp，保证 $\arg\max_a Q(s,a)$ 不会落入未见区域。
\end{itemize}

\subsection{本章小结}

稳定化需要同时从梯度信号和行为信号两个方向着手，避免值函数爆炸与策略漂移。

\section{Double Q-Learning 与过估计问题}

\subsection{过估计偏差}

$$\max_{a'} Q_\phi(s', a') \geq Q^*(s', \pi^*(s'))$$

取 max 操作会系统性地高估 Q 值，因为它选择的是\textbf{噪声最大的方向}。

\subsection{Double DQN}

使用当前网络选择动作，但用 target 网络评估：
$$y = r + \gamma Q_{\phi'}\left(s', \arg\max_{a'} Q_\phi(s', a')\right)$$

这在一定程度上缓解了过估计问题。

\subsection{本章小结}

Q-Learning 有系统性的过估计偏差。Double Q-Learning 通过分离动作选择和动作评估来缓解这一问题。

\section{评估、治理与部署}

\subsection{多层评估矩阵}

一个完整的评估流程应包含自动 benchmark、trajectory review 和 stress test：

\begin{itemize}
    \item `score`、`TD error`、`episode length` 等数值指标
    \item 手动审阅 failure trajectory / reward hack
    \item 噪声注入、belief shift、环境 perturbation 测试稳定性
\end{itemize}

\begin{table}[H]
\centering
\begin{tabular}{p{0.25\textwidth} p{0.25\textwidth} p{0.2\textwidth}}
\toprule
层级 & 指标 & 触发策略 \\
\midrule
Training eval & Q target, loss, entropy & Divergence or reward plateau \\
Safety audit & reward hack detection, adversarial action & anomalous trajectories \\
Deployment sim & latency, repeatability, replicates & hardware change / rollout \\
\bottomrule
\end{tabular}
\caption{评估与治理矩阵}
\end{table}

\begin{knowledgebox}{日志监控建议}
记录 TD error distribution、max Q target、exploration ratio；设置 \texttt{td\_error > threshold} 触发 replay augmentation，\texttt{reward variance > 2σ} 触发 reward shaping review。
\end{knowledgebox}

\subsection{部署与治理 checklist}

\begin{warningbox}{上线前的三道“门”}
\begin{enumerate}
    \item Replay buffer 只能包含经过 human-in-the-loop 校验的 transitions。
    \item Checkpoint 避免 reward hack，如 reward clipping + sanity check trajectories。
    \item 设定 clear rollback 条件（loss divergence、reward drop > threshold）。
\end{enumerate}
\end{warningbox}

\begin{figure}[H]
\centering
\includegraphics[width=0.86\textwidth,page=2]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Q-Learning deployment guardrails 与 monitoring stack}
\end{figure}

\subsection{Evidence Matrix 与操作时间线}
\subsection{Evidence Matrix 与操作时间线}

为每轮训练记录 evidence matrix，可帮助快速定位 failure root cause。同一矩阵也能映射到 action timeline：

\begin{table}[H]
\centering
\begin{tabular}{p{0.28\textwidth} p{0.58\textwidth}}
\toprule
Evidence & Action \\
\midrule
Prediction explosion & 回滚至低 learning rate checkpoint + 增加 target damping \\
Reward spike & 检查 reward shaping logs，暂停 training 并审查 newly added shaping term \\
TD error drift & 触发 replay augmentation、增加 PER alpha \\
Policy collapse (success rate drop) & Enforce early rollback + high-priority fail buffer replay \\
\bottomrule
\end{tabular}
\caption{Evidence matrix 与对应行动时间线}
\end{table}

\begin{knowledgebox}{Actions should be traceable}
为每次 triggered action 记录 context（checkpoint id、evidence source、actor responsible），方便审计和 replay review。
\end{knowledgebox}

\subsection{本章小结}

评估矩阵和治理 checklist 保证 Q-Learning 算法不会在部署后被 reward hack 或 value explosion 破坏。

\section{工程化视角：Q-Learning 工作流}

\subsection{数据→训练→部署闭环}

工程项目的典型闭环包含：数据收集 → 模型训练 → 评估复核 → Sim rollout + human feedback → 线上监控。

\begin{importantbox}{闭环流程关键节点}
1. 收集 high-quality transitions，避免 agent 作弊。2. 用 PER + Double Q + regularization 做训练稳定化。3. 增强评估范式：human-in-the-loop replay、failure case tagging。4. 设定 monitoring guardrail：TD error、reward variance、latency。
\end{importantbox}

\subsection{部署监控策略}

部署后重点监控：

\begin{itemize}
    \item `TD error` drift（若上升需重新训练/rollback）
    \item reward variance（如变小可能代表 behavior collapse）
    \item `episode success rate` 与 `reward per step`，确保性能不退化
\end{itemize}

\subsection{本章小结}

工程化部署强调 replay buffer hygiene、TD error 警戒和 telemetry-driven rollback。

\section{可视证据与研究时间线}

\subsection{Slide 3：Q-Learning 模型管线}

这一页展示 Q-Learning from data 到 deployment 的 pipeline，每个环节都需要 guardrail（replay hygiene、target network、threshold monitor）。

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=3]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Q-Learning pipeline and guardrail checks}
\end{figure}
\newpage

\subsection{Slide 4：Temporal difference 与 replay dynamics}

Slide 4 把 TD error 与 replay sampling 关联起来，强调 `high-error` 采样对 prioritized buffer 的贡献同时也要人工审查。

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=4]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：TD error monitoring 与 prioritized sampling}
\end{figure}
\newpage

\subsection{Slide 5：Deployment 监控}

部署时需要对 reward distribution、episode success rate、latency 进行多通道监控，Slide 5 展示了 telemetry stack。

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=5]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：deployment telemetry and alert stack}
\end{figure}
\newpage

\subsection{Slide 6：Action timeline and evidence matrix}

Slide 6 附上 evidence matrix，说明每种 failure 都配有对应 action timeline，正如我们在本文中添加的 table 所示。

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=6]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Evidence matrix and action timeline}
\end{figure}
\newpage

\subsection{Slide 7：Research directions}

这页点出 future direction：multi-step Q-Learning, safety evaluation, sim-to-real.

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=7]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Research directions for safe Q-Learning}
\end{figure}
\newpage

\subsection{Slide 8：Time/Loss visualization}

Slide 8 展示了 reward curve 与 TD error 的同步下降，为收束全文提供视觉线索。

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=8]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Reward & TD error visualization}
\end{figure}
\newpage

\section{Research Directions \& Open Questions}

\subsection{Scalable replay and prioritization}

在高维任务中，传统 replay buffer 不足以覆盖需要探索的新状态。未来研究需要同时解决:

\begin{itemize}
    \item 如何让 prioritized sampling 兼容 multi-step TD 估计。
    \item 如何在保证 sampling 多样性的前提下整合 demonstration / human corrections。
    \item 如何让 buffer adapt to policy shift（如 `exponentially weighted recency`）。
\end{itemize}

\begin{importantbox}{Open problem: replay hygiene at scale}
在分布式训练中各 worker 写入 buffer 时需确保非重采样、请勿漏采，未来可用 vector clock 来追踪 experience provenance。
\end{importantbox}

\subsection{Robust evaluation and failure diagnostics}

Q-Learning 的 failure 通常隐蔽：reward hack, return drop, policy collapse。除了 simulation metrics，研究还需解决:

\begin{itemize}
    \item 提取 `evidence matrix` 并自动关联到 actions。
    \item 构造 `mirrored failure suite` 以 replay earlier catastrophic transitions。
    \item 在 production 中保留 `checkpoints` 供 human-in-the-loop 查证。
\end{itemize}

\begin{warningbox}{诊断中最常见的盲点}
工程团队往往只关注 reward curve，一旦 reward plateau 误判为 success 就错过了 action drift。建议 combined view (reward + TD error + success rate)。
\end{warningbox}

\subsection{Agent orchestration and governance}

Q-Learning 进入 agent stack 后，治理就需要跨 levels：

\begin{itemize}
    \item 让 metric exports 透明（TD error, max Q).
    \item 让 training job 控制 plane 记录 (checkpoint id, data seed, guardrail status).
    \item 设定 `deployment kill switch` 以 `reward drop > δ` 触发 rollback.
\end{itemize}

\begin{knowledgebox}{Governance checklist}
1. 每个 release 带上 evidence matrix + action timeline；2. 训练 pipeline 必须把 `reward variance` 率先视为 safety signal；3. Deployment 过程须支持 `fast rollback`。
\end{knowledgebox}

\subsection{本章小结}

研究方向集中在 scalable replay、robust evaluation 和 agent-level governance；这些工作将决定 Q-Learning 在更复杂任务中的可信度。
最后一页提示了未来 research direction：multi-step q-learning、sim-to-real bridging 和 safety evaluation。

\begin{figure}[H]
\centering
\includegraphics[width=0.92\textwidth,page=7]{06_cs224r_qlearning_2025.pdf}
\caption{Slide：Research directions for safe Q-Learning}
\end{figure}
\newpage
\subsection{Sim-to-real & 数据迁移}

Q-Learning 部署在真实系统前常需 sim-to-real transfer：

\begin{itemize}
    \item 在 sim 中加入 observation noise 与 actuator delay 再训练 Q。
    \item 通过 behavior cloning 将 sim checkpoint 融入 target replay buffer 中。
    \item 使用 policy distillation 让 smaller net approximate sim net。
\end{itemize}

\begin{importantbox}{迁移监管要点}
1. 确认 sim 与 real timeline alignment；2. 模拟数据必须包含真实 field noise；3. rollout 全量记录供 human-in-the-loop 审查。
\end{importantbox}

\section{总结与延伸}

\subsection{核心总结表}

\begin{table}[H]
\centering
\begin{tabular}{p{0.26\textwidth} p{0.24\textwidth} p{0.25\textwidth}}
\toprule
主题 & 核心结论 & 工程提示 \\
\midrule
Q-Learning 核心 & 学习最优 Q 函数，策略由 $\arg\max_a Q(s,a)$ 得出 & 准备好 replay buffer、target network、regularization \\
DQN & replay buffer + target network + $\epsilon$-greedy 是可伸缩版 Q-Learning & 保持 buffer size、采样多样性与 target network 更新频率 \\
稳定化 & Double Q、防止 reward hack 以及 reward shaping & 监控 TD error、reward variance；设置 rollback guardrail \\
工程部署 & 评估矩阵 + checklist + telemetry & 用 sim rollout + human-in-the-loop replay 验证 checkpoint，线上 guardrail 监控 Q drift \\
\bottomrule
\end{tabular}
\caption{Lecture 6 的方法与工程对照}
\end{table}

\subsection{进一步阅读}
\subsection{进一步阅读}

\begin{itemize}
    \item Mnih et al., \textit{Playing Atari with Deep Reinforcement Learning} (DQN, 2013)
    \item Van Hasselt et al., \textit{Deep Reinforcement Learning with Double Q-learning} (Double DQN, 2016)
    \item Lillicrap et al., \textit{Continuous Control with Deep Reinforcement Learning} (DDPG, 2016)
    \item Schaul et al., \textit{Prioritized Experience Replay} (ICLR 2016)
    \item Jaderberg et al., \textit{Population Based Training of Neural Networks} (NeurIPS 2017) — for lifecycle automation
\end{itemize}

\subsection{本章小结}

Q-Learning 的价值在于从价值函数推导策略，结合稳定化、数据治理和工程化部署可以让这一经典算法在现代 RL 系统中可靠地运行。

\subsection{行动提醒}

\begin{itemize}
    \item 每轮训练后将 evidence matrix 与 order-of-operations 做成文档，方便下一次 rollback。
    \item 监控 `TD error drift`、`reward variance`、`episode success rate`，其中任一指标触发 guardrail后立即 snapshot。
    \item 安排 quarterly replay audit（human review 20 failure trajectories）。
\end{itemize}

\end{document}
