第8章:强化学习与深度学习
策略梯度方法
基本概念
策略梯度方法(Policy Gradient Methods)是强化学习中一类直接优化策略函数的算法。与基于值函数的方法(如DQN)不同,策略梯度方法直接对策略参数进行梯度上升,以最大化期望回报。
核心思想:
- 策略通常表示为参数化函数
- 通过采样轨迹计算回报的梯度
- 使用梯度上升更新策略参数:
数学推导
目标函数(期望回报):
策略梯度定理:
主要变体
REINFORCE算法(蒙特卡洛策略梯度):
- 使用完整轨迹的回报作为估计
- 高方差但无偏
Actor-Critic方法:
- 引入值函数作为基线减少方差
- Actor更新策略,Critic评估状态/动作值
Advantage Actor-Critic (A2C):
- 使用优势函数
- 平衡偏差与方差
Proximal Policy Optimization (PPO):
- 通过裁剪机制限制策略更新幅度
- 更稳定的训练过程
实现要点
# Pytorch实现简化版策略梯度
class PolicyNetwork(nn.Module):
def __init__(self, state_dim, action_dim):
super().__init__()
self.fc = nn.Linear(state_dim, action_dim)
def forward(self, state):
return F.softmax(self.fc(state), dim=-1)
def compute_policy_gradient(trajectories, gamma=0.99):
rewards = [r for (s,a,r) in trajectories]
discounted_rewards = [sum(gamma**i * r for i,r in enumerate(rewards[t:]))
for t in range(len(rewards))]
policy_loss = []
for (s,a,_), G in zip(trajectories, discounted_rewards):
log_prob = torch.log(policy_net(s)[a])
policy_loss.append(-log_prob * G)
return torch.stack(policy_loss).mean()
优缺点分析
优势:
- 直接优化策略,适合连续动作空间
- 可以学习随机策略
- 理论保证收敛到局部最优
挑战:
- 高方差导致训练不稳定
- 样本效率通常较低
- 对超参数(如学习率)敏感
典型应用场景
- 机器人控制(连续动作空间)
- 游戏AI(如AlphaGo的策略网络)
- 金融交易策略优化
- 自动驾驶决策系统
前沿发展
- 分布式策略梯度(如A3C)
- 逆向强化学习结合策略梯度
- 基于模型的策略梯度方法
- 分层策略梯度架构
关键提示:实际实现时建议使用现代库(如RLlib或Stable Baselines3),它们提供了优化后的策略梯度实现和自动微分支持。
