1. 策略梯度算法基础解析
在强化学习领域,策略梯度(Policy Gradients,简称PG)算法代表了一种与价值函数方法截然不同的范式。与DQN等基于价值的方法不同,PG直接对策略进行建模和优化,这种差异带来了独特的优势和挑战。
1.1 策略梯度与价值方法的本质区别
传统Q-learning系列算法(如DQN)的核心思想是通过学习状态-动作价值函数Q(s,a)来间接指导行为选择。这种方法需要评估所有可能的动作价值,然后选择价值最高的动作。然而,当动作空间变得连续或维度极高时,这种"先估值再选择"的机制就会遇到严重瓶颈。
PG算法则采用了更为直接的思路:它直接参数化策略π(a|s),即给定状态下选择各个动作的概率分布。这种方法的优势主要体现在三个方面:
- 天然支持连续动作空间:网络可以直接输出高斯分布的参数(均值和方差),在无限的动作空间中优雅地进行采样
- 避免了argmax操作:不需要在每一步计算所有可能的Q值,计算效率更高
- 支持随机策略:可以学习到概率性的行为模式,这在部分博弈场景中至关重要
提示:在机械控制等连续动作场景中,PG方法通常比DQN表现更好,因为DQN需要对无限的动作空间进行离散化处理,既损失精度又增加计算负担。
1.2 策略参数化的常见形式
在实际实现中,策略通常通过神经网络进行参数化。根据动作空间的不同,输出层的设计也有所区别:
-
离散动作空间:采用softmax输出层,每个神经元对应一个动作的概率
python复制# 离散动作空间输出层示例 self.fc = nn.Sequential( nn.Linear(state_dim, 64), nn.ReLU(), nn.Linear(64, action_dim), nn.Softmax(dim=-1) # 确保输出是有效的概率分布 ) -
连续动作空间:输出高斯分布的参数(均值和方差)
python复制# 连续动作空间输出层示例 self.mean_layer = nn.Sequential( nn.Linear(state_dim, 64), nn.ReLU(), nn.Line
