直接优化策略:策略梯度、Actor-Critic、Advantage 与重要性采样
值函数方法的基本套路是先学 或再根据它们诱导出策略。而策略梯度方法走的是另一条路直接把策略写成带参数的可导函数然后直接优化它。这在连续动作、复杂策略结构以及需要随机策略的场景里尤其重要。适合读者已经理解 DQN但还不清楚 policy gradient、Actor-Critic、baseline / advantage 与 off-policy 校正如何连起来的人。预计阅读10 分钟。关键词策略梯度、Actor-Critic、优势函数、重要性采样。值函数方法的基本套路是先学V或Q再根据它们诱导出策略。而策略梯度方法走的是另一条路直接把策略写成带参数的可导函数然后直接优化它。这在连续动作、复杂策略结构以及需要随机策略的场景里尤其重要。1. 策略梯度直接优化动作概率设参数化策略为强化学习目标则写成也就是策略诱导的轨迹其期望回报要尽可能大。策略梯度定理给出一个极为关键的公式图 1 的直觉可以概括成一句话如果某个动作带来的回报更高就提高它在该状态下的概率如果某个动作效果更差就降低它的概率。其中提供“怎样改概率”的方向而提供“这个动作值不值得鼓励”的信号。2. Actor-Critic让 Critic 为 Actor 提供学习信号策略梯度公式里虽然写着但这个量通常并不好直接得到。一个自然办法是再训练一个价值估计器来帮助策略学习。这就得到 Actor-Critic。Actor负责根据状态选择动作更新策略参数Critic负责估计价值函数评价当前行为好不好。在最常见的 TD 型 Actor-Critic 里Critic 会计算 TD 误差然后Critic 用它来更新自己的价值估计Actor 则把它当作优势信号更新策略所以Actor-Critic 的精髓就在于一个负责做决策一个负责打分TD error 把二者连接成闭环。3. Baseline 与 Advantage只看“相对好坏”直接用回报或动作价值做策略梯度往往方差较大。一个常见技巧是减去 baseline只要b(S)只依赖状态、不依赖动作它不会改变策略梯度的期望方向但通常能显著降低方差。最常用的 baseline 就是状态价值函数于是得到优势函数图 3 说明了 advantage 的核心直觉不要只看动作本身好不好而要看它是否“比这个状态下的平均水平更好”。这样一来学习信号会更加聚焦于“相对优势”噪声通常更小。在 A2C 一类方法里优势函数常用一步 TD 误差近似这也是为什么 TD error 在 Actor-Critic 里如此核心它既能更新价值又能充当策略更新的 advantage 近似。4. on-policy 与 off-policy数据从哪里来真的很重要标准策略梯度大多是 on-policy 的也就是说更新策略时所用的数据要由当前策略自己采样得到。但在很多实际场景里我们又希望复用旧数据、日志数据或者由另一个行为策略产生的数据。此时就会面临一个分布不一致的问题数据来自行为策略我们真正想优化的是目标策略。如果直接拿这些数据更新会产生偏差。重要性采样就是用来做这个校正的。5. 重要性采样用权重纠正分布偏差重要性权重定义为它衡量的是在状态 st下当前样本动作在目标策略下相对行为策略有多“合理”。这张图可以这样理解如果和接近那么也接近 1如果某个样本动作在目标策略下更常见那么它的权重会更大如果它在目标策略下很罕见那么它的贡献会被压低。通过把样本贡献乘上我们就能在一定条件下用行为策略生成的数据去近似目标策略下的梯度。但重要性采样并不是“免费午餐”。它最大的副作用是方差可能会变大尤其当很大时更新会非常不稳定。因此实践中常会配合截断或裁剪权重更稳定的 surrogate objective像 V-trace、Retrace 这样的分布校正技巧。6. 把 day6 的主线串起来如果把本篇压缩成一条逻辑链那就是策略梯度告诉我们可以直接优化策略Actor-Critic告诉我们可以让 Critic 估计价值为 Actor 提供低方差学习信号baseline / advantage告诉我们学习时应尽量只保留“相对好坏”重要性采样告诉我们如果想复用行为策略的数据就必须对分布偏差做校正。你会发现这些方法虽然名字很多但围绕的始终还是同一个问题怎样稳定而高效地提升长期回报。到这里整套连载的主线也就基本闭环了前半部分用 Bellman 思想估计长期价值中间部分用 TD / Q-learning / DQN 学会控制后半部分则直接优化策略并让 Critic 帮助策略学习。以后再读强化学习论文时可以先问三个问题它优化的是价值还是直接优化策略学习信号来自完整回报、TD target还是 advantage数据是 on-policy 还是 off-policy如果是后者如何做分布校正很多看起来复杂的方法往往都能被这三问很快定位。

相关新闻

UDP协议下实现可靠心跳检测的技术方案

UDP协议下实现可靠心跳检测的技术方案

1. 项目概述:当UDP遇上心跳包在实时音视频、在线游戏和物联网领域,UDP协议因其低延迟特性成为传输层首选方案。但不同于TCP的可靠传输机制,UDP不保证数据包顺序和完整性,这给需要持续状态同步的应用带来了独特挑战。本文将以"…

2026/7/31 16:57:51 阅读更多
如何在3分钟内免安装使用微信网页版:终极指南

如何在3分钟内免安装使用微信网页版:终极指南

如何在3分钟内免安装使用微信网页版:终极指南 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 你是否曾经在公司电脑上想要使用微信&#x…

2026/7/31 17:47:52 阅读更多
一篇让你明白整个网络架构的计算机网络入门教程。

一篇让你明白整个网络架构的计算机网络入门教程。

引言 很多朋友在学习计算机网络时,一上来就会被教材或者网课老师灌输各种概念协议,学习完后会非常很懵逼,各层的协议到底有什么用,我在一台手机的应用程序上发送消息给另外一台手机相应的应用程序过程中,发生了什么事情…

2026/7/31 17:47:52 阅读更多
DTC及状态掩码

DTC及状态掩码

DTC的构成:由 ISO 15031-6和ISO 14229-1的故障断码格式规定,DTC信息由四个字节组成,如下表所示:其中DTCHighByte,DTCMiddleByte,DTCLowByte表示服务中的故障诊断码;StatusOfDTC表示故障码状态。…

2026/7/31 17:47:52 阅读更多
Python学习复盘:四步提升编程效率

Python学习复盘:四步提升编程效率

1. 新手学习复盘的价值与意义 刚接触一个新领域时,我们常常会陷入"学了很多却记不住"的困境。上周我指导的一位编程新人就遇到了这种情况:他花了两个月学习Python基础语法,但在实际写代码时却连最基本的循环结构都用不利索。这种现…

2026/7/31 17:37:52 阅读更多
HART协议详解:05 HART现场通信实战

HART协议详解:05 HART现场通信实战

第五季 HART现场通信实战 ——从USB-HART Modem抓包到工程诊断:让协议知识变成维修能力 各位工业现场的工程师朋友们,大家好! 经过前四季的系统学习,我们已经构建了HART协议的完整理论框架: 第一季:六层生命模型与本质认知 第二季:物理层4–20mA与FSK魔法 第三季:数…

2026/7/31 0:14:40 阅读更多
维修工程师的示波器实战:02 探头地线——示波器最大的“坑”

维修工程师的示波器实战:02 探头地线——示波器最大的“坑”

第二篇:探头地线——示波器最大的“坑” ——那根不起眼的小地线,可能比你测的信号还重要 很多工程师第一次用示波器时,都会经历这样一个“惊魂”时刻。 某食品厂包装线,伺服偶发报警。年轻工程师判断是编码器信号受干扰,便拿出示波器认真测量。波形一出来,所有人都倒…

2026/7/31 0:14:40 阅读更多