9.进一步讨论Policy Gradients方法

主题:

  • 为何Policy Gradient有效
  • 将Policy Gradient视为Policy Iteration
  • 对policy gradient进行受限优化
  • 自然梯度和trust regions

1. 为何Policy Gradient有效呢?

首先回顾下之前的REINFORCE算法:

image.png

其中的梯度可以通过采样进行计算可以表示为:
image.png

为了降低variance,引入baseline之后,可以把梯度转换为优势函数的形式。
image.png

那么则我们可以把PG的过程看做两步,先根据\pi评估A,然后使用A去更新\pi'

image.png

这个过程和之前的policy iteration算法有些类似:
image.png

2. 将Policy Gradient视为Policy Iteration

PG的方法有两个比较重要的问题:一是采样效率,需要引入IS转换为off-policy。第二个问题是来自梯度更新,由于它是在参数空间上做的更新,但是其实参数空间并不等价于policy空间,有时候\theta微小的变化会导致Policy的巨大改变。
所以就有了两个诉求:

  • 如何在引入IS的情况下尽可能避免policy差异过大。
  • 如何在保证policy不发生突变的情况下进行参数的更新。

这里我们根据引入IS的情况,量化分析下问题的影响程度。如果我们可以将policy gradient转化为policy iteration,那么就可以借助policy iteration中的证明方法得到policy gradient是否可以稳定提升,误差有多少。而这其实就是要计算更新前后的policy是否变好。
所以从policy iteration的角度来看,就需要计算update前后policy的关系,也就是所谓的Relative policy performance identity,具体推导如下:

image.png

结论是:
image.png

使用IS然后展开:
image.png

这里只留下了最外层的的期望,如果可以将这个替换为,那么就可以通过最大化这个Relative policy performance identity来获得新的参数。
image.png

3. 分布变化的约束

只要两个policy足够接近,那么两个policy关于某个state的probability就可以足够接近。那么只要policy足够接近,就可以对两个期望做替换。先看看确定性策略的情况:

image.png

再证明是任意分布的情况:
image.png

在确定性策略与任意分布的情况下,分布的变化都可以被bouding,并且具有同样的形式。
image.png

这样我们确实就可以通过最大化Relative policy performance identity来获得新的参数,但是他的条件是两个策略足够得接近。
image.png

3.1 使用KL散度约束边界

通过上面的推导,我们知道可以对策略的概率做差的绝对值,但是在实际实施上难以优化。为了有可行性从而引入了KL散度。两个分布之间的KL散度边界以及KL散度的定义为:


image.png

即如果我们将KL散度进行约束,那么原始约束函数也就满足,两者存在转化的等价性。所以优化的目标也就转化为如下的形式,约束发生了改变,问题更容易优化了。


image.png

4. KL散度约束的实施

KL散度约束的实施可以有几种方法:

4.1 Dual gradient descent

第一种方法叫:Dual gradient descent
可以拉格朗日算子进行求解最优化问题,先将损失转化为拉格朗日乘子的形式,然后进行迭代求解:

image.png

从直观上理解,将约束引入目标函数后,乘子 也是一个需要优化的参数。当约束违反程度大的时候,后面拉格朗日项就变成特别大的负项,如果需要最大化这个目标,则需要将乘子变大,反之依然。通过对这个乘子的调节,进而修正约束部分的重要性,从而达到自适应优化的目标。

4.2 策略梯度(policy gradient)

第二种方法是: Policy Gradient
可以尝试对目标函数进行适当的处理,降低优化的难度?我们可以尝试对目标函数进行一阶泰勒展开,我们将原来的目标函数转换为:

image.png

image.png

由于这里所有操作的前提是与的差距很小,所以在参数对应的位置可以进行整体性的替换替换为。
image.png

这个其实也就是policy gradient的梯度公式,那么除了约束的部分,整体也就和policy gradient没有差别了。那么是否可以将它当作一个正常的policy gradient进行操作?Gradient ascent的操作其实可以理解为在parameter space上做一个小的修改,也就是说它相当于在parameter space上做约束的优化;
image.png

这种时候,它其实也就是我们常见的gradient ascent方法加一个动态学习率:
image.png

从前面的推导过程,我们就把policy iteration带回了policy gradient,policy gradient也就是相当于对参数空间做约束的策略提升的过程。而它的问题也就来自这里,parameter space与policy space是不匹配的。,与,不是一样的。
image.png

也就是说这种约束是保证不了Monotonic Improvement Theory的要求的,所以它的优化会比较不稳定。基于这个问题,下面引入了natural gradient去解决这个问题。

4.3 自然策略梯度(Natural Policy Gradient)

第三种方法是: Natural Policy Gradient
我们考虑对KL散度使用二阶的泰勒展开,其中其中F是KL散度的Hessian函数,也被称为Fisher信息矩阵,它可以通过样本进行估计:

image.png

所以整体上梯度更新就可以按照如下的形式:
image.png

但是这种二阶的 方法计算复杂度过高。

4.4 TRPO(Trust Region Policy Optimization)

TRPO主要针对自然梯度存在的两个问题提出了解决方案:第一个就是求逆矩阵的高复杂度问题,第二个则是对KL散度做的近似中可能存在的约束违反的问题做了预防。
首先就是求逆操作的高复杂度问题,TRPO将它转化为求解线性方程组,并利用共轭梯度算法(conjugate gradient algorithm)进行近似求解(这里有要求inverse matrix是positive definite的,所以在TRPO中有对目标函数的约束)。总体而言,它的过程如下:


image.png

其次,针对如何对违反约束做限制,这里用的是exponential decay line search的方式,也就是对于一个样本,如果某次更新违反了约束,那么就把它的系数进行指数衰减,从而减少更新的幅度,直到它不再违反约束或者超过一定次数衰减则抛弃这次的数据。


image.png

4.5 PPO(Proximal Policy Optimization)

相比上面使用自然梯度进行KL约束的近似,PPO则另辟蹊径,它并不直接求解这个约束,而是通过一些启发式的方法达到这个目的,论文中主要提出如下两类。
首先是Adaptive KL penalty,它直接将KL散度从约束转化为惩罚项,作为目标函数的一部分,每次更新时候则计算当前迭代对KL散度的违反程度,如果KL值过大,则增大它的系数,强化这个惩罚项的重要程度,反之亦然。

image.png

而第二种则是Clipped Surrogate Objective,对目标做裁剪。前面使用到KL散度是要约束策略空间,从而约束trajectory的分布。那么这里则直接对这个概率比值做clip,设置一个阈值,直接从根源上限制策略空间的差异。
原先的目标是如下形式的,其中:
image.png

那么clip后的式子也就是如下形式, 是一个比较小的阈值:
image.png

基于这两种方式的更新,虽然在理论上没有保证,但是在实践中往往高效且有不错的效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容