

本内容暂时为 PPT 转述,后续会进行修编
第 12 讲:策略梯度方法#
一、策略的函数近似 (Policy Function Approximation)#
- 背景 (Page 3):
- 对于状态和动作空间有限的问题,我们可以用表格(例如矩阵)来表示和学习策略 或确定性策略 。
- 但当状态或动作空间非常大甚至是连续的时候,表格方法不再可行。
- 回顾价值函数近似 (Page 4):
- 之前的方法是使用参数化的函数来近似价值函数:
- 状态价值函数:
- 动作价值函数:
- 在这种方法中,策略通常是从近似的价值函数中间接派生出来的,例如使用 -greedy 策略选择具有最高估计 Q 值的动作。
- 之前的方法是使用参数化的函数来近似价值函数:
- 直接策略近似 (Page 4):
- 策略梯度方法的核心思想是:直接参数化策略本身。
- 我们将策略表示为一个以 为参数的函数 ,它表示在状态 下选择动作 的概率(对于随机策略):
- 目标是直接学习最优的参数 。
- 策略函数的要求 (Page 5):
- 为了使用基于梯度的优化方法,策略函数 必须相对于参数 可微分。
- 其梯度 必须存在且有限。
- 示例:Softmax 策略 (Page 5):
- 常用于离散动作空间。
- 首先,定义一个状态-动作对的偏好函数 (preference function) ,通常使用线性模型或神经网络。例如,使用特征 的线性组合:
- 然后,通过 softmax 函数将偏好转换为概率分布:
- 这个 softmax 策略是关于 可微的。
- 与梯度赌博机算法的联系 (Page 6):
- 回顾之前学习的梯度赌博机算法 (Gradient-bandit Algorithm)。该算法不直接估计动作价值 ,而是维护一个动作偏好 。
- 动作选择概率由 softmax 给出:。
- 偏好更新规则为: 其中 是奖励, 是奖励基线 (baseline), 是实际选择的动作, 是指示函数(如果 则为 1,否则为 0)。
- 这个更新形式与后续的策略梯度更新有相似之处,特别是 项(奖励减去基线,类似于优势函数)和 项(与策略梯度中的 相关)。
- 参数化策略的优劣势 (Page 7):
- 优势:
- 通常具有更好的收敛特性。
- 在高维或连续动作空间中非常有效(相比于需要对所有动作计算 Q 值的价值方法)。
- 可以学习随机性策略,这在某些问题中(例如部分可观测环境或需要探索时)是最优的。
- 策略函数本身可能比价值函数更简单,更容易近似。
- 可以实现更平滑的策略改进。
- 避免了在每一步选择动作时进行最大化搜索。
- 与生物学习机制有一定关联。
- 劣势:
- 通常收敛到局部最优,而非全局最优。
- 评估一个策略(计算其梯度)通常效率较低,且具有高方差。
- 优势:
二、策略梯度 (Policy Gradient)#
- 目标函数设定 (Page 8):
- 目标是找到最优的策略参数 。为此,需要定义一个目标函数 (PPT 中也用 ) 来衡量策略 的性能(越高越好)。
- 分幕式任务 (Episodic Tasks):常用初始状态 的价值作为目标函数: 其中 是从 开始的完整回报。
- 连续性任务 (Continuing Tasks):常用平均价值或平均奖励作为目标函数:
- 平均价值:
- 平均每步奖励: 其中 是策略 下马尔可夫链的稳态分布(状态 被访问的长期概率), 是在状态 执行动作 的期望立即奖励。
- 优化方法:梯度上升 (Page 9, 14):
- 为了最大化目标函数 ,使用梯度上升法更新参数 :
- 其中 是学习率 (步长), 是目标函数关于参数 的梯度,称为策略梯度 (Policy Gradient)。
- 策略梯度定理 (Policy Gradient Theorem) (Page 9, 11, 12):
- 该定理给出了策略梯度 的一个重要表达式,它将目标函数的梯度与策略函数 和动作价值函数 联系起来,并且不依赖于状态分布 的梯度(这使得计算更容易)。
- 定理表达式(对于上面定义的几种目标函数都成立): (这里的 含义略有不同,对于分幕式任务起始状态价值目标,它是状态 在策略 下被访问的折扣频率)。
- 期望形式 (Page 12, 21):可以将策略梯度写成期望的形式,这对于推导基于采样的算法至关重要:
(这里 是在策略 下在时间 访问的状态和采取的动作,期望是对轨迹进行的)。
- 推导关键步骤 (Page 12, 20, 21):
- 从 出发。
- 引入 :。
- 使用对数导数技巧 (log-derivative trick):。
- 将求和转换为期望: 形式可以写成 。
- 最终得到 。
- 推导关键步骤 (Page 12, 20, 21):
- 策略梯度计算 (Page 22-24):
- 策略梯度是一个期望值,可以通过蒙特卡洛采样来近似。
- 对于给定的状态 :
- 根据当前策略 采样一个动作 。
- 需要得到该状态-动作对的价值 的估计值,记为 。
- 计算得分函数 (score function) 。
- 构造梯度的单样本估计:。
- 这个 是真实策略梯度 (或 如果考虑单状态价值梯度) 的无偏估计。
- 参数更新 (Page 24):使用这个随机梯度估计来更新参数: ( 是学习率)。
- 如何估计 (Page 25):
- 选项 1: REINFORCE 算法:使用当前 episode 中从时间 开始的完整样本回报 (Monte Carlo return) 作为 的无偏估计。
- 选项 2: Actor-Critic 方法:使用另一个函数(通常是神经网络),称为评论家 (Critic),来学习和估计 或 。
三、带基线 (Baseline) 的策略梯度#
- 动机 (Page 26, 30):策略梯度的蒙特卡洛估计通常具有很高的方差,这会使得学习过程缓慢且不稳定。引入基线 (Baseline) 是降低方差的常用技巧。
- 核心思想 (Page 26, 28):从动作价值 中减去一个只依赖于状态 而不依赖于动作 的函数 。 \nabla_{\theta} J(\theta) = \mathbb{E}_{\pi_{\theta}} [ (Q_{\pi_{\theta}}(S_t, A_t) - b(S_t)) \nabla_{\theta} \log \pi_{\theta}(A_t|S_t, \theta) ]$$
- 为什么可行 (Page 27, 28):减去基线 不会改变梯度的期望值(即梯度估计仍然是无偏的)。这是因为:
- 随机梯度估计 (带基线) (Page 29):
- 基线的作用 (Page 30):虽然期望不变,但基线 会影响随机梯度 的方差。选择一个好的基线可以显著降低方差,从而加速收敛。
- 常用基线:状态价值函数 (Page 31, 43):
- 一个非常自然且常用的选择是使用状态价值函数 作为基线 。
- 此时, 正是优势函数 (Advantage Function) 的定义。它衡量了在状态 选择动作 相对于平均动作的好坏程度。
- 策略梯度变为:
- 直观上,这使得策略倾向于增加比平均水平好的动作()的概率,减少比平均水平差的动作()的概率。
- 选择 作为基线的原因 (Page 43):
- 是 在动作 上的期望值,即 。
- 选择 作为基线,理论上可以最小化梯度的方差(在某些假设下)。
四、REINFORCE 算法#
- 基本 REINFORCE (无基线) (Page 33, 36):
- 是一种蒙特卡洛策略梯度 (Monte Carlo Policy Gradient) 方法。
- 使用完整的样本回报 (或 ) 作为 的无偏估计。
- 更新规则: (这里的 是在时间 实际采取的动作, 是从该步开始直到 episode 结束的总折扣回报)。
- 算法流程 (Page 36):
- 初始化策略参数 。
- 对每个 episode:
- 根据当前策略 生成一个完整的轨迹(状态、动作、奖励序列)。
- 对 episode 中的每一步 :
- 计算从 开始的回报 。
- 计算策略的对数梯度 。
- 更新参数 。
- 带基线的 REINFORCE (REINFORCE with Baseline) (Page 42-43, 57-58):
- 核心思想:在 REINFORCE 算法中引入状态价值函数 作为基线,以降低梯度估计的方差。
- 价值函数近似 (Page 37, 39, 51-52, 54):通常使用一个独立的价值网络(参数为 )来近似状态价值函数 :
- 近似策略梯度 (Page 37, 52, 53, 56):
- 使用样本回报 (或 ) 估计 。
- 使用价值网络 估计基线 。
- 随机梯度估计:
- 双网络更新 (Page 40-42, 55-57):需要同时更新策略网络(参数 )和价值网络(参数 )。
- 策略网络更新 (Actor Update) (Page 41, 56):
- 计算优势估计(或 TD 误差,如果用 作为目标):。
- 更新 :。
- 价值网络更新 (Critic Update) (Page 40, 55):
- 目标是让 接近样本回报 。通常最小化均方误差 。
- 计算误差 (注意 Page 40 定义反了,应为 Target - Prediction)。
- 更新 :。
- 策略网络更新 (Actor Update) (Page 41, 56):
- 算法流程 (Page 43, 58):
- 初始化策略参数 和价值网络参数 。
- 对每个 episode:
- 根据 生成轨迹。
- 对 episode 中的每一步 :
- 计算回报 (Page 58 的公式似乎少了折扣因子 且下标为 )。更标准的 。
- 计算 TD 误差(或优势估计) 。
- 更新价值网络参数 (Page 58 中多了 )。
- 更新策略网络参数 (Page 58 中多了 )。
- 注意:Page 58 的伪代码在 的定义和更新规则中包含了 因子,这可能与特定目标函数或推导有关,但基本的带基线的 REINFORCE 通常形式如上所述。
- 特点 (Page 43):
- 同时学习策略和状态价值函数。
- 价值函数主要用作基线以减小方差。
- 仍然基于蒙特卡洛回报 ,因此更新需要等到 episode 结束,学习速度可能较慢,不适合在线或连续任务。
五、小结 (Page 44, 59-61)#
- 对比:
- 基于价值 (Value-Based):学习价值函数,策略隐式导出(如 -greedy)。
- 基于策略 (Policy-Based):直接学习参数化策略,可能没有显式价值函数。
- 演员-评论家 (Actor-Critic):结合两者,学习策略(Actor)和价值函数(Critic)。带基线的 REINFORCE 可以看作一种简单的 Actor-Critic 方法。
- 核心知识点:
- 策略梯度定理。
- 引入基线(特别是状态价值函数 )来降低方差。
- REINFORCE 算法(蒙特卡洛策略梯度)。
- 带基线的 REINFORCE 算法。
- 策略网络 和价值网络 的概念和更新。
- 策略梯度流程总结 (Page 45, 60):
- 用策略网络 近似策略。
- 目标是找到最大化期望回报(例如 )的参数 。
- 使用策略梯度上升法更新 。
- 梯度估计通常涉及 或优势 。
- REINFORCE 使用蒙特卡洛回报 估计 ,并可选地使用价值网络 作为基线。