本文是自己的TRPO算法学习笔记,在数学原理推导核心部分附有自己的理解与解释。整篇文章逻辑清晰,思路顺畅。有想推导的同学可以一起学习。
TRPO和PPO都是基于Minorize-Maximization MM的算法。
Surrogate function
RL中期望maximizing the expected discounted rewards,期望折扣奖励 η 可用如下数学公式表示:
η(πθ)=τ∼πθE[t=0∑∞γtrt]
我们希望去找到一个surrogate function(替代函数),替代函数具有如下性质:
- a lower bound function for η;(是η的一个下界函数)
- approximate η at the current policy (在当前策略下能够近似等于 η)
- easy to optimize. (找这样一个替代函数的目的就是方便优化)
其图形表示为下图所示(蓝色表示下界函数,红色表示期望折扣奖励):

在每一次迭代中,希望去找到一个对于下界函数M来说的最优点,并把它当作当前的策略,如下图所示:

之后,我们基于新的policy,重新评估下界(re-evaluate a lower bound),并重复迭代。重复上述过程,策略将会被持续改进。由于策略集有限,所以所以最终将会收敛到局部最优或者全局最优,整个流程如下图所示:

整体的目标就是在原有的参数空间 θ上很难去计算最优值,我们期望用一个替代函数来作为它的lower bound,下界函数比较好优化,然后通过迭代的方式让其逼近原始最优解。
Objective function
上述想法就很不错,现在我们需要去寻找目标函数和替代函数了。
首先我们去定义Q-Value function,Value function和Advantage function,如下:
Qπ(st,at)=Est+1,at+1,⋯[l=0∑∞γlr(st+l)]
Vπ(st)=Eat,st+1,⋯[l=0∑∞γlr(st+1)]
Aπ(s,a)=Qπ(s,a)−Vπ(s)
其中 at∼π(at∣st),st+1∼P(st+1∣st,at) ,t≥0。
Expected discounted reward
期望折扣奖励 η 可被表示为:
η(π)=Es0,a0,⋯[t=0∑∞γtr(st)]
其中,s0∼ρ0(s0),at∼π(at∣st),st+1∼P(st+1∣st,at)
由于我们要比较更新前后的两个策略,从而保证策略一直在进步,所以作者这里是将新老策略写到了一个公式中:
η(π~)=η(π)+s∑ρπ~(s)a∑π~(a∣s)Aπ(s,a)
其中 ρπ be the (unnormalized) discounted visitation frequencies (任意时刻状态s的访问概率和),其展开形式表示为:
ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+⋯
如果能保证∑sρπ~(s)∑aπ~(a∣s)Aπ(s,a)大于0,那新的策略下的期望折扣奖励就一直是在进步的。那这里就有两个问题了,1. 上述新老策略写在一个公式里面的证明呢?2. 如何去保证后面的附加项大于0?
证明:
τ∼π~E[∑t=0∞γtAπ(st,at)]=τ∼π~E[∑t=0∞γt(R(st,at,st+1)+γVπ(st+1)−Vπ(st))]=η(π~)+τ∼π~E[∑t=0∞γt+1Vπ(st+1)−∑t=0∞γtVπ(st)]=η(π~)+τ∼π~E[∑t=1∞γtVπ(st)−∑t=0∞γtVπ(st)]=η(π~)−τ∼π~E[Vπ(s0)]=η(π~)−η(π)
由此我们只剩下了第二点,从某个策略π出发,通过计算找到一个策略π~,使得:
s∑ρπ~(s)a∑π~(a∣s)Aπ(s,a)≥0
即可使得 η(π~)≥η(π),也就是说策略改变之后,整体的收益也会增加,从而实现单调递增。那现在所有的问题都转化到了如何使得∑sρπ~(s)∑aπ~(a∣s)Aπ(s,a)≥0?
Function L
∑sρπ~(s)∑aπ~(a∣s)Aπ(s,a)在实际中几乎是不可行的,因为公式中包含ρπ~(s),也就是说我们需要按照新的策略π~与环境交互得到状态s的访问频率,但是这个新的策略π~是我们需要去求解的策略。也就是说如果要做的话,我们需要先确定新的策略π~,然后使用这个新的策略得到一定量样本,并最终通过这些样本统计判断这个策略能够满足上述要求,使得策略递增。我们需要不断地去尝试每一个可能的新策略。显然这种做法非常低效。
于是需要去找与上述公式的近似且可解的形式,定义function L:
Lπ(π~)=η(π)+s∑ρπ(s)a∑π~(a∣s)Aπ(s,a)
与之前的公式:
η(π~)=η(π)+s∑ρπ~(s)a∑π~(a∣s)Aπ(s,a)
对比,我们可以发现,两者的不同仅仅在于状态访问概率ρπ~(s)、ρπ(s)的不同。那Lπ(π~)能否满足要求呢?其实两者的数值和导数方向都是相同的,那么用Lπ(π~)代替原始目标函数也是可以的,要求更新的幅度不要太大就好。
上面说了这么多,其实就是为了说明我们更新的幅度不要太大,因为更新大了之后,上述近似函数就无法成立,Lπ(π~)无法成立的话,你所拿策略π采样得到的样本就没用了,因为实际上样本是要去新的策略π~里面去采样的,只是因为做了近似才可以用老的策略π去采样。所以那我们怎么来保证其更新幅度不要太大呢?

从之前的分析中可以知道L是下界函数(bound function)M中的一部分,M中的另外一项是KL散度(KL-divergence):
DKL(P∣Q∣)=ExlogQ(x)P(x)
因此我们把策略模型看成一个概率分布,使用KL散度表示两个分布的距离。那两者之间有什么关系呢?原论文中作者用两页纸证明了 η 的下界:
η(πnew)≥Lπold(πnew)−(1−γ)24εγα2
其中 ε=maxs,a∣Aπ(s,a)∣,α=DTVmax(πold,πnew),DTVmax(π,π~)=maxDTV(π(⋅∣s)∣∣π~(⋅∣s)),DTV(p∣∣q)=21∑i∣pi−qi∣。
DTV 是total variation divergence,由于:
DTV(p∣∣q)2≤DKL(p∣∣q)
得到新的下界函数(lower bound function):
η(π~)≥Lπ(π~)−CDKLmax(π,π~)
其中 C=(1−γ)24εγ,DKLmax(π,π~)=maxsDKL(π(⋅∣s)∣∣π~(⋅∣s))
Monotonically improving guarantee
What we really prove here is the new policy generated from optimizing M will have a guarantee that it will perform better in η (the real expected rewards) than the old policy. Since there are only finite policies, the continuous improvement will only lead us to a local or a global optimal point.
令Mi(π)=Lπi(π)−CDKLmax(πi,π),有η(πi+1)≥Mi(πi+1),η(πi)=Mi(πi),所以可以得到:
η(πi+1)−η(πi)≥Mi(πi+1)−Mi(πi)
则πi+1=argmaxπMi(π)时,期望折扣奖励将在下一次迭代被提升。
由此我们可以得到保证策略提升的算法。Here is the iteration algorithm that guarantees that the new policy will always perform better than the current one.

此时算法的目标函数变为:
maximizeπ~[Lπ(π~)−CDKLmax(π,π~)]
上式过于保守,将其做一些转变,得到有约束条件的优化目标:
maximizeπLπold(π)
s.t.DKLmax(πold,π)≤δ
在公式中需要对最大值进行约束,而最大值表示为KL散度上界,这实际上相当于对所有状态的KL散度进行约束,这样约束条件会变得多而复杂,将最大值变成均值理论上有所放松,但实际效果还好,于是有了:

优化目标Lπ(π~)为:
Lπ(π~)=η(π)+s∑ρπ(s)a∑π~(a∣s)Aπ(s,a)
而其中π~(a∣s)与新策略有关,无法对其采样,由此我们引入重要性采样:
a∑πθ(a∣sn)Aθold (sn,a)=Ea∼q[q(a∣sn)πθ(a∣sn)Aθold (sn,a)]
the objective can be rewritten as:
θmaximizeEs∼ρθold ,a∼q[q(a∣s)πθ(a∣s)A^θold (s,a)] subject to Es∼ρθold [DKL(πθold (⋅∣s)∥πθ(⋅∣s))]≤δ
With Lagrangian duality, a constraint for an objective function can be integrated back to the objective function with a multiplier. Both are mathematically the same(利用拉格朗日对偶,把约束项提到目标函数中去):

直觉的看法
在之前的Gradient ascent方法中都是选择了梯度的方向,如下图中的左图所示,但是更新步长如果选取地不好很容易掉入深渊:

在TRPO中限制了更新步长,并且在数学上证明了会收敛到局部最优或者全局最优:

-
参考文献:
- https://medium.com/@jonathan_hui/rl-the-math-behind-trpo-ppo-d12f6c745f33
- 强化学习精要核心算法与Tensorflow实现。