1. Actor-Critic算法概述:强化学习的双轨策略
1999年提出的Actor-Critic算法是强化学习领域的重要里程碑。这种混合架构巧妙结合了策略梯度(Policy Gradient)和价值函数(Value Function)两种方法的优势,就像赛车手(Actor)与导航员(Critic)的完美配合——前者负责决策动作,后者评估决策质量。我在实际项目中多次验证过,这种分工比单纯的策略优化或价值迭代具有更稳定的收敛性。
传统策略梯度方法需要完成整个回合(episode)才能更新参数,就像必须跑完全程才知道路线优劣。而Actor-Critic通过Critic的实时评估,实现了单步更新(TD Learning),这在实际工程中显著提升了训练效率。特别是在《大模型算法:强化学习、微调与对齐》中提到的大规模场景下,这种优势更为明显。
2. 算法核心架构拆解
2.1 Actor网络:策略的具现化
Actor本质是一个参数化的策略函数π(a|s;θ),输入状态s输出动作概率分布。我在机器人控制项目中常用两层128节点的MLP实现,注意输出层激活函数的选择:
- 离散动作空间:Softmax保证概率归一化
- 连续动作空间:Tanh限制输出范围(如关节角度)
关键技巧:初始化最后一层权重为小随机值(如0.01),避免初始策略过于激进
2.2 Critic网络:价值评估专家
Critic学习状态价值函数V(s;w),采用TD误差作为评估信号。实践表明,使用以下结构能获得稳定评估:
class Critic(nn.Module): def __init__(self, state_dim): super().__init__() self.fc1 = nn.Linear(state_dim, 64) self.fc2 = nn.Linear(64, 32) self.out = nn.Linear(32, 1) # 输出标量价值 def forward(self, state): x = F.relu(self.fc1(state)) x = F.relu(self.fc2(x)) return self.out(x)3. 训练流程与实现细节
3.1 同步更新机制
算法通过以下交互流程实现学习(以离散动作为例):
执行阶段:
- Actor根据当前策略选择动作a_t ~ π(·|s_t)
- 环境返回奖励r_{t+1}和新状态s_{t+1}
学习阶段:
- Critic计算TD误差:δ = r + γV(s') - V(s)
- 更新Critic参数:w ← w + α_w·δ·∇V(s)
- 更新Actor参数:θ ← θ + α_θ·δ·∇logπ(a|s)
实测参数建议:γ∈[0.9,0.99],α_actor=0.001,α_critic=0.01
3.2 优势函数改进版
原始算法直接使用TD误差作为策略梯度权重,容易导致高方差。现代实现常引入优势函数A(s,a)=Q(s,a)-V(s),我通常在代码中这样计算:
def compute_advantage(rewards, values, gamma=0.99, lam=0.95): # 使用GAE(Generalized Advantage Estimation) deltas = rewards[:-1] + gamma * values[1:] - values[:-1] advantages = [] advantage = 0 for delta in reversed(deltas): advantage = delta + gamma * lam * advantage advantages.append(advantage) return torch.tensor(advantages[::-1])4. 实战问题排查手册
4.1 典型故障现象与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 策略收敛到单一动作 | 学习率过高或探索不足 | 增加熵正则项β·H(π) |
| Critic损失剧烈震荡 | 价值估计尺度不匹配 | 对奖励进行归一化/标准化 |
| 长期回报无提升 | 信用分配问题 | 采用n-step TD或蒙特卡洛修正 |
4.2 收敛性优化技巧
- 策略熵监控:在训练日志中增加
-Σπlogπ指标,确保维持在合理区间(如离散动作空间>0.5) - 双Q网络技巧:类似DQN,使用目标网络计算TD目标,大幅提升稳定性
- 梯度裁剪:对Critic的梯度进行L2范数限制(通常设1.0)
5. 现代演进与扩展应用
5.1 从A2C到PPO的进化
原始Actor-Critic已发展出多个改进版本,我在不同场景下的选型建议:
- A2C(同步Advantage):适合单机多核环境
- A3C(异步版):分布式训练首选
- PPO:当前最稳定的策略优化算法
5.2 与大模型结合的新范式
《强化学习导论第二版》中预测的趋势正在成为现实:Actor-Critic架构天然适配LLM微调。具体表现为:
- Actor作为生成策略(如ChatGPT的对话策略)
- Critic通过人类反馈(RLHF)学习价值函数
- 最近项目中使用KL散度约束策略更新幅度,有效防止灾难性遗忘