跳转到正文

第 6 章 · 策略梯度方法

第 4 章走了路线一——先学 给每个动作打分,再选分数最高的(回顾:Q(s,a) 与贪心策略)。经典 DQN 在 CartPole 和 Atari 上效果很好,但它需要枚举网络输出的所有动作再取最大值,因此直接适用于有限离散动作空间。

CartPole 只有"左推"和"右推"两个选项,DQN 给每个动作算一个 值,取最大的就行。但如果要控制一个机械臂呢?肩关节、肘关节、腕关节各有多个自由度,每个自由度都能施加连续力矩,无法为无限多个动作逐一输出 值。大模型的词表虽然有限,但生成需要在庞大的序列状态空间中逐步决策,还要保留随机采样能力,因此也更适合直接参数化策略分布。

直接学习策略

既然"先打分再选"走不通,那就换一条路:跳过 值,直接学策略 。不问"每个动作值多少分",而是直接学"在什么情况下该做什么"。

这正是第 3 章路线二:策略目标 的核心思路——定义一个策略目标函数 ,然后直接优化参数 使 最大。本章将深入这条路线,从策略梯度定理到 REINFORCE 算法,再到降低方差的基线方法。

前置知识回顾

本章会频繁用到以下概念,如果记不清了,点进去复习一下再继续:

本章主线

本章沿两条线索展开。第一条线索是理论:从策略梯度定理到 REINFORCE 算法,再到基线降方差和优势函数。第二条线索是实践:在 CartPole 上先跑通 vanilla REINFORCE,观察高方差问题,然后加入价值基线对比效果。

小节核心问题
策略梯度的必要性DQN 的 在哪里走不通?为什么直接学策略?
REINFORCE 算法策略梯度定理的数学形式是什么?REINFORCE 怎么实现?
动手:CartPole 实战REINFORCE 在真实控制任务上表现如何?高方差什么样?
策略梯度的改进基线为什么能降方差? 为什么是最佳基线?
动手:CartPole 对比实验价值基线的实际效果如何?从奖励和方差两个角度看。

让我们从策略梯度的动机开始:从 DQN 到策略梯度

现代强化学习实战课程