无题
title:Reward-to-go 数学推导
date: 2025-02-19 17:29:01
tags:
- 强化学习
- 人工智能
- 技术
- 计算机
- 目录结构
categories: 技术
cover: https://s3.bmp.ovh/imgs/2024/06/13/e2aa614f45568c02.jpg
直观理解
回顾一下原始的期望回报:
我们的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:
两边取梯度:
接着运用很常见的技巧(对数梯度):
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}
$$