前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hands on Reinforcement Learning 11 Trust Region Policy Optimization

Hands on Reinforcement Learning 11 Trust Region Policy Optimization

作者头像
一只野生彩色铅笔
发布2023-04-09 10:25:19
3620
发布2023-04-09 10:25:19
举报
文章被收录于专栏:彩铅的随笔博客

11 TRPO 算法

11.1 简介

本书之前介绍的基于策略的方法包括策略梯度算法和 Actor-Critic 算法。这些方法虽然简单、直观,但在实际应用过程中会遇到训练不稳定的情况。回顾一下基于策略的方法:参数化智能体的策略,并设计衡量策略好坏的目标函数,通过梯度上升的方法来最大化这个目标函数,使得策略最优。具体来说,假设

\theta

表示策略

\pi_\theta

的参数,定义

\displaystyle J(\theta)=\mathbb{E}_{\pi_{\theta}}[V^{\pi_\theta}(s_0)]=\mathbb{E}_{\pi_{\theta}}[\sum_{t=0}^\infin \gamma^t r(s_t,a_t)]

,基于策略的方法的目标是找到

\theta^*=\underset{\theta}{\argmax}J(\theta)

,策略梯度算法主要沿着

\nabla_\theta J(\theta)

方向迭代更新策略参数

\theta

。但是这种算法有一个明显的缺点:当策略网络是深度模型时,沿着策略梯度更新参数,很有可能由于步长太长,策略突然显著变差,进而影响训练效果。

针对以上问题,我们考虑在更新时找到一块信任区域(trust region),在这个区域上更新策略时能够得到某种策略性能的安全性保证,这就是信任区域策略优化(trust region policy optimization,TRPO)算法的主要思想。TRPO 算法在 2015 年被提出,它在理论上能够保证策略学习的性能单调性,并在实际应用中取得了比策略梯度算法更好的效果。

11.2 策略目标

假设当前策略为

\pi_\theta

,参数为

\theta

。我们考虑如何借助当前的

\theta

找到一个更优的参数

\theta'

,使得

J(\theta')\ge J(\theta)

。具体来说,由于初始状态

s_0

的分布和策略无关,因此上述策略

\pi_\theta

下的优化目标

J(\theta)

可以写成在新策略

\pi_{\theta'}

的期望形式:

\begin{aligned} J(\theta) &= \mathbb{E}_{s_0} [V^{\pi_\theta}(s_0)]\\ &= \mathbb{E}_{\pi_{\theta'}} \bigg[\sum_{t=0}^\infin \gamma^tV^{\pi_\theta}(s_t) - \sum_{t=1}^\infin \gamma^t V^{\pi_{\theta}}(s_t)\bigg]\\ &= -\mathbb{E}_{\pi_{\theta'}} \bigg[\sum_{t=0}^\infin \gamma^t \Big(\gamma V^{\pi_\theta}(s_{t+1}) - V^{\pi_{\theta}}(s_t)\Big)\bigg]\\ \end{aligned}

基于以上等式,我们可以推导新旧策略的目标函数之间的差距:

\begin{aligned} J(\theta') - J(\theta) &= \mathbb{E}_{s_0}[V^{\pi_{\theta'}}(s_0)] - \mathbb{E}_{s_0}[V^{\pi_{\theta}}(s_0)] \\ &= \mathbb{E}_{\pi_{\theta'}}\Big[ \sum_{t=0}^\infin \gamma^tr(s_t,a_t) \Big] - \mathbb{E}_{\pi_{\theta'}} \bigg[\sum_{t=0}^\infin \gamma^t \Big(\gamma V^{\pi_\theta}(s_{t+1}) - V^{\pi_{\theta}}(s_t)\Big)\bigg] \\ &= \mathbb{E}_{\pi_{\theta'}} \bigg[\sum_{t=0}^\infin \gamma^t \Big(r(s_t,a_t) + \gamma V^{\pi_\theta}(s_{t+1}) - V^{\pi_{\theta}}(s_t)\Big)\bigg] \\ \end{aligned}

将时序差分残差定义为优势函数

A

\begin{aligned} &= \mathbb{E}_{\pi_{\theta'}} \bigg[\sum_{t=0}^\infin \gamma^t A^{\pi_\theta}(s_t,a_t)\bigg] \\ &= \sum_{t=0}^\infin \gamma^t \mathbb{E}_{s_t \sim P_t^{\pi_{\theta'}}} \mathbb{E}_{a_t \sim \pi_{\theta'}(\cdot|s_t)} [A^{\pi_\theta}(s_t,a_t)] \\ &= \dfrac{1}{1-\gamma} \mathbb{E}_{s_t \sim P_t^{\pi_{\theta'}}} \mathbb{E}_{a_t \sim \pi_{\theta'}(\cdot|s_t)} [A^{\pi_\theta}(s_t,a_t)] \\ \end{aligned}

最后一个等号的成立运用到了状态访问分布的定义:

\displaystyle \nu^\pi(s)=(1-\gamma)\sum_{t=0}^\infin (1-\gamma)\gamma^tP_t^\pi(s)

,所以只要我们能找到一个新策略,使得

\mathbb{E}_{s \sim \nu^{\pi_{\theta'}}} \mathbb{E}_{a \sim \pi_{\theta'}(\cdot|s)} [A^{\pi_\theta}(s_t,a_t)] \ge 0

,就能保证策略性能单调递增,即

J(\theta') \ge J(\theta)

但是直接求解该式是非常困难的,因为

\pi_{\theta'}

是我们需要求解的策略,但我们又要用它来收集样本。把所有可能的新策略都拿来收集数据,然后判断哪个策略满足上述条件的做法显然是不现实的。于是 TRPO 做了一步近似操作,对状态访问分布进行了相应处理。具体而言,忽略两个策略之间的状态访问分布变化,直接采用旧的策略

\pi_\theta

的状态分布,定义如下替代优化目标:

L_\theta(\theta') = J(\theta) + \dfrac{1}{1-\gamma} \mathbb{E}_{s \sim \nu^{\pi_{\theta'}}} \mathbb{E}_{a \sim \pi_{\theta'}(\cdot|s)} [A^{\pi_\theta}(s_t,a_t)]

当新旧策略非常接近时,状态访问分布变化很小,这么近似是合理的。其中,动作仍然用新策略

\pi_{\theta'}

采样得到,我们可以用重要性采样对动作分布进行处理:

L_\theta(\theta') = J(\theta) + \mathbb{E}_{s \sim \nu^{\pi_{\theta'}}} \mathbb{E}_{a \sim \pi_{\theta'}(\cdot|s)} \bigg[ \dfrac{\pi_{\theta'}(a|s)}{\pi_{\theta}(a|s)} A^{\pi_\theta}(s_t,a_t)\bigg]

这样,我们就可以基于旧策略

\pi_\theta

已经采样出的数据来估计并优化新策略

\pi_{\theta'}

了。为了保证新旧策略足够接近,TRPO 使用了库尔贝克-莱布勒(Kullback-Leibler,KL)散度来衡量策略之间的距离,并给出了整体的优化公式:

\begin{aligned} & \underset{\theta'}{\max} L_\theta(\theta')\\ & \text{s.t. } \mathbb{E}_{s \sim \nu^{\pi_{\theta_k}}} \Big[ D_{KL}(\pi_{\theta_k}(\cdot|s), \pi_{\theta'}(\cdot|s)) \Big]\le\delta \end{aligned}

这里的不等式约束定义了策略空间中的一个 KL 球,被称为信任区域。在这个区域中,可以认为当前学习策略和环境交互的状态分布与上一轮策略最后采样的状态分布一致,进而可以基于一步行动的重要性采样方法使当前学习策略稳定提升。TRPO 背后的原理如图 11-1 所示。

图11-1 TRPO原理示意图

左图表示当完全不设置信任区域时,策略的梯度更新可能导致策略的性能骤降;右图表示当设置了信任区域时,可以保证每次策略的梯度更新都能来带性能的提升。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 11 TRPO 算法
    • 11.1 简介
      • 11.2 策略目标
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档