1. 确定性策略梯度DPG的核心原理
确定性策略梯度(Deterministic Policy Gradient, DPG)是强化学习中处理连续动作空间的重要方法。与常见的随机策略不同,DPG直接输出确定的动作值,这种特性使其在计算效率上具有显著优势。我第一次在实际项目中应用DPG时,就被它简洁的数学形式和稳定的收敛特性所吸引。
1.1 连续动作空间的独特挑战
在连续动作空间的强化学习问题中,传统的随机策略方法面临着几个棘手的问题:
- 动作空间采样成本高:每次策略更新都需要对高维连续空间进行积分或采样
- 方差较大:随机策略的梯度估计方差随着动作空间维度增加而急剧增大
- 收敛速度慢:特别是在高精度控制任务中,随机策略需要大量样本才能收敛
以机械臂控制为例,每个关节的角度都是连续值,如果使用随机策略,我们需要对每个关节角度的概率分布进行采样,这在7自由度机械臂上就会形成7维积分,计算量非常大。
1.2 DPG的基本形式
DPG的核心思想可以用以下数学形式表示:
μθ: S → A
其中μθ是由参数θ决定的确定性策略,它将状态空间S直接映射到动作空间A。这与随机策略πθ(a|s)形成鲜明对比,后者输出的是动作的概率分布。
在实际实现中,μθ通常用神经网络表示。例如,对于一个简单的全连接网络:
python复制class DeterministicPolicy(nn.Module):
def __init__(self, state_dim, action_dim, hidden_size=64):
super().__init__()
self.fc1 = nn.Linear(state_dim, hidden_size)
self.fc2 = nn.Linear(hidden_size, hidden_size)
self.fc3 = nn.Linear(hidden_size, action_dim)
def forward(self, state):
x = F.relu(self.fc1(state))
x = F.relu(self.fc2(x))
return
