本文我们来简单介绍下一种强化学习方法——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)=−∑ipilogpi
对于连续的系统
H(x)=Ex∼P[I(x)]=−Ex∼P[logP(x)]
信息熵反映了信息量的多少,信息熵越大说明信息量越多。随机事件的信息量与随机变量的确定性有关,不确定性越大包含的信息量就越大。
交叉熵:令不完美的编码用
Q
表示,平均编码长度为
H(P,Q)=−EP(x)Q(x)=−∫P(x)logQ(x)dx
交叉熵用来衡量编码方案不一定完美时,平均编码的长度。交叉熵常被用作损失函数。原因是真实的样本部分是
P
,而模型概率分布为
Q
,只有模型分布于真实样本分布相等时,交叉熵最小。
KL散度:
DKL(P∥Q)=Ex∼P[logP(x)Q(x)]=∫P(x)logP(x)dx−∫P(x)logQ(x)dx
KL 散度用来衡量两个概率分布之间的相似程度,其重要性质是
非负性
,而且,当且仅当两个概率分布处处相等时,KL散度取到零。KL散度与一般的距离不同,它一般不具有对称性。
H(P,Q)=DKL(P∥Q)+H(P)
上述关系很容易推导,此处从略,可以看出样本的真实分布
P
保持不变,最优化交叉熵等价于最优化 KL 散度。KL散度还可用于
异常检测。
优化基础
TRPO 最终将转化为优化问题。时间有限,这里不展开介绍,具体细节参考以下两篇文章即可:
- 无约束优化问题的一般解法;
- 约束优化问题的最优性条件。
TRPO
优势函数
TRPO的关键作用在于找到合适的步长。合适的步长是指当策略更新后,回报函数的值不能更差。令
τ
表示一组状态-行为序列
s0,u0,…,sH,uH
,则回报函数为
η(π~)=Eτ|π~[∑t=0∞γtr(st)]
其中
π~
表示新策略。我们令
π
表示旧策略,那么拆分回报函数:
η(π~)=η(π)+Es0,a0,⋯∼π~[∑t=0∞γtAπ(st,at)]
其中
Aπ(s,a)=Qπ(s,a)−Vπ(s)=Es′∼P(s′|s,a)[r(s)+γVπ(s′)−Vπ(s)]
可以看出,价值函数
Vπ(s)
是该状态下所有动作致函数关于动作概率的平均值;而动作值函数
Qπ
是单个动作对应的值函数。因此,优势指的是动作函数相比于当前状态的值函数的优势。如果优势大于零,则说明该动作比平均动作好。
下面我们改写新策略回报函数公式,求取优势函数的期望,以便后续估计:
η(π~)=η(π)+∑t=0∞∑sP(st=s|π~)∑aπ~(a|s)γtAπ(s,a)
我们定义
ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+⋯
那么
η(π~)=η(π)+∑sρπ~(s)∑aπ~(a|s)γtAπ(s,a)
注意此时的状态
s
由新的策略产生,严重依赖新策略。
替代回报函数
针对此严重依赖新策略,而新策略又未知的问题,我们做一步近似,用旧策略产生的状态分布求取期望。当新旧参数很接近时,这种近似是合理的。
Lπ(π~)=η(π)+∑sρπ(s)∑aπ~(a|s)γtAπ(s,a)
一步近似过后,可以看出动作
a
也是由新策略产生,但是新策略参数是未知的。这时,我们引入
重要性采样来处理此问题。
∑aπ~(a|sn)Aθold(sn,a)=Ea∼q[π~(a|sn)q(a|sn)Aθold(sn,a)] let q(a|sn)=πθold(a|sn)11−γEs∼ρθold[⋅] approximates ∑sρθold(s)[⋅]
则替代回报函数变为
Lπ(π~)=η(π)+Es∼ρθold,a∼πθold[π~θ(a|s)πθold(a|s)Aθold(s,a)]
替代回报函数与原回报函数唯一的区别是状态的分布不同。改善
L
的策略也能改善原回报函数,那么下一步需要解决的就是步长问题。为解决此问题,我们引入一个重要不等式:
η(π~)≥Lπ(π~)−CDmaxKL(π,π~) where C=2ϵγ(1−γ)2
其中
DmaxKL
是两个分布的KL散度,证明从略。这个不等式给出了
η(π~)
的下界。
TRPO问题
我们要找的更新策略其实就是使得上述不等式下界最大的策略,该问题可转化为:
maxθ[Lθold(θ)−CDmaxKL]
利用惩罚因子
C
,每次迭代步长很小,此问题可以转化为
maxθEs∼ρθold,a∼πθold[π~θ(a|s)πθold(a|s)Aθold(s,a)]subject to DmaxKL(θold,θ)≤δ
连续问题有无穷多个状态,那么约束条件也有无穷多个,问题不可解。这里我们用平均KL散度替代最大KL散度
subject to DρθoldKL(θold,θ)≤δ
并且取
s∼ρθold→s∼πθold
最终TRPO问题简化为
maxθEs∼ρθold,a∼πθold[π~θ(a|s)πθold(a|s)Aθold(s,a)]subject to Es∼ρθold[DKL(πθold(⋅|s)∥πθ(⋅|s))]≤δ
虽然是简化版,但依然很难实现。一种更实际的办法是对TRPO目标函数进行一阶近似,约束条件进行二阶近似。
TRPO近似问题
进一步简化TRPO问题:
minθ−[∇θLθold(θ)|θ=θold⋅(θ−θold)]subject to 12(θold−θ)TA(θold)(θold−θ)≤δ
其中
Lθold(θ)|θ=θold=Es∼ρθold,a∼πθold[π~θ(a|s)πθold(a|s)Aθold(s,a)]
,
A=Eθold[∇2logπθold]
为Fisher矩阵。简化过程从略。我们可以利用
共轭梯度法求解最优更新量。此处不讨论共轭梯度法的具体细节,仅给出结果:
θ=θold+βdA(θold)d=∇θLθold(θ)|θ=θoldβ=2δdTAd−−−−−√