Typesetting math: 100%

从TRPO到PPO(理论分析与数学证明)

本文首发于行者AI

引言

一篇关于强化学习算法的理论推导,或许可以帮助你理解PPO算法背后的原理,从而找到改进PPO算法的灵感...

马尔可夫决策过程由(S,A,P,r,ρ0,γ)(S,A,P,r,ρ0,γ)六个元素构成。其中SS是一个有限的状态空间集合,AA是一个有限的动作空间集合。P:S×A×SRP:S×A×SR 表示状态转移概率函数,例如P(s|s,a)=0.6P(s|s,a)=0.6表示的含义就是在状态ss处执行动作aa到达的状态为ss的概率为0.6。r:SRr:SR是奖励函数,ρ0:SRρ0:SR是初始状态分布概率函数,γ(0,1)γ(0,1)是折扣因子。

ππ表示一个随机策略函数π:S×A[0,1]π:S×A[0,1],例如π(s,a)=0.5π(s,a)=0.5表示在状态ss处选择动作aa的概率为0.5。令η(π)η(π)表示基于策略ππ的长期期望折扣奖励:η(π)=Es0,a0,[t=0γtr(st)]η(π)=Es0,a0,[t=0γtr(st)], 其中s0ρ0(s0),atπ(at|st),st+1P(st+1|st,at)s0ρ0(s0),atπ(at|st),st+1P(st+1|st,at)

下面给出状态价值函数、状态动作价值函数、优势函数的定义:

(1)状态动作价值函数

Qπ(st,at)=Est+1,at+1,[l=0γlr(st+l)]Qπ(st,at)=Est+1,at+1,[l=0γlr(st+l)]

表示的是在状态stst处执行动作atat后获得的长期期望折扣奖励。

(2)状态价值函数:

Vπ(st)=Eat,st+1,[l=0γlr(st+l)]=Eat[Qπ(st,at)]Vπ(st)=Eat,st+1,[l=0γlr(st+l)]=Eat[Qπ(st,at)]

表示从状态stst开始获得的长期期望折扣奖励。

(3)优势函数

Aπ(s,a)=Qπ(s,a)Vπ(s,a)Aπ(s,a)=Qπ(s,a)Vπ(s,a)

表示的是在状态ss处,动作aa相对于平均水平的高低。

强化学习的目标就是最大化长期期望折扣奖励

η(π)=Es0,a0,[t=0γtr(st)]η(π)=Es0,a0,[t=0γtr(st)]

其中策略函数ππ可以看作是带有参数θθ的随机策略π(s,a)=πθ(s,a)π(s,a)=πθ(s,a)。在策略梯度算法(Policy Gradient)中,参数θθ的更新公式为

θnew=θold+αθη(θ)θnew=θold+αθη(θ)

这样的更新公式容易导致以下问题:如果步长αα选取不合适,那么会导致θnewθnewθoldθold差,当使用θnewθnew进行采样学习的时候,采取到的样本就是比较差的样本,再继续使用不好的样本对参数进行更新,得到的是更加不好的策略,从而导致恶性循环。TRPO算法解决的问题就是:如何选择一个合适的更新策略,或是如何选择一个合适的步长,使得更新过后的策略πθnewπθnew一定比更新前的策略πθoldπθold好呢?

1.TRPO的理论分析

1.1 不同策略的长期期望折扣奖励之间的关系

先来看一下基于策略ππ的长期折扣奖励

η(π)=Es0,a0,[t=0γtr(st)]η(π)=Es0,a0,[t=0γtr(st)]

对于另一个策略˜π~π,两个策略之间的长期折扣奖励函数η(˜π)η(~π)η(π)η(π)之间的关系为:

η(˜π)=η(π)+Es0,a0,˜π[t=0γtAπ(st,at)]       (3.1)η(~π)=η(π)+Es0,a0,~π[t=0γtAπ(st,at)]       (3.1)

其中Aπ(st,at)Aπ(st,at)为优势函数,Aπ(st,at)=Qπ(st,at)Vπ(st)Aπ(st,at)=Qπ(st,at)Vπ(st)。(证明过程见文章后面附录证明4.1)。

上述公式要注意的点是s0,a0,˜πs0,a0,~π表示轨迹中的状态和动作都是基于策略˜π~π采样得到的,而Aπ(st,at)Aπ(st,at)表示的是策略ππ的优势函数。
为了方便公式的书写和后续求导的计算,定义

ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+

则公式(3.1)(3.1)可以改写为:

η(˜π)=η(π)+sρ˜π(s)s˜π(a|s)Aπ(s,a)        (3.2)η(~π)=η(π)+sρ~π(s)s~π(a|s)Aπ(s,a)        (3.2)

证明过程见文章后面附录证明4.2。

1.2 替代函数的建立

再来回顾一下我们在背景中提出的目标:找到一个合适的步长,使得每一个更新得到的新的策略πnewπnew要比更新前的策略πoldπold,体现在公式上就是要求η(πnew)η(πold)η(πnew)η(πold)

由于公式(3.2)(3.2)中的ρ˜πρ~π˜π~π有强烈的依赖性,但是在更新之前我们还不知道策略˜π~π的具体形式,所以我们考虑找到一个η(˜π)η(~π)的替代函数:

Lπ(˜π)=η(π)+sρπ(s)a˜π(a|s)Aπ(s,a)       (3.3)Lπ(~π)=η(π)+sρπ(s)a~π(a|s)Aπ(s,a)       (3.3)

这个替代函数的作用是什么呢,可以帮助我们得到ηη函数的哪些性质呢?把策略ππ表示为带有参数θθ的随机策略π=πθπ=πθ,给出下面定理:Lπθ0(πθ)Lπθ0(πθ)η(πθ)η(πθ)θ0θ0处一阶近似,用公式表示为:

{Lπθ0(πθ0)=η(πθ0)θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0{Lπθ0(πθ0)=η(πθ0)θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0

证明过程见文章后面附录证明4.3。

上述公式的第二个等式可以告诉我们:在θ=θ0θ=θ0附近,η(πθ)=Lπθ0(πθ)η(πθ)=Lπθ0(πθ)的曲线的变化趋势相同,因为一阶导数的意义就是曲线的变化趋势。又因为这两个函数在θ=θ0θ=θ0处的值相等(公式的第一个等式),所以在θ=θ0θ=θ0的附近,可以通过优化Lπθ0(πθ)Lπθ0(πθ)来达到优化η(πθ)η(πθ)的目的,注意是:θ=θ0θ=θ0的附近!!!附近!!!下面给出一个一阶近似的例子:

一阶近似

如图所示:函数f(x)=x1f(x)=x1 与 函数g(x)=lnxg(x)=lnxx=1x=1处是一阶近似的,即f(1)=g(1)f(1)=g(1), f(1)=g(1)f(1)=g(1),所以这两个函数的曲线的变化趋势在x=1x=1处是近乎相同的。

πoldπold来表示更新前的策略,定义π=argmaxπLπold(π)π=argmaxπLπold(π)
我们采用一种软更新的方式对策略进行更新,更新公式为

πnew=(1α)πold+απ        (3.4)πnew=(1α)πold+απ        (3.4)

其中πnewπnew就表示更新之后的策略,αα为更新步长。

部分读者在阅读到这里的时候可能会产生以下疑问:为什么不直接把ππ直接当作更新之后的策略呢?Lπold(π)Lπold(πold)Lπold(π)Lπold(πold)不是可以推导出η(π)η(πold)η(π)η(πold)吗?

解答:因为这是一种迭代更新方式,ππ只是给出了一个可以优化πoldπold的方向,我们要做的是将πoldπoldππ的那个方向迭代,而不是直接将ππ当作更新之后的策略;另外Lπold(π)Lπold(πold)Lπold(π)Lπold(πold)并不可以直接推导出η(π)η(πold)η(π)η(πold),因为ππ并不一定在πoldπold的附近!

1.3 TRPO算法的推出

再来回顾一下我们最初的目的:找到一个合适的步长,使得每一个更新得到的新的策略πnewπnew要比更新前的策略πoldπold好。那么使用软更新方式得到的策略πnewπnew是否比更新前的策略πoldπold好呢,换句话说,是否成立η(πnew)η(πold)η(πnew)η(πold)呢?其实π=argmaxπLπold(π)π=argmaxπLπold(π)给我们的优化提供了方向,我们的关键就在于如何选择合适的步长使得更新之后的策略一定是比更新之前的策略好。再思考一下,其实一定有Lπold(πnew)Lπold(πold)Lπold(πnew)Lπold(πold), 因为πnewπnew是从πoldπold朝着ππ的方向迭代的,并且Lπold(π)Lπold(πold)Lπold(π)Lπold(πold)。再回想一下前面我们说:在π=πoldπ=πold附近,Lπold(π)Lπold(πold)Lπold(π)Lπold(πold)等价于η(π)η(πold)η(π)η(πold), 所以我们只需要把πnewπnew限制在πoldπold附近即可,可以通过放在惩罚项或者约束上进行限制。如何限制两个策略的差异性呢,可以使用两个策略的KL散度:DmKLax(θold,θnew)DmKLax(θold,θnew),因为KL散度是用来度量两个概率分布相似度的指标。其实从这个分析我们就可以得到最终的TRPO算法了,原论文中给出了严格的数学推导,我们大概介绍一下思路(可以不看):

πnewπnew是按照更新公式(3.4)(3.4)得到的新策略,从论文[1]中可以得到下面不等式成立:

η(πnew)Lπold(πnew)2ϵγ(1γ)2α2       (3.5)η(πnew)Lπold(πnew)2ϵγ(1γ)2α2       (3.5)

其中ϵ=maxs|Eaπ(a|s)[Aπ(s,a)]|ϵ=maxs|Eaπ(a|s)[Aπ(s,a)]|

我们可以令α=DmaxTV(πold,πnew)α=DmaxTV(πold,πnew), 进而成立:

η(πnew)Lπold(πnew)4ϵγ(1γ)2α2η(πnew)Lπold(πnew)4ϵγ(1γ)2α2

其中ϵ=maxs,a|Aπ(s,a)|ϵ=maxs,a|Aπ(s,a)|
再根据不等式:DTV(p||q)2DKL(p||q)DTV(p||q)2DKL(p||q),令DmaxKL(π,˜π)=maxsDKL(π(·|s)||˜π(·|s))DmaxKL(π,~π)=maxsDKL(π(|s)||~π(|s)) 成立:

η(˜π)Lπ(˜π)CDmaxKL(π,˜π)η(~π)Lπ(~π)CDmaxKL(π,~π)

其中C=4ϵγ(1γ)2C=4ϵγ(1γ)2

给出下面策略更新算法:

策略更新算法

假设我们根据上面这个算法得出一个策略序列π0,π1,π0,π1,,下面证明该策略序列是越来越好的,即η(π0)η(π1)η(π0)η(π1)

Mi(π)=Lπi(π)CDmaxKL(πi,π)Mi(π)=Lπi(π)CDmaxKL(πi,π), 则成立:

η(πi+1)Mi(πi+1)η(πi+1)Mi(πi+1)

η(πi)=Mi(πi)η(πi)=Mi(πi)

等式成立是因为当˜π=π~π=π时,DmaxKL(π,˜π)=0DmaxKL(π,~π)=0

所以成立:η(πi+1)η(πi)Mi(πi+1)M(πi)η(πi+1)η(πi)Mi(πi+1)M(πi)

所以在第i次迭代时,Mi(π)Mi(π)可以作为η(π)η(π)的替代函数,从而得到的策略序列是越来越好的。进而每一个更新过后的策略πnewπnew都好于更新前的策略πoldπold。目的达到。
如果这个数学证明没看懂没有关系,可以直接通过之前的语言分析理解TRPO算法。

为了方便将πθoldπθold写作θoldθold, 在接下来的分析中,我们都考虑带有参数θθ的策略πθ(a|s)πθ(a|s)。通过之前的分析,从而我们可以通过优化下面的式子来达到优化η(π)η(π)的目的:

maximizeθ  [Lθold(θ)CDmKLax(θold,θ)]maximizeθ  [Lθold(θ)CDmKLax(θold,θ)]

但是有C作为惩罚系数,会导致每次的DmKLax(θold,θ)DmKLax(θold,θ)的值特别小,从而导致更新的步子很小,降低更新速度,所以我们考虑将惩罚项变为约束项:

maximizeθ  Lθold(θ)subject  to  DmaxKL(θold,θ)δmaximizeθ  Lθold(θ)subject  to  DmaxKL(θold,θ)δ

用语言理解就是在以θ0θ0为球(圆)心,以δδ为半径的区域中搜索可以提高Lπold(π)Lπold(π)(等价于提高η(π)η(π))的策略ππ。这就是TRPO算法。

注意到Lθold(θ)=η(θold)+sρθold(s)aπθ(a|s)Aθold(s,a)Lθold(θ)=η(θold)+sρθold(s)aπθ(a|s)Aθold(s,a), 其中η(θold)η(θold)相对于θθ来说是常数,可以去掉,因此上述公式变为

maximizeθ  sρθoldaπθ(a|s)Aθold(s,a)subject  to  DmaxKL(θold,θ)δmaximizeθ  sρθoldaπθ(a|s)Aθold(s,a)subject  to  DmaxKL(θold,θ)δ

1.4 重要度采样

在最开始推导公式(3.1)(3.1)的时候,我们当时说了等号右边的s,as,a基于策略˜π~π采样的,但是在真实世界中,因为在更新前˜π~π是未知的,所以我们没法基于˜π~π采样,所以我们考虑使用重要度采样,假设我们使用策略q(a|s)q(a|s)进行采样,那么我们的优化函数要有所变化:

sρθold(s)aπ(a|s)Aπ(s,a)=sρθold(s)aq(a|s)πθ(a|s)q(a|s)Aθold(s,a)=sρθold(s)Eaq[πθ(a|s)q(a|s)Aθold(s,a)]=Esρθold,aq[Aθold(s,a)]sρθold(s)aπ(a|s)Aπ(s,a)=sρθold(s)aq(a|s)πθ(a|s)q(a|s)Aθold(s,a)=sρθold(s)Eaq[πθ(a|s)q(a|s)Aθold(s,a)]=Esρθold,aq[Aθold(s,a)]

所以最终TRPO的更新算法变为:

maximizeθ  Esρθold,aq[Aθold(s,a)]subject  to  DKL(θold,θ)δmaximizeθ  Esρθold,aq[Aθold(s,a)]subject  to  DKL(θold,θ)δ

注意:这里的ss还是服从ρθoldρθold的概率,即ρθold(s)ρθold(s)中的动作aa的概率还是基于策略θoldθold!!这里是大家比较容易理解错误的地方,误以为ss公式中的aa是基于采样策略qq的。并且这里的采样概率q(a|s)q(a|s)可以是任意的,只用来采样而已!!后来TRPO算法在做的时候直接将πθold(a|s)πθold(a|s)当作采样策略q(a|S)q(a|S)

2. PPO算法的理论分析

2.1 TRPO算法的局限性

但是采样策略qq真的可以任意吗?太任意会出现什么问题呢?我们来看下面这个例子:

重要度采样

如图所示,p(x)p(x)是真实的分布概率,q(x)q(x)是采样时候使用的概率,显然二者的差异很大。设曲线p(x),q(x),f(x)p(x),q(x),f(x)交点的横坐标为x=0x=0,所以在采样的时候,我们大多采到的是x>0x>0的点,因为q(x)q(x)在正半轴的概率值更大,所以我们最终得到的Ex[f(x)]Ex[f(x)]的值为正值,但是真实的状况是,xx大多分布在负半轴,真实的Ex[f(x)]Ex[f(x)]应该为负值,这就是由于采样概率和真实概率差距过大导致的误差。

所以我们还得限制采样策略q(a|s)q(a|s)和更新策略π(a|s)π(a|s)的相似度,使得他们尽可能的相像,这就是PPO算法要做的事情了。

2.2 PPO算法

第一种思路:记得我们在分析TRPO算法中,使用了KL散度限制了策略πθ(a|s)πθ(a|s)和策略πθolda|s)πθolda|s)的相似度,使得他们两个的差距不能太大,所以我们考虑直接用πθold(a|s)πθold(a|s)当作采样策略q(a|s)q(a|s),所以这就同时限制了采样策略和策略πθ(a|s)πθ(a|s)的差距,一举两得,这就得到了PPO算法:

maximizeθ  Es,aθold[Aθold(s,a)βDKL(θold,θ)]maximizeθ  Es,aθold[Aθold(s,a)βDKL(θold,θ)]

注意到这里的ρ(s)ρ(s)公式中的aa的概率也是基于策略θoldθold的。

2.3 PPO2算法

第二种思路:在优化公式中对q(a|s)q(a|s)πθ(a|s)πθ(a|s)进行限制,采用了截断函数,当两个函数的比值过大时,用1+ϵ1+ϵ截断,当两个函数的比值过小时,采用1ϵ1ϵ截断。PPO2算法如下:

maximizeθ  Esρθold,aq(a|s)min(πθ(a|s)q(a|s)Aθold(s,a),clip(πθ(a|s)q(a|s),1ϵ,1+ϵ)Aθold(a|s))maximizeθ  Esρθold,aq(a|s)min(πθ(a|s)q(a|s)Aθold(s,a),clip(πθ(a|s)q(a|s),1ϵ,1+ϵ)Aθold(a|s))

其实这里的采样策略q(a|s)q(a|s)是可以使用任意采样策略的,可能是为了效果更好,在PPO的论文中,依然按照TRPO算法的方式,将πθold(a|s)πθold(a|s)作为采样策略q(a|s)q(a|s):

maximizeθ  Es,aθoldmin(πθ(a|s)πθold(a|s)Aθold(s,a),clip(πθ(a|s)πθold(a|s),1ϵ,1+ϵ)Aθold(a|s))maximizeθ  Es,aθoldmin(πθ(a|s)πθold(a|s)Aθold(s,a),clip(πθ(a|s)πθold(a|s),1ϵ,1+ϵ)Aθold(a|s))

3.参考文献

[1] Kakade,Sham and Langford,John. Approximately optimal approximate reinfocement learning(https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=EAB75A180B3AE59A7A516BF93A00863C?doi=10.1.1.7.7601&rep=rep1&type=pdf). In ICML, volume2,pp.267-247,2002.

[2] R.Sutton, D.McAllester, S.Singh, and Y.Mansour. Policy gradient methods for reinforcement learning with function approximation(https://homes.cs.washington.edu/~todorov/courses/amath579/reading/PolicyGradient.pdf). Neural Information Processing Systemsm,13,2000.

[3] J.Schulman, S.Levine, P.Moritz, M.I.Jordan, and P.Abbeel."Trust region policy optimization"(https://arxiv.org/abs/1502.05477). In: CoRR, ans/1502.05477(2015).

[4] Proximal Policy Optimization Algorithms](https://arxiv.org/abs/1707.06347), Schulman et al. 2017

4.附录证明

4.1 证明:η(˜π)=η(π)+Es0,a0,˜π[t=0γtAπ(st,at)]η(~π)=η(π)+Es0,a0,~π[t=0γtAπ(st,at)]

η(π)=Es0,a0,[t=0γtr(st)]=E[Vπ(s0)]η(π)=Es0,a0,[t=0γtr(st)]=E[Vπ(s0)]

Es0,a0,˜π[t=0γtAπ(st,at)]=Es0,a0,˜π[t=0γt(Qπ(st,at)Vπ(st))]=Es0,a0,˜π[t=0γt(r(st)+γVπ(st+1)Vπ(st))]=Es0,a0,˜π[Vπ(s0)+t=0γtr(st)]=Es0[Vπ(s0)]+Es0,a0,˜π[t=0γtr(st)]=η(π)+η(˜π)Es0,a0,~π[t=0γtAπ(st,at)]=Es0,a0,~π[t=0γt(Qπ(st,at)Vπ(st))]=Es0,a0,~π[t=0γt(r(st)+γVπ(st+1)Vπ(st))]=Es0,a0,~π[Vπ(s0)+t=0γtr(st)]=Es0[Vπ(s0)]+Es0,a0,~π[t=0γtr(st)]=η(π)+η(~π)

4.2 证明:η(˜π)=η(π)+sρ˜π(s)a˜π(a|s)Aπ(s,a)η(~π)=η(π)+sρ~π(s)a~π(a|s)Aπ(s,a)

η(˜π)=η(π)+Es0,a0,˜π[t=0γtAπ(st,at)]=η(π)+t=0sP(st=s|˜π)a˜π(a|s)γtAπ(s,a)=η(π)+st=0γtP(st=s|˜π)a˜π(a|s)Aπ(s,a)=η(π)+sρ˜π(s)a˜π(a|s)Aπ(s,a)η(~π)=η(π)+Es0,a0,~π[t=0γtAπ(st,at)]=η(π)+t=0sP(st=s|~π)a~π(a|s)γtAπ(s,a)=η(π)+st=0γtP(st=s|~π)a~π(a|s)Aπ(s,a)=η(π)+sρ~π(s)a~π(a|s)Aπ(s,a)

4.3 证明:

{Lπθ0(πθ0)=η(πθ0)θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0{Lπθ0(πθ0)=η(πθ0)θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0

Lπ(˜π)=η(π)+sρπ(s)a˜π(a|s)Aπ(s,a)Lπ(~π)=η(π)+sρπ(s)a~π(a|s)Aπ(s,a)

˜π=π~π=π时:

Lπ(π)=η(π)+sρπ(s)a˜π(a|s)Aπ(s,a)Lπ(π)=η(π)+sρπ(s)a~π(a|s)Aπ(s,a)

对于每一个ss

aπ(a|s)Aπ(s,a)=Ea[Aπ(s,a)]=Ea[Qπ(s,a)Vπ(s)]=Ea[Qπ(s,a)Ea[Qπ(s,a)]]=E[Qπ(s,a)]Ea[Ea[Qπ(s,a)]]=E[Qπ(s,a)]E[Qπ(s,a)]=0aπ(a|s)Aπ(s,a)=Ea[Aπ(s,a)]=Ea[Qπ(s,a)Vπ(s)]=Ea[Qπ(s,a)Ea[Qπ(s,a)]]=E[Qπ(s,a)]Ea[Ea[Qπ(s,a)]]=E[Qπ(s,a)]E[Qπ(s,a)]=0

上述推导过程中第五行到第六行的推导过程中的Ea[Ea[Qπ(s,a)]]Ea[Ea[Qπ(s,a)]] = Ea[Qπ(s,a)]Ea[Qπ(s,a)] 是因为期望的期望等于期望,从另一个角度来看这个等式,Ea[Qπ(s,a)]Ea[Qπ(s,a)]的结果与a无关,相当于一个常数,所以再对a求期望的话,相当于对常数求期望,等于常数本身。

再证明公式(3.4)(3.4)的第二个等式:θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0

我们有:Lπθ0(πθ)=η(πθ0)+sρπθ0(s)aπθ(a|s)Aπθ0(s,a)Lπθ0(πθ)=η(πθ0)+sρπθ0(s)aπθ(a|s)Aπθ0(s,a)
两边对θθ求导(注意任何和θ0θ0有关的式子在对θθ求导的时候都视为常数)得:

θLπθ0(πθ)=sρπθ0(s)aθπθ(a|s)Aπθ0(s,a)θLπθ0(πθ)=sρπθ0(s)aθπθ(a|s)Aπθ0(s,a)

进而成立:

θLπθ0(πθ)|θ=θ0=sρπθ0(s)aθπθ(a|s)|θ=θ0Aπθ0(s,a)θLπθ0(πθ)|θ=θ0=sρπθ0(s)aθπθ(a|s)|θ=θ0Aπθ0(s,a)

由论文[2]可知:

θη(πθ)=sρπθ(s)aθπθ(a|s)Qπθ(s,a)θη(πθ)=sρπθ(s)aθπθ(a|s)Qπθ(s,a)

又因为

sρπθ(s)aθπθ(a|s)Vπθ(s)=sρπθ(s)Vπθ(s)aθπθ(a|s)=sρπθ(s)Vπθ(s)θaπθ(a|s)=0sρπθ(s)aθπθ(a|s)Vπθ(s)=sρπθ(s)Vπθ(s)aθπθ(a|s)=sρπθ(s)Vπθ(s)θaπθ(a|s)=0

上述推导过程中第一行到第二行是因为Vπθ(s)Vπθ(s)aa无关,所以可以提到aa的前面。第二个式子到第三个式子是因为求和的导数等于导数的求和。第三个式子到第四个式子是因为对于每个ss来说都成立:aπθ(a|s)=1aπθ(a|s)=1,然后1对θθ求导等于0,即θaπθ(a|s)=θ1=0θaπθ(a|s)=θ1=0

所以可得:

θη(πθ)=sρπθ(s)θπ(a|s)Qπ(s,a)=sρπθ(s)θπθ(a|s)[Qπ(s,a)Vπ(s)]=sρπθ(s)θπθ(a|s)Aπθ(s,a)θη(πθ)=sρπθ(s)θπ(a|s)Qπ(s,a)=sρπθ(s)θπθ(a|s)[Qπ(s,a)Vπ(s)]=sρπθ(s)θπθ(a|s)Aπθ(s,a)

进而成立:

θη(πθ)|θ=θ0=sρπθ0(s)θπθ(a|s)|θ=θ0Aπθ0(s,a)=θLπθ0(πθ)|θ=θ0θη(πθ)|θ=θ0=sρπθ0(s)θπθ(a|s)|θ=θ0Aπθ0(s,a)=θLπθ0(πθ)|θ=θ0

命题得证。

我们是行者AI,我们在“AI+游戏”中不断前行。

前往公众号 【行者AI】,和我们一起探讨技术问题吧!

posted @   行者AI  阅读(1811)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示