\documentclass[a4paper]{article}
\usepackage[fontset=fandol]{ctex}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{etoolbox}
\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, attach boxed title to top left={yshift=-2mm, xshift=2mm}, 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{language=Python, 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}{从 PG 到 TRPO 到 PPO}
\newcommand{\noteauthors}{基于公开课程资料整理}
\newcommand{\notedate}{2025}
\newcommand{\videochannel}{五道口纳什}
\newcommand{\videopublishdate}{2025}
\newcommand{\videoduration}{约15分钟}
\newcommand{\videourl}{}
\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.2cm}
\ifdefempty{\videocoverpath}{}{\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
\ifdefempty{\videourl}{}{\textbf{视频链接}：\href{\videourl}{\nolinkurl{\videourl}}\par}\par
\textbf{项目主页}：\href{\repourl}{\nolinkurl{\repourl}}\par
\end{tcolorbox}
\end{titlepage}
\tableofcontents\newpage

\section{引言}
本期主线：从 Policy Gradient (PG) 到 TRPO 到 PPO，串联核心公式之间的过渡关系。

\begin{importantbox}{核心概念链}
Reward $\to$ 期望 $\to$ 状态价值函数 $V(s)$ $\to$ 状态动作价值函数 $Q(s,a)$ $\to$ Advantage $A(s,a)$ $\to$ On-policy / Off-policy $\to$ 重要性采样
\end{importantbox}

\section{PPO Clip 目标函数}
PPO Clip 是策略优化（Policy Optimization）方法。优化对象是\textbf{策略}（Policy Network）：输入状态，输出动作的概率分布。
$$L^{\text{CLIP}} = \mathbb{E}\left[\min\left(r_t \hat{A}_t,\; \text{clip}(r_t, 1{-}\epsilon, 1{+}\epsilon)\hat{A}_t\right)\right]$$

\begin{knowledgebox}{策略 vs. 价值}
\begin{itemize}
  \item \textbf{策略网络} $\pi_\theta(a|s)$：输入状态，输出动作概率分布
  \item \textbf{DQN}：输入状态+动作，输出 $Q(s,a)$
  \item PPO 属于策略优化方法，DQN 属于价值方法
\end{itemize}
\end{knowledgebox}

\section{从 PG 到 TRPO 到 PPO}
\subsection{Vanilla PG}
$$\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[\nabla_\theta \log \pi_\theta(a|s) \cdot \hat{A}(s,a)\right]$$

\subsection{TRPO: 信任域约束}
TRPO 在 PG 基础上加入 KL 散度约束，限制策略更新幅度：
$$\max_\theta \mathbb{E}\left[\frac{\pi_\theta}{\pi_{\theta_\text{old}}} \hat{A}\right] \quad \text{s.t.} \quad D_{KL}(\pi_{\theta_\text{old}} \| \pi_\theta) \le \delta$$

\subsection{PPO: Clip 替代 KL 约束}
PPO 用 clip 机制替代 TRPO 的 KL 约束，实现更简单高效：重要性比率 $r_t$ 被限制在 $[1{-}\epsilon, 1{+}\epsilon]$ 范围内。

\subsection{本章小结}
PG $\to$ TRPO $\to$ PPO 是从朴素到约束到高效的演进。PPO 在保持训练稳定性的同时大幅简化了实现。

\section{工程视角：为什么 PPO 成为默认选项}
\subsection{复杂度、稳定性与可实现性的折中}
课程虽然只用 15 分钟讲解 PG、TRPO、PPO 的演化，但背后的工程结论非常明确：PPO 之所以流行，不是因为它在所有 benchmark 上都绝对最优，而是因为它在\textbf{稳定性、实现门槛和训练效率}之间取得了最平衡的折中。

\begin{table}[H]
\centering
\begin{tabular}{p{2.6cm}p{3.5cm}p{3.7cm}p{3.2cm}}
\toprule
方法 & 优点 & 主要代价 & 适用判断 \\
\midrule
PG & 概念最直接 & 方差高、更新不稳 & 用于理解基本原理 \\
TRPO & 理论约束更强 & 二阶近似和实现复杂 & 更适合研究型推导 \\
PPO & 稳定且实现简单 & 仍需精调 clip/advantage & 工程实践的默认起点 \\
\bottomrule
\end{tabular}
\caption{PG、TRPO、PPO 在工程中的典型取舍}
\end{table}

\begin{warningbox}{不要把 PPO 当作“免调参算法”}
PPO 只是把 TRPO 的复杂约束换成了更易用的剪裁目标，并不意味着训练就会自动稳定。batch 大小、优势归一化、reward 尺度和 rollout 质量依旧会直接影响结果。
\end{warningbox}

\subsection{本章小结}
从工程落地角度看，PPO 是一个高性价比基线：先用它搭通训练闭环，再决定是否有必要引入更复杂的约束或更新规则，通常比一开始就追求“最强算法”更现实。

\newpage
\section{总结与延伸}
\begin{enumerate}
  \item PG 是最基础的策略梯度方法
  \item TRPO 通过 KL 约束保证单步更新不过大
  \item PPO 用 clip 替代 KL，简单高效，是当前标准
  \item 核心概念：Reward、Advantage、On/Off-policy、重要性采样
\end{enumerate}
\end{document}
