TRPO(Trust Region Policy Optimization), 置信域策略优化,是Policy Search Methods中的一类随机策略搜索算法,它正面解决了梯度更新步长选择的问题,给出了一种单调的策略改善方法。
回顾策略梯度的方法,在策略梯度中我们的更新满足如下关系:
θnew=θold+α▽θJ
策略梯度的难点之一在于步长
α的选择,当补偿选择不合适时更新的参数会变差,因此更容易导致越来越差,最后崩溃。
那么什么样的步长是合适的呢?
试想一下如果我们能找到一种步长,使每次更新时都能保证回报函数单调递增,这样的步长就是好步长,TRPO的核心就是解决这些问题。
我们用
τ来表示一条轨迹(行为-状态序列),那么这种策略下的期望回报为:
η(π
)=Eτ∣π
[t=0∑∞γtr(st)]
既然TRPO的目的是为了使每次更新的回报函数单调递增,那么一个很自然的想法就是将新策略对应的回报函数分解成原来策略的回报加上一个大于零的项,我们就得到了一个一直提升策略的方案。
所以我们得到如下等式:
η(π
)=η(π)+Eτ∈π
t=0∑∞[γtAπ(st,at)]
其中
Aπ(s,a)=Qπ(s,a)−Vπ(s)=Es′∼P(s′∣s,a)[r(s)+γVπ(s′)−Vπ(s)]
证明:
Eτ∈π
[t=0∑∞γtAπ(st,at)]=Eτ∈π
[t=0∑∞γt(r(st)+γVπ(st+1)−Vπ(st))]
=Eτ∈π
[t=0∑∞γtr(st)+t=0∑∞γt(γVπ(st+1)−Vπ(st))]
=Eτ∈π
[t=0∑∞γtr(st)]+Es0[−Vπ(s0)]两种策略from the same initial state
=η(π
)−η(π)
称
Aπ(s,a)为advantage function, 状态值函数
Vπ(s)是该状态下所有动作关于动作概率的期望,状态-动作值函数
Qπ是单个动作对应的值函数。因此advantage function指的是该动作比平均动作的优势。
我们将公式展开可以得到:
η(π
)=η(π)+t=0∑∞s∑P(st=s∣π
)a∑π
(a∣s)γtAπ(s,a)
进一步变形得到:
η(π
)=η(π)+s∑ρπ
(s)a∑π
(a∣s)γtAπ(s,a)
式中
ρπ
(s)=P(s0)+γP(s1=s)+γ2P(s2=s)+...
注意这里
s是由新分布产生的,对新分布有很强的依赖性。这个公式其实在应用中完全无法达到,因为我们是为了得到新的策略,所以这里的其他项完全无从得知,为此,TRPO采取了一些技巧来解决这个问题。
下面我们来介绍TRPO论文中的四个技巧:
- 在原式中计算
ρπ
(s)时,我们需要新的策略,而新策略目前还未知,因此,我们可以利用旧策略来代替新策略,因为两者相差并不是很大。
- 利用重要性采用处理动作分布
a∑
Reference:
https://blog.csdn.net/weixin_41679411/article/details/82421121
https://blog.csdn.net/philthinker/article/details/79551892
https://blog.csdn.net/philthinker/article/details/76038513
https://zhuanlan.zhihu.com/p/26174099
https://www.cnblogs.com/vpegasus/p/plan_learn.html