title:Reward-to-go 数学推导
date: 2025-02-19 17:29:01
tags:


直观理解

回顾一下原始的期望回报:

我们的agent应该只根据某一action的后果来强化行动,因此采取行动之前获得的奖励与该行动的好坏无关:只与之后的奖励有关。

从这一直觉出发,可以有:
$$
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \sum_{t=1}^T \mathbb{E}{\tau \sim p{\boldsymbol{\theta}}(\tau)} \left[ \nabla_{\boldsymbol{\theta}} \log \pi_{\boldsymbol{\theta}} (\mathbf{a}t \mid \mathbf{s}t) ,\sum{t’=t}^T r(\mathbf{s}{t’}, \mathbf{a}_{t’}) \right]
$$

下面我们用数学语言严格证明一下。

EGLP引理

先介绍一个结论,即Expected Grad-Log-Prob (EGLP) lemma。
$$
\mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta}(a_t \mid s_t) \right] = 0.
$$
证明

由于概率积分为1:

两边取梯度:

https://spinningup.openai.com/en/latest/_images/math/acde4d18e221ccd91e93e6ca4e25ae84d05f29d8.svg

接着运用很常见的技巧(对数梯度):

reward-to-go证明

展开表达式:
$$
\begin{aligned}
\nabla_{\theta} J(\theta) &= \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \left( \sum_{t=1}^T \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \right) \left( \sum_{t=1}^T r(s_t, a_t) \right) \right] \
%
&= \sum_{t=1}^T \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=1}^T r(s_{t’}, a_{t’}) \right] \
%
&= \sum_{t=1}^T \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=1}^{t-1} r(s_{t’}, a_{t’}) + \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=t}^T r(s_{t’}, a_{t’}) \right] \
%
&= \sum_{t=1}^T \left( \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=1}^{t-1} r(s_{t’}, a_{t’}) \right] \

  • \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=t}^T r(s_{t’}, a_{t’}) \right] \right) \
    \end{aligned}
    $$
    在第$t$轮中,由于Markov假设,1~t-1时刻的奖励和$\nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t)$是独立的。因为action只和当前状态有关。

于是就可以分离开:
$$
\nabla_{\theta} J(\theta) = \sum_{t=1}^T \left( \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \sum_{t’=1}^{t-1} r(s_{t’}, a_{t’}) \right] \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \right] \

  • \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=t}^T r(s_{t’}, a_{t’}) \right] \right)
    $$

第一项根据EGLP引理可以变为0.从而只留下最后一项。
$$
\begin{aligned}
\nabla_{\theta} J(\theta)
%
&= \sum_{t=1}^T \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \left[ \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \sum_{t’=t}^T r(s_{t’}, a_{t’}) \right] \
%
&= \mathbb{E}{\tau \sim \pi{\theta}(\tau)} \sum_{t=1}^T \nabla_{\theta} \log \pi_{\theta} (a_t \mid s_t) \left( \sum_{t’=t}^T r(s_{t’}, a_{t’}) \right). \
\end{aligned}
$$