请求指导利用KKT条件推导离线PPO最优策略概率的详细步骤
我来一步步带你梳理这个推导过程,咱们从拉格朗日函数构建开始,结合KKT条件逐一拆解,就能得到论文里的结果啦。
首先先做个符号简化:为了书写方便,咱们把所有依赖$s_t$的项都简写,比如$\pi(a|s_t)$写成$\pi(a)$,$\pi_{\text{old}}(a|s_t)$写成$\pi_{\text{old}}(a)$,$\mu(a|s_t)\big|_{s_t,a_t}$写成$\mu(a_t)$(这里的$\mu$只对当前动作$a_t$有约束,其他动作的$\mu(a)$足够大,约束不会生效,这是论文里对应$A_t \leq 0$场景的设定)。
步骤1:构建拉格朗日函数
我们的目标是最小化KL散度(目标函数$\sum_a \pi(a) \log \frac{\pi(a)}{\pi_{\text{old}}(a)}$就是KL散度$\text{KL}(\pi \parallel \pi_{\text{old}})$),同时满足三个约束:
- 对每个动作$a$,$\pi(a) \leq \mu(a)$(仅$a=a_t$时约束会紧,其他动作约束松弛)
- 动作概率和为1:$\sum_a \pi(a) = 1$
- 所有动作概率为正:$\pi(a) > 0$
对应的拉格朗日函数为:
$$
\mathcal{L}(\pi, \lambda, \nu) = \sum_a \pi(a) \log \frac{\pi(a)}{\pi_{\text{old}}(a)} + \sum_a \lambda_a (\pi(a) - \mu(a)) + \nu\left(1 - \sum_a \pi(a)\right)
$$
其中:
- $\lambda_a$是对应$\pi(a) \leq \mu(a)$的拉格朗日乘子(满足对偶可行性$\lambda_a \geq 0$)
- $\nu$是对应$\sum_a \pi(a) = 1$的等式约束乘子
步骤2:应用Stationarity(平稳性)条件
对每个动作$a$,求拉格朗日函数关于$\pi(a)$的偏导并令其为0:
先单独计算目标函数的偏导:
$$
\frac{\partial}{\partial \pi(a)} \left( \pi(a) \log \frac{\pi(a)}{\pi_{\text{old}}(a)} \right) = \log \frac{\pi(a)}{\pi_{\text{old}}(a)} + 1
$$
然后加上拉格朗日项的偏导,得到平稳性条件:
$$
\log \frac{\pi(a)}{\pi_{\text{old}}(a)} + 1 + \lambda_a - \nu = 0
$$
整理后得到:
$$
\pi(a) = \pi_{\text{old}}(a) \cdot \exp(\nu - 1 - \lambda_a) \tag{1}
$$
步骤3:结合互补松弛条件
互补松弛条件是$\lambda_a \cdot (\pi(a) - \mu(a)) = 0$,这意味着两种情况:
- 如果$\pi(a) < \mu(a)$(约束松弛),那么$\lambda_a = 0$
- 如果$\pi(a) = \mu(a)$(约束紧),那么$\lambda_a \geq 0$
根据论文中$A_t \leq 0$的设定,只有当前动作$a_t$的约束是紧的($\pi(a_t) = \mu(a_t)$),其他所有动作$a \neq a_t$的约束都是松弛的($\pi(a) < \mu(a)$)。
- 对于$a \neq a_t$:$\lambda_a = 0$,代入(1)式得:
$$
\pi(a) = \pi_{\text{old}}(a) \cdot \exp(\nu - 1) \tag{2}
$$ - 对于$a = a_t$:$\pi(a_t) = \mu(a_t)$,代入(1)式得:
$$
\mu(a_t) = \pi_{\text{old}}(a_t) \cdot \exp(\nu - 1 - \lambda_{a_t}) \tag{3}
$$
步骤4:利用动作概率和为1的约束求解常数项
把(2)和(3)代入$\sum_a \pi(a) = 1$:
$$
\mu(a_t) + \sum_{a \neq a_t} \pi_{\text{old}}(a) \cdot \exp(\nu - 1) = 1
$$
注意$\sum_{a \neq a_t} \pi_{\text{old}}(a) = 1 - \pi_{\text{old}}(a_t)$,代入上式:
$$
\mu(a_t) + \exp(\nu - 1) \cdot (1 - \pi_{\text{old}}(a_t)) = 1
$$
解出$\exp(\nu - 1)$:
$$
\exp(\nu - 1) = \frac{1 - \mu(a_t)}{1 - \pi_{\text{old}}(a_t)} \tag{4}
$$
步骤5:代入得到最终结果
把(4)代入(2)式,得到$a \neq a_t$时的最优策略概率:
$$
\pi_{\text{new}}(a|s_t) = \frac{\pi_{\text{old}}(a|s_t)(1 - \mu(a_t|s_t))}{1 - \pi_{\text{old}}(a_t|s_t)}
$$
而$a = a_t$时,$\pi_{\text{new}}(a_t|s_t) = \mu(a_t|s_t)$,这正好就是论文里给出的公式!
备注:内容来源于stack exchange,提问作者Amantuer Rewuhan

