发布时间:2026/8/31 19:19:58
第303篇 Actor-Critic方法详解 上篇聊了策略梯度从REINFORCE到A2C。你可能注意到一个趋势纯粹的策略梯度方法方差太大需要引入价值函数来降低方差。Actor-Critic就是把策略Actor和价值函数Critic显式地分成两个组件让它们各司其职。这个框架是现在主流RL算法的基础。PPO、A3C、DDPG、SAC本质上都是Actor-Critic的不同变体。理解了这个框架后面学具体算法就轻松很多。Actor和Critic各自干什么Actor是策略网络负责选择动作。输入当前状态s输出动作的概率分布π_θ(a|s)。训练时用策略梯度来更新参数θ目标是最大化期望回报。Critic是价值网络负责评估Actor的表现。输入当前状态s有时也包含动作a输出价值估计V(s)或Q(s,a)。训练时用TD误差来更新参数目标是让价值估计尽可能准确。两者的协作方式是这样的Actor执行动作后获得奖励Critic评估这个动作好不好计算优势函数A Q-V或TD误差δ r γV(s) - V(s)然后Actor根据这个评估来调整自己的策略。好的动作概率增大差的动作概率减小。# Actor-Critic的核心更新逻辑 # Actor更新用优势函数加权策略梯度 # loss_actor -log π_θ(a|s) * A.detach() # loss_actor entropy_coeff * entropy # 熵正则化 # Critic更新最小化价值估计的TD误差 # loss_critic (V(s) - (r γ * V(s)).detach())^2注意A.detach()——优势函数不传梯度给Critic。Actor和Critic的loss是分开计算的各自更新各自的参数。为什么Actor-Critic比纯策略梯度好纯策略梯度REINFORCE用的是从当前时刻到episode结束的累积回报G_t作为权重。这个G_t有两个问题方差大而且必须等episode结束才能更新。Actor-Critic用Critic的估计替代了G_t。Critic给出的是当前状态的价值V(s)或者动作价值Q(s,a)不需要等episode结束。这就把蒙特卡洛方法变成了时序差分TD方法每一步都能更新。从偏差-方差的角度看REINFORCE用的是无偏但高方差的蒙特卡洛估计Actor-Critic用的是有偏但低方差的TD估计。Critic刚开始训练不好时偏差大但随着Critic越来越准偏差会减小。实践中这个trade-off是非常值得的。还有一个好处Actor-Critic可以处理非终止状态。REINFORCE必须等到episode结束才能计算回报但很多机器人任务是连续控制的比如平衡、行走没有明确的终止状态。Actor-Critic用Critic的估计作为bootstrap不需要等episode结束。DDPG连续控制的Actor-CriticDDPGDeep Deterministic Policy Gradient是2016年的工作专门解决连续动作空间的控制问题。它是确定性策略的Actor-Critic——Actor直接输出动作值不是概率分布Critic估计Q(s,a)。DDPG有四个网络Actor、Critic、Target Actor、Target Critic。Target网络是主网络的慢拷贝用于稳定训练。Actor的更新用确定性的策略梯度∇J E[∇_a Q(s,a) · ∇_θ π(s)]。直觉上就是Critic告诉Actor在这个状态下动作往哪个方向调能增大Q值。DDPG还用了两个关键技巧。经验回放Experience Replay把采集到的(s, a, r, s)存到缓冲区训练时随机采样batch。这打破了数据之间的时序相关性提高了数据利用率。缓冲区的大小通常在10万到100万之间太小了数据多样性不够太大了内存吃不消。采样时一般用均匀分布也可以用优先级回放Prioritized Replay给TD误差大的样本更高的采样概率。软更新Soft UpdateTarget网络参数用θ_target τ·θ (1-τ)·θ_target来更新τ通常取0.005。这比硬拷贝更稳定。硬拷贝就是每隔N步把主网络的参数直接复制给Target网络这种方式会导致Target值突然跳变训练不稳定。软更新让Target值缓慢变化训练曲线更平滑。DDPG的网络架构也有讲究。Actor和Critic通常都是3-4层的全连接网络隐藏层大小256或400。连续控制任务中Actor的最后一层用tanh激活输出范围在[-1, 1]之间然后乘以动作范围的上界。Critic接收状态和动作的拼接作为输入有两种常见的结构一种是早期融合状态和动作拼在一起过网络一种是后期融合状态和动作分别过网络在某个中间层合并。实验表明后期融合通常效果更好。DDPG在连续控制任务上表现不错但它有个已知问题Q值容易过高估计。因为Critic用的是max操作隐式地通过选取最优动作误差会累积。TD3修复DDPG的过估计TD3Twin Delayed DDPG是2018年的工作针对DDPG的三个问题提出了三个修复。第一个是双Critic。用两个独立的Q网络取较小的那个Q值来做目标。这直接解决了过估计问题——跟Double DQN的思路类似。第二个是延迟Actor更新。Critic每更新两次Actor才更新一次。这给Critic足够的时间来稳定Q值估计避免Actor基于不准确的Q值做优化。第三个是目标平滑。在目标动作上加少量噪声让Critic在动作空间上平滑减少对局部峰值的过拟合。TD3在MuJoCo基准测试上大幅超过DDPG是目前连续控制任务中最可靠的off-policy算法之一。面试要点面试中聊Actor-Critic几个核心概念要能讲清楚。Actor和Critic的交互机制。Actor负责探索输出动作Critic负责评估给出价值。Actor根据Critic的评估来调整策略。这种分工让算法既能探索又能学习比纯策略梯度或纯价值方法都更有优势。on-policy和off-policy在Actor-Critic中的体现。A2C是on-policy的数据用完就扔。DDPG/TD3是off-policy的用经验回放重用数据。off-policy的样本效率高但训练更不稳定需要更多的工程技巧目标网络、梯度裁剪等。Actor-Critic到PPO的演进。PPO本质上也是Actor-Critic但它通过截断重要性采样比率来限制策略更新的幅度防止策略一步走太远导致崩溃。这个改进让PPO成为目前最流行的on-policy算法。超参数的敏感性。Actor-Critic方法的超参数很多学习率、折扣因子γ、GAE的λ、熵系数、网络结构等。这些超参数的选择对最终效果影响很大。实践中一般先用默认值跑一遍Stable-Baselines3的默认值已经调得不错了然后根据训练曲线做调整。如果训练初期回报上升很快但后期震荡可能是学习率太大或者Critic不够准确。如果一直不收敛可能是探索不够增大熵系数或者奖励尺度不合适做归一化。奖励缩放Reward Scaling和观测归一化Observation Normalization是工程中非常重要的技巧。不同任务的奖励尺度可能差很多有的任务奖励在0-1之间有的在0-1000之间不做归一化的话超参数就没法通用。Stable-Baselines3内部自动做了观测的running mean归一化和奖励的缩放这也是它开箱即用的原因之一。给你的建议理解Actor-Critic最好的方式是动手实现一个。从A2C开始在CartPole或Pendulum上跑通。然后改成DDPG体会on-policy和off-policy的区别。建议读一读Lilian Weng的博客Implementation of Reinforcement Learning Algorithms里面给出了清晰的伪代码和实现细节。代码方面Stable-Baselines3的实现质量很高适合学习参考。上一篇第302篇 策略梯度——从REINFORCE到现代方法下一篇预告第304篇 PPO——最流行的强化学习算法

相关新闻

2026/8/31 19:19:57

GMap.NET官方Demo实战:WinForm上位机地图定位与坐标转换

简介:本资源是面向.NET开发者的GMap.NET地图集成实战Demo,适用于Windows Forms与WPF桌面应用开发场景,帮助初学者快速掌握地理信息可视化核心技能。压缩包共40个文件,含13个C#源码文件(如MainWindow.xaml.cs等&#xf…

2026/8/31 19:14:57

基于IMM-UKF/EKF的雷达多目标跟踪MATLAB实现与实战

简介:本资源是一套面向雷达多目标跟踪领域的MATLAB仿真项目,专为新手及具备一定信号处理与滤波基础的开发者设计,聚焦交互式多模型(IMM)框架下UKF与EKF滤波器的协同应用,解决强机动目标在复杂观测环境下的鲁…

2026/8/31 19:29:58

开源工具选型指南:免费资源、AI编程与项目管理实战

如果你最近在 8 月下旬打开 GitHub,大概率会在热榜或讨论区反复看到三个项目的名字:13 万星的 free-for-dev、OpenAI 官方终端 AI 工具 codex,以及开源项目管理平台 plane。这三个项目分属完全不同的方向,却几乎在同一时间进入开发…

2026/8/31 19:29:58

Matlab实现三自由度MMG船舶运动建模与仿真全解析

简介:本资源是面向数学建模初学者与船舶动力学入门者的MATLAB实践工具包,聚焦船舶三自由度运动建模这一典型工程问题,基于国际通用的MMG(Manoeuvring Modelling Group)标准模型实现数值仿真。压缩包共7个文件&#xff…

2026/8/31 19:29:58

猫狗图像分类实战:轻量CNN工程化落地全链路

简介:这是一份面向深度学习初学者与计算机视觉实践者的猫狗图像分类项目源码包,聚焦卷积神经网络在二分类任务中的完整实现流程,涵盖数据预处理、模型构建、训练验证与推理测试全链路。资源共10个文件,含7个核心Python脚本&#x…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/31 1:41:28

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/31 0:07:32

STM32C5设备支持包(IAR DFP)安装指南与常见坑

上一阵子在IAR里折腾一块基于STM32C5系列的新板子,工程从STM32CubeMX导出来之后怎么都编译不过。报错信息很干脆:找不到设备描述文件。跟着错误路径去查,发现指向的是一个让我愣了一下的名字:STMicroelectronics.stm32c5xx.2.1.0.…

2026/8/31 0:07:32

STM32N657 SWO引脚矛盾:CubeMX显示PB3,数据手册为PB5

拿到STM32N657这颗料的第一天,我就撞上了一个让人原地懵圈的引脚矛盾:CubeMX里清清楚楚显示SWO在PB3,翻开数据手册的引脚说明表,却赫然写着PB5。对于一个靠SWO输出调试日志吃饭的人而言,这种"工具和手册打架"…

2026/8/31 12:44:45

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/31 9:19:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/31 6:53:02

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…