从强化学习到PPO的理论部分(学习笔记) 从强化学习到PPO的理论部分(学习笔记)1.强化学习的基本概念2.理论推导部分3.针对R(τ)n的优化3.1对R(τ)n引入时间步的考量3.2状态价值函数,动作价值函数,优势函数3.3时序差分和GAE4.Proximal Policy Optimization(PPO)邻近策略优化4.1On-policy和Off-Policy4.2重要性采样4.3最终的形式
最近从头开始学习强化学习以及PPO,花了两天的时间才搞懂了一些基本的概念和流程。主要参考了B站UP主RethinkFun的《零基础学习强化学习算法:ppo》,在这里记录一下自己的学习笔记。
1.强化学习的基本概念 State(状态),
Action(动作),
Environment(系统设定等环境),
Agent(智能体或模型)
Reward:奖励,指Agent在某个State下执行了某个Action与Environment交互之后得到的奖励,记为r
Policy:策略,主要指Agent在某个State下执行各个Action的概率分布,记为$\pi_{\theta}(a|s)$
Trajectory:轨迹,指在策略$\theta$下的某次具体的路径,也即Policy的一次采样值,记为$\tau$,由一连串的${{s_{1},a_1,s_2,a_2,\ldots}}$构成
Return:回报,指某次Trajectory结束后得到的累积Reward
所以强化学习的目标是:训练一个Policy神经网络$\pi$,在所有状态State下,做出相应的Action,得到相应的Reward,使得Return的期望最大
或者表述为:训练一个Policy神经网络$\pi$,在所有的Trajectory下,Return的期望最大
2.理论推导部分 前面提到,强化学习的目标是最大化Return的期望,Return的期望可以表示为
$$ E(R(\tau))_{\tau\in P_\theta(\tau)} = \sum_\tau R(\tau)*P_\theta (\tau) $$而对于公式中的 $P_{\theta}(\tau)$ ,表示的是该策略下选到该轨迹的概率,根据Trajectory的定义,其可以表示为:
$$ P_\theta (\tau) = \prod_{t=1}^T \pi_\theta(a_t|s_t)*p(s_{t+1}|s_t,a_t) $$这里要怎么理解呢?根据Trajectory的定义,轨迹是由一连串的$s_1,a_1,s_2,a_2,\ldots,s_t,a_t$构成,因此可由某状态下执行某动作的概率*某个动作导致下一状态的概率连乘表示,其中$\pi_\theta(a_t|s_t)$由Policy决定(由下标也可以看出来),而$p(s_{t+1}|s_t,a_t)$由Environment决定。
接着,我们知道在深度学习中,不管是求损失函数的最小值还是目标函数的最大值,都需要用到梯度下降法或者梯度上升法,所以这里我们来求$E(R(\tau))_{\tau\in P_\theta(\tau)}$的梯度
$$ \begin{align*} \nabla_\theta E(R(\tau))_{\tau\in P_\theta(\tau)}&= \nabla_\theta \sum_\tau R(\tau)*P_\theta (\tau) \\ &=\sum_\tau R(\tau)*\nabla_\theta P_\theta(\tau)\\ \end{align*} $$这里涉及到一个技巧:$\nabla ln(f(x)) = \frac{\nabla f(x)}{f(x)}$,因此我们可以用$P_\theta(\tau) \nabla_\theta ln(P_\theta (\tau))$替换掉公式中的$\nabla_\theta P_\theta (\tau)$,得到
$$ \begin{align*} &=\sum_\tau R(\tau)*P_\theta(\tau)\nabla_\theta ln(P_\theta(\tau))\\ &=\sum_\tau R(\tau)*P_\theta(\tau)\sum_{t=1}^T\nabla_\theta ln\pi_\theta(a_t|s_t)\\ &=E_{\tau\in P_\theta(\tau)}(R(\tau)\sum_{t=1}^T\nabla_\theta ln\pi_\theta(a_t|s_t)) \end{align*} $$这里不难理解,用到了期望的基本定义;之后我们再次用到期望的一个性质:
...