\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{subcaption}
\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 Loss 详解：Policy Gradient 的核心组件}
\newcommand{\noteauthors}{基于公开课程资料整理}
\newcommand{\notedate}{2025}
\newcommand{\videochannel}{五道口纳什}
\newcommand{\videopublishdate}{2025}
\newcommand{\videoduration}{约24分钟}
\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{引言}
本期正式开启 Agentic RL Training 系列，围绕 veRL 框架展开。本期介绍 Policy Gradient Loss 的核心组件。

\begin{importantbox}{强化学习的真正目标}
RL 的目标是最大化\textbf{奖励回报的期望}（Expected Reward）。PPO Clip 等目标函数只是一个\textbf{代理}（surrogate），间接优化这个期望。训练时更应关注 \textbf{Rewards Curve} 而非 Loss Curve。
\end{importantbox}

\section{Policy Gradient 基础}
\subsection{期望奖励不可直接求导}
真正的目标函数 $J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}[R(\tau)]$ 涉及对策略分布的采样，无法直接对 $\theta$ 求导。因此我们使用 PG Loss 作为代理损失函数。

\subsection{PPO Clip 目标}
PPO Clip 是当前最常用的 PG 方法：
$$L^{\text{CLIP}}(\theta) = \mathbb{E}\left[\min\left(r_t(\theta) \hat{A}_t, \; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \hat{A}_t\right)\right]$$
其中 $r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}$ 是重要性采样比率，$\hat{A}_t$ 是优势函数估计。

\begin{warningbox}{Loss vs. Rewards}
训练过程中 PG Loss 往往围绕 0 上下震荡，没有明显的下降趋势。这是正常的——因为 PG Loss 是代理目标，真正的训练信号体现在 Rewards Curve 上。
\end{warningbox}

\subsection{本章小结}
PG Loss 是间接优化期望奖励的工具。训练时应以 Rewards Curve 为主要监控指标。

\section{定制化 veRL}
\subsection{主要定制点}
基于 veRL 做 Agentic RL Post-training 时，主要定制几个部分：
\begin{itemize}
  \item \textbf{Reward Function}：定义任务的奖励函数
  \item \textbf{Environment}：定义 Agent 交互的环境
  \item \textbf{Data Pipeline}：准备训练数据
  \item \textbf{Training Config}：调整超参数
\end{itemize}

\subsection{本章小结}
veRL 提供了灵活的定制接口，核心工作在于定义合适的 reward function 和 environment。

\section{训练监控与排障要点}
\subsection{从奖励曲线反推系统问题}
在真正运行 Agentic RL 任务时，研究者往往不会先看到“算法错了”，而是先看到 reward curve 长时间不抬升、方差异常大或者 rollout 质量忽高忽低。把这些现象拆解开，通常能更快定位到问题究竟来自 reward、环境还是采样配置。

\begin{table}[H]
\centering
\begin{tabular}{p{3.5cm}p{5cm}p{4.5cm}}
\toprule
观测现象 & 常见原因 & 首先检查什么 \\
\midrule
reward 长期不涨 & reward 定义太稀疏或 credit assignment 太弱 & 是否需要 shaping 或更细粒度反馈 \\
loss 波动很大 & batch 太小或 advantage 方差过高 & rollout 长度、归一化与 clip 配置 \\
策略突然崩掉 & environment 不稳定或更新过猛 & 采样日志、异常 episode、KL 漂移 \\
\bottomrule
\end{tabular}
\caption{Agentic RL 训练里最常见的三类异常信号}
\end{table}

\begin{knowledgebox}{为什么短视频也要强调监控}
即便这一讲只介绍 PG loss 的核心组件，真正把它用到 veRL 时，工程反馈仍然是第一位的。原因很简单：策略梯度类方法对采样分布十分敏感，很多问题只有在 reward、KL、episode length、成功率同时观察时才看得出来。
\end{knowledgebox}

\subsection{本章小结}
PG loss 的理论理解必须和训练监控结合起来：只有把 reward、rollout 质量和策略漂移一起看，才能判断当前更新到底是在学习，还是只是在噪声里震荡。

\newpage
\section{总结与延伸}
\begin{enumerate}
  \item RL 真正的目标是最大化期望奖励，PG Loss 只是代理
  \item 训练时关注 Rewards Curve 而非 Loss Curve
  \item PPO Clip 通过重要性采样比率和 clip 机制保证稳定训练
  \item veRL 框架提供了 Agentic RL Training 的完整 pipeline
\end{enumerate}

\subsection{拓展阅读}
\begin{itemize}
  \item Schulman et al., ``Proximal Policy Optimization Algorithms'' (2017)
  \item veRL GitHub 仓库及文档
\end{itemize}
\end{document}
