TRPO 简述 - A Brief Introduction to Trust Region Policy Optimization

本文我们来简单介绍下一种强化学习方法——TRPO (Trust Region Policy Optimization),中文名称是“置信域策略优化”。该方法由伯克利博士生 John Schulman 提出。TRPO 是策略搜索方法中的一类随机策略搜索方法,它正面解决了梯度更新步长选择的问题,给出了一种单调的策略改善方法。

本文仅简要论述其原理,更多细节请参考:

Schulman J., Optimizing Expectations: From Deep Reinforcement Learning to Stochastic Computation Graphs. PhD thesis, University of California, Berkeley, 2016.

数学基础

首先给出一些数学基础,对于统计、优化功底较强的读者可直接跳过。

信息论基础

信息熵:对于离散的系统

H ( X ) = i p i log p i
对于连续的系统
H ( x ) = E x P [ I ( x ) ] = E x P [ log P ( x ) ]
信息熵反映了信息量的多少,信息熵越大说明信息量越多。随机事件的信息量与随机变量的确定性有关,不确定性越大包含的信息量就越大。

交叉熵:令不完美的编码用 Q 表示,平均编码长度为

H ( P , Q ) = E P ( x ) Q ( x ) = P ( x ) log Q ( x ) d x
交叉熵用来衡量编码方案不一定完美时,平均编码的长度。交叉熵常被用作损失函数。原因是真实的样本部分是 P ,而模型概率分布为 Q ,只有模型分布于真实样本分布相等时,交叉熵最小。

KL散度

D K L ( P Q ) = E x P [ log P ( x ) Q ( x ) ] = P ( x ) log P ( x ) d x P ( x ) log Q ( x ) d x
KL 散度用来衡量两个概率分布之间的相似程度,其重要性质是 非负性 1,而且,当且仅当两个概率分布处处相等时,KL散度取到零。KL散度与一般的距离不同,它一般不具有对称性。
H ( P , Q ) = D K L ( P Q ) + H ( P )
上述关系很容易推导,此处从略,可以看出样本的真实分布 P 保持不变,最优化交叉熵等价于最优化 KL 散度。KL散度还可用于 异常检测

优化基础

TRPO 最终将转化为优化问题。时间有限,这里不展开介绍,具体细节参考以下两篇文章即可:

  1. 无约束优化问题的一般解法
  2. 约束优化问题的最优性条件

TRPO

优势函数

TRPO的关键作用在于找到合适的步长。合适的步长是指当策略更新后,回报函数的值不能更差。令 τ 表示一组状态-行为序列 s 0 , u 0 , , s H , u H ,则回报函数为

η ( π ~ ) = E τ | π ~ [ t = 0 γ t r ( s t ) ]
其中 π ~ 表示新策略。我们令 π 表示旧策略,那么拆分回报函数:
η ( π ~ ) = η ( π ) + E s 0 , a 0 , π ~ [ t = 0 γ t A π ( s t , a t ) ]
其中 2
A π ( s , a ) = Q π ( s , a ) V π ( s ) = E s P ( s | s , a ) [ r ( s ) + γ V π ( s ) V π ( s ) ]
可以看出,价值函数 V π ( s ) 是该状态下所有动作致函数关于动作概率的平均值;而动作值函数 Q π 是单个动作对应的值函数。因此,优势指的是动作函数相比于当前状态的值函数的优势。如果优势大于零,则说明该动作比平均动作好。

下面我们改写新策略回报函数公式,求取优势函数的期望,以便后续估计:

η ( π ~ ) = η ( π ) + t = 0 s P ( s t = s | π ~ ) a π ~ ( a | s ) γ t A π ( s , a )
我们定义
ρ π ( s ) = P ( s 0 = s ) + γ P ( s 1 = s ) + γ 2 P ( s 2 = s ) +
那么
η ( π ~ ) = η ( π ) + s ρ π ~ ( s ) a π ~ ( a | s ) γ t A π ( s , a )
注意此时的状态 s 由新的策略产生,严重依赖新策略。

替代回报函数

针对此严重依赖新策略,而新策略又未知的问题,我们做一步近似,用旧策略产生的状态分布求取期望。当新旧参数很接近时,这种近似是合理的。

L π ( π ~ ) = η ( π ) + s ρ π ( s ) a π ~ ( a | s ) γ t A π ( s , a )
一步近似过后,可以看出动作 a 也是由新策略产生,但是新策略参数是未知的。这时,我们引入 重要性采样来处理此问题。
a π ~ ( a | s n ) A θ o l d ( s n , a ) = E a q [ π ~ ( a | s n ) q ( a | s n ) A θ o l d ( s n , a ) ]  let  q ( a | s n ) = π θ o l d ( a | s n ) 1 1 γ E s ρ θ o l d [ ]  approximates  s ρ θ o l d ( s ) [ ]
则替代回报函数变为
L π ( π ~ ) = η ( π ) + E s ρ θ o l d , a π θ o l d [ π ~ θ ( a | s ) π θ o l d ( a | s ) A θ o l d ( s , a ) ]
替代回报函数与原回报函数唯一的区别是状态的分布不同。改善 L 的策略也能改善原回报函数,那么下一步需要解决的就是步长问题。为解决此问题,我们引入一个重要不等式:
η ( π ~ ) L π ( π ~ ) C D K L max ( π , π ~ )  where  C = 2 ϵ γ ( 1 γ ) 2
其中 D K L max 是两个分布的KL散度,证明从略。这个不等式给出了 η ( π ~ ) 的下界。

TRPO问题

我们要找的更新策略其实就是使得上述不等式下界最大的策略,该问题可转化为:

max θ [ L θ o l d ( θ ) C D K L max ]
利用惩罚因子 C ,每次迭代步长很小,此问题可以转化为
max θ E s ρ θ o l d , a π θ o l d [ π ~ θ ( a | s ) π θ o l d ( a | s ) A θ o l d ( s , a ) ] subject to  D K L max ( θ o l d , θ ) δ
连续问题有无穷多个状态,那么约束条件也有无穷多个,问题不可解。这里我们用平均KL散度替代最大KL散度
subject to  D K L ρ θ o l d ( θ o l d , θ ) δ
并且取
s ρ θ o l d s π θ o l d
最终TRPO问题简化为
max θ E s ρ θ o l d , a π θ o l d [ π ~ θ ( a | s ) π θ o l d ( a | s ) A θ o l d ( s , a ) ] subject to  E s ρ θ o l d [ D K L ( π θ o l d ( | s ) π θ ( | s ) ) ] δ
虽然是简化版,但依然很难实现。一种更实际的办法是对TRPO目标函数进行一阶近似,约束条件进行二阶近似。

TRPO近似问题

进一步简化TRPO问题:

min θ [ θ L θ o l d ( θ ) | θ = θ o l d ( θ θ o l d ) ] subject to  1 2 ( θ o l d θ ) T A ( θ o l d ) ( θ o l d θ ) δ
其中 L θ o l d ( θ ) | θ = θ o l d = E s ρ θ o l d , a π θ o l d [ π ~ θ ( a | s ) π θ o l d ( a | s ) A θ o l d ( s , a ) ] , A = E θ o l d [ 2 log π θ o l d ] 为Fisher矩阵。简化过程从略。我们可以利用 共轭梯度法求解最优更新量。此处不讨论共轭梯度法的具体细节,仅给出结果:
θ = θ o l d + β d A ( θ o l d ) d = θ L θ o l d ( θ ) | θ = θ o l d β = 2 δ d T A d


  1. 很容易证明:
    D K L ( P Q ) = i = 1 n p i log q i i = 1 n p i log p i = i = 1 n p i log ( q i p i ) i = 1 n p i ( q i / p i 1 ) ( ln ( x ) x 1 , ln ( x ) = x 1 x = 1 ) = i = 1 n ( q i p i ) = i = 1 n q i i = 1 n p i = 0
  2. 证明
    E τ | π ~ [ t = 0 γ t A π ( s t , a t ) ] = E τ | π ~ [ t = 0 γ t ( r ( s t ) + γ V π ( s t + 1 ) V π ( s t ) ) ] = E τ | π ~ [ t = 0 γ t ( r ( s t ) ) + t = 0 γ t ( γ V π ( s t + 1 ) V π ( s t ) ) ] = E τ | π ~ [ t = 0 γ t ( r ( s t ) ) ] + E s 0 [ V π ( s 0 ) ] (from the same initial state) = η ( π ~ ) η ( π )

猜你喜欢

转载自blog.csdn.net/philthinker/article/details/79551892