重参数化技术

一、DPG 算法的确定性策略本质

1. 动作生成方式

  • 确定性策略:DPG 算法的策略网络直接输出确定性动作值,即 \(a = \mu(\theta)\),其中 \(\theta\) 是策略参数,\(\mu\) 是神经网络表示的映射函数。
  • 无采样过程:动作生成不涉及概率分布采样,因此不存在随机采样带来的不可导问题。

2. 可导性的数学基础

  • 神经网络本身是由可导函数(如 ReLU、线性变换等)组成的计算图,因此动作 a 关于参数 \(\theta\) 的梯度 \(\frac{\partial a}{\partial \theta}\) 可通过反向传播直接计算。
  • 示例:若策略网络为 \(\mu(\theta) = W\theta + b\)(简化为线性层),则动作对参数的导数为 \(\frac{\partial a}{\partial \theta} = W\),显然可导。

二、重参数化技术的适用场景对比

维度确定性策略(DPG)随机性策略(如 PPO、SAC)
动作生成 直接输出确定值 \(a = \mu(\theta)\) 从分布中采样 \(a \sim \pi_\theta(a)\)
不可导来源 无(无采样操作) 采样操作 \(a \sim p(\cdot)\) 不可导
重参数化需求 不需要 需要(将采样分解为可导变换)
PyTorch 示例 a = policy_network(obs) a = dist.rsample()(如高斯分布)

案例说明:

  • 确定性策略:DDPG 算法中,策略网络直接输出连续动作(如机器人关节角度),动作对参数的导数可通过链式法则计算,无需重参数化。
  • 随机性策略:若策略为高斯分布 \(\pi_\theta(a) = \mathcal{N}(\mu(\theta), \sigma(\theta))\),直接采样 \(a \sim \pi_\theta\) 不可导,需通过重参数化 \(a = \mu(\theta) + \sigma(\theta) \odot \epsilon\)(\(\epsilon \sim \mathcal{N}(0,1)\))使梯度可传递。

三、连续动作空间可导的关键条件

  1. 动作与参数的确定性映射 只要动作是策略参数的显式函数(如神经网络前向传播的输出),无论动作空间是否连续,其对参数的导数始终存在。例如:
    • 连续动作:\(a = \tanh(W\theta + b)\),导数为 \(\text{diag}(1 - a^2) \cdot W\);
    • 离散动作(但 DPG 通常不处理离散空间):若强制让网络输出 one-hot 向量(如 softmax),则动作对参数可导,但此时属于离散空间的连续近似(如 Gumbel-Softmax),与 DPG 的确定性策略本质不同。
  2. 随机性策略的例外情况 当连续动作空间采用随机性策略时(如 SAC 算法),必须使用重参数化(如rsample()),因为采样过程本身不可导。此时若不使用重参数化,梯度将无法通过采样操作传递,导致策略无法优化。

四、总结:连续动作空间在 DPG 中的可导性

  • 确定性策略场景:无需重参数化,动作对策略参数天然可导,因为动作是参数的确定性函数,计算图全程可导。
  • 随机性策略场景:必须重参数化,否则采样操作会切断梯度流,此时rsample()是保证可导性的关键技术。

因此,问题的核心在于区分 “确定性策略” 与 “随机性策略”——DPG 属于前者,其连续动作空间的可导性不依赖重参数化技术,而随机性策略中的连续动作空间才需要重参数化。
posted @ 2025-06-15 18:21  有何m不可  阅读(28)  评论(0)    收藏  举报