当前位置: 首页 > news >正文

简说Policy Gradient (1) —— 入门

概念

1. PG的目标

首先,一个Policy可以被表达为
π θ ( a t ∣ s t ) {{\pi }_{\theta }}({{a}_{t}}|{{s}_{t}}) πθ(atst)
表示在当前观测 时,采用这个Policy所选用的Action( a t {{a}_{t}} at

1.1 Reward

一个策略的优劣通过一个评价函数来表达,一般可以表示为这个通过这个策略所带来的Reward;
假设一个策略的单次采集episode记为

τ = { s 1 , a 1 , r 1 , s 2 , a 2 , r 2 , . . . , s t , a t , r t , . . . } \begin{equation} \tau =\{{{s}_{1}},{{a}_{1}},{{r}_{1}},{{s}_{2}},{{a}_{2}},{{r}_{2}},...,{{s}_{t}},{{a}_{t}},{{r}_{t}},...\} \end{equation} τ={s1,a1,r1,s2,a2,r2,...,st,at,rt,...}

则本次episode的Reward可记为

R ( τ ) = ∑ t = 1 n r t \begin{equation} R(\tau )=\sum_{t=1}^{n}{{{r}_{t}}} \end{equation} R(τ)=t=1nrt

其中 表示这个episode中某一个动作所带来的收益reward

在后文中,为了区分一个episode的Reward和一个动作的reward,通过大小写来区分(R和r)

1.2 评价方式

问题:那如何评价一个策略的好坏呢?
答:期望
问:期望如何逼近呢
答:MC

只通过一个episode肯定不行,所以我们想到用统计学的方式,一次不行,那就多次。那多少才行,由统计学基础大数定理知道,当采样接近于无穷的时候,就能获得一个准确的估计。此时这个值就是期望,可以如下表示

E τ ∼ p ( τ ) [ R ( τ ) ] = ∑ τ ∼ p ( τ ) R ( τ ) p ( τ ∣ θ ) \begin{equation} {{\mathbb E}_{\tau \sim p(\tau )}}[R(\tau )]=\sum_{\tau \sim p(\tau )}{R(\tau )p(\tau |\theta )} \end{equation} Eτp(τ)[R(τ)]=τp(τ)R(τ)p(τθ)

期望是可以通过sample逼近的。记住这句话

E τ ∼ p ( τ ) [ R ( τ ) ] = ∑ τ ∼ p ( τ ) R ( τ ) p ( τ ∣ θ ) ≅ 1 N ∑ R ( τ ) \begin{equation} {{\mathbb E}_{\tau \sim p(\tau )}}[R(\tau )]=\sum_{\tau \sim p(\tau )}{R}(\tau )p(\tau |\theta )≅\frac{1}{N}\sum{R}(\tau ) \end{equation} Eτp(τ)[R(τ)]=τp(τ)R(τ)p(τθ)N1R(τ)

2. 方法

为了获得更好的Policy,很容易想到,基于优化的方法,使用梯度法逐步逼近最优,所以就叫 Policy Gradient,中文【策略梯度】

接下来我们推导一下PG的公式

根据以上的描述,为了获得更好的Policy,我们对Reward的期望求梯度,然后进行梯度优化
记梯度为 g = ∇ R g=\nabla R g=R,则
π θ ← π θ + g ⋅ α \begin{equation} {{\pi }_{\theta }}\leftarrow {{\pi }_{\theta }}+g⋅\alpha \end{equation} πθπθ+gα

以上的核心就是为了求R的梯度

g = ∇ R = ∇ [ ∑ R ( τ ) p ( τ ∣ θ ) ] = ∑ ∇ [ ( R ( τ ) p ( τ ∣ θ ) ] = ∑ [ R ( τ ) ∇ p ( τ ∣ θ ) ] \begin{equation} \begin{aligned} g=\nabla R &=\nabla [\sum{R}(\tau )p(\tau |\theta )] \\ &=\sum{\nabla [(R(\tau )p(\tau |\theta )]} \\ &=\sum{[R(\tau )\nabla p(\tau |\theta )]} \end{aligned} \end{equation} g=R=[R(τ)p(τθ)]=[(R(τ)p(τθ)]=[R(τ)p(τθ)]

注意了,以上的式子虽然成立,但是我们没有办法在工程上使用,原因如下:

  • 我们没有办法直接获得每一个轨迹 的概率

所以我们一般使用MC的方式取逼近,也就是通过sample,然后求和取平均的方式

那该如何变换呢?

如下:
g = ∑ [ R ( τ ) ∇ p ( τ ∣ θ ) ] = ∑ p ( τ ∣ θ ) [ R ( τ ) ∇ p ( τ ∣ θ ) p ( τ ∣ θ ) ] = ∑ p ( τ ∣ θ ) [ R ( τ ) ∇ l o g ( p ( τ ∣ θ ) ] \begin{equation} \begin{aligned} g &=\sum{[R(\tau )\nabla p(\tau |\theta )]} \\ &=\sum{p(\tau |\theta )[R(\tau )\frac{\nabla p(\tau |\theta )}{p(\tau |\theta )}]} \\ &=\sum{p(\tau |\theta )[R(\tau )\nabla log(p(\tau |\theta )]} \end{aligned} \end{equation} g=[R(τ)p(τθ)]=p(τθ)[R(τ)p(τθ)p(τθ)]=p(τθ)[R(τ)log(p(τθ)]

看到没,通过以上变换,我们就有了一个【概率×func】求和的形式,这个形式是可以通过sample逼近的;也就是

g = ∑ p ( τ ∣ θ ) [ R ( τ ) ∇ l o g ( p ( τ ∣ θ ) ] ≅ 1 N ∑ [ R ( τ ) ∇ l o g ( p ( τ ∣ θ ) ] \begin{equation}\begin{aligned} g &=\sum{p(\tau |\theta )[R(\tau )\nabla log(p(\tau |\theta )]}\\ &≅\frac{1}{N}\sum{[R(\tau )\nabla log(p(\tau |\theta )]} \end{aligned}\end{equation} g=p(τθ)[R(τ)log(p(τθ)]N1[R(τ)log(p(τθ)]

接下来我们进行化简,因为

l o g ( p ( τ ∣ θ ) ) = l o g ( p ( s 1 ) π ( a 1 ∣ s 1 ) p ( s 2 ∣ s 1 , a 1 ) π ( a 2 , ∣ s 2 ) . . . ) = l o g ( p ( s 1 ) ) + ∑ t = 1 p ( s t + 1 ∣ s t , a t ) + ∑ t = 1 π ( a t ∣ s t ) \begin{equation}\begin{aligned} log(p(\tau |\theta ))&=log(p({{s}_{1}})\pi ({{a}_{1}}|{{s}_{1}})p({{s}_{2}}|{{s}_{1}},{{a}_{1}})\pi ({{a}_{2}},|{{s}_{2}})...) \\ &=log(p({{s}_{1}}))+\sum_{t=1}{p}({{s}_{t}}+1|{{s}_{t}},{{a}_{t}})+\sum_{t=1}{\pi }({{a}_{t}}|{{s}_{t}}) \end{aligned}\end{equation} log(p(τθ))=log(p(s1)π(a1s1)p(s2s1,a1)π(a2,s2)...)=log(p(s1))+t=1p(st+1∣st,at)+t=1π(atst)

观察上式,前两项与 θ \theta θ无关,求梯度后为0,所以
g = 1 N ∑ [ R ( τ ) ∇ l o g ( p ( τ ∣ θ ) ] = 1 N ∑ [ R ( τ ) ∇ ∑ t = 1 π ( a t ∣ s t ) ] = 1 N ∑ [ R ( τ ) ∑ t = 1 ∇ π ( a t ∣ s t ) ] = 1 N ∑ n = 1 ∑ t = 1 [ R ( τ ) ∇ π ( a t ∣ s t ) ] \begin{equation}\begin{aligned} g&=\frac{1}{N}\sum{[R(\tau )\nabla log(p(\tau |\theta )]}\\ &=\frac{1}{N}\sum{[R(\tau )\nabla \sum_{t=1}{\pi }({{a}_{t}}|{{s}_{t}})]} \\ &=\frac{1}{N}\sum{[R(\tau )\sum_{t=1}{\nabla \pi }({{a}_{t}}|{{s}_{t}})]} \\ &=\frac{1}{N}\sum_{n=1}{\sum_{t=1}{[R(\tau )\nabla \pi ({{a}_{t}}|{{s}_{t}})]}} \end{aligned}\end{equation} g=N1[R(τ)log(p(τθ)]=N1[R(τ)t=1π(atst)]=N1[R(τ)t=1π(atst)]=N1n=1t=1[R(τ)π(atst)]

上式就是最基本的Policy Gradient计算方式,我们记住了

2.1 优化

为了方便,我们记(10)式中的R为 ψ \psi ψ, 则(1)式进化为
g = 1 N ∑ n = 1 ∑ t = 1 [ ψ ( τ ) ∇ π ( a t ∣ s t ) ] \begin{equation}\begin{aligned} g=\frac{1}{N}\sum_{n=1}{\sum_{t=1}{[\psi (\tau )\nabla \pi ({{a}_{t}}|{{s}_{t}})]}} \end{aligned}\end{equation} g=N1n=1t=1[ψ(τ)π(atst)]

其中 ψ \psi ψ不同表达方式衍生出了不同的PG方案
同样记住此式
对于式(10),
ψ ( τ ) = ∑ l = 0 T r t \psi (\tau )=\sum_{l=0}^{T}{{{r}_{t}}} ψ(τ)=l=0Trt

观察(10),发现在每一个step t,我们都使用了 R,也就是使用了整个轨迹的Reward,其实是不合理的。

优化一:

将优化为只与当前决策有关的Reward,因为t之前的行为已经确定,所以优化后的为
ψ ( τ ) = ∑ l = t T r l \psi (\tau )=\sum_{l=t}^{T}{{{r}_{l}}} ψ(τ)=l=tTrl

优化二:

工程试验发现,通过以上计算的虽然是无偏的,但是会有非常大的方差,因为 r t r_t rt在经过长时累计后,可能会变得异常大,导致梯度爆炸或者抖动

容易想到,可以减去一个baseline;表达为
ψ ( τ ) = ∑ l = t T ( r t − b ) \psi (\tau )=\sum_{l=t}^{T}{{{(r}_{t}}-b)} ψ(τ)=l=tT(rtb)

可以证明,以上转换也是无偏的,但是方差可以变小;证明见 (TODO)
关于b的计算方式也是一个学科

优化三:

观察 ψ ( τ ) \psi({\tau}) ψ(τ)发现,其实表达的是,策略的收益;假设我们可以估计出每一个step的收益,我们让策略向着收益变大的方向去逼近,也就是
ψ ( τ ) = Q π ( s t , a t ) \psi (\tau )={{Q}^{\pi }}({{s}_{t}},{{a}_{t}}) ψ(τ)=Qπ(st,at)
这个Q函数表达了策略采取的action的收益,越大表示策略越好;由此衍生出来的Q learning也是非常有名的方式。

优化四:

既然优化二考虑了方差大的问题,我么们将优化三也减去一个baseline,那就表达了策略相对于baseline的提升,也就是说,当提升为正时,我们就鼓励这种策略,如果提升为负时,我们就抑制这种策略。同时我们可以用一个函数来表达这种baseline,记为 V ( s t ) V(s_t) V(st),也就是V函数,也叫值函数,表达了当前状态的平均/默认收益值

ψ ( τ ) = Q π ( s t , a t ) − V π ( s t ) \psi (\tau )={{Q}^{\pi }}({{s}_{t}},{{a}_{t}})-{{V}^{\pi }}({{s}_{t}}) ψ(τ)=Qπ(st,at)Vπ(st)
注意此处的V指的是当前策略 的收益,所以有一个上标;言外之意就是我们目标想要比当前策略默认要好

为了表示方便,一般用 A表示这个策略的优势,
A π ( s t , a t ) = Q π ( s t , a t ) − V π ( s t ) \begin{equation} {{A}^{\pi }}({{s}_{t}},{{a}_{t}})={{Q}^{\pi }}({{s}_{t}},{{a}_{t}})-{{V}^{\pi }}({{s}_{t}})\ \end{equation} Aπ(st,at)=Qπ(st,at)Vπ(st) 
这个函数也叫优势函数

优化五:

牛人发现,我们以上计算的都是需要用到整个轨迹中的变量,其实是很不方便的,很多时候我们不一定能够获得全部前后上下文的数据;那我们是不是可以递归一下
Q π ( s t , a t ) − V π ( s t ) = r t + V π ( s t + 1 ) − V π ( s t ) {{Q}^{\pi }}({{s}_{t}},{{a}_{t}})-{{V}^{\pi }}({{s}_{t}})={{r}_{t}}+{{V}^{\pi }}({{s}_{t+1}})-{{V}^{\pi }}({{s}_{t}}) Qπ(st,at)Vπ(st)=rt+Vπ(st+1)Vπ(st)
那这样我们只需要考虑两个相邻step的差即可,这种方法叫做 TD

δ t = r t + V π ( s t + 1 ) − V π ( s t ) {{\delta }_{t}}={{r}_{t}}+{{V}^{\pi }}({{s}_{t+1}})-{{V}^{\pi }}({{s}_{t}}) δt=rt+Vπ(st+1)Vπ(st)

2.2 Discount

以上我们没有考虑discount,关于discount此处不做赘述,以 γ \gamma γ 来表示
以上的几种表达可以更新为
ψ ( τ ) = ∑ l = 0 T γ l r t + l δ t = r t + γ V π ( s t + 1 ) − V π ( s t ) A π , γ ( s t , a t ) = Q π , γ ( s t , a t ) − V π , γ ( s t ) \begin{aligned} \psi (\tau )&=\sum_{l=0}^{T}{{{\gamma }^{l}}{{r}_{t+l}}} \\ {{\delta }_{t}}&={{r}_{t}}+\gamma {{V}^{\pi }}({{s}_{t+1}})-{{V}^{\pi }}({{s}_{t}}) \\ {{A}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})&={{Q}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})-{{V}^{\pi ,\gamma }}({{s}_{t}}) \end{aligned} ψ(τ)δtAπ,γ(st,at)=l=0Tγlrt+l=rt+γVπ(st+1)Vπ(st)=Qπ,γ(st,at)Vπ,γ(st)

3. GAE

书接上回,在使用Discount版本的TD时,我们得到以下公式
δ t = r t + γ V π ( s t + 1 ) − V π ( s t ) {{\delta }_{t}}={{r}_{t}}+\gamma {{V}^{\pi }}({{s}_{t+1}})-{{V}^{\pi }}({{s}_{t}}) δt=rt+γVπ(st+1)Vπ(st)

表达了某一个step, V函数的预测误差

先引入一个概念,大佬都喜欢创造概念(抽象抽象再抽象) γ-just

3.1 γ-just

首先给出数学定义,我们定义一个Function
A t ^ ( s 0 : ∞ , a 0 : ∞ ) \hat{{{A}_{t}}}({{s}_{0:\infty }},{{a}_{0:\infty }}) At^(s0:,a0:),如果这个函数是 γ-just的,那他一定满足以下:
E s 0 : ∞ , a 0 : ∞ [ A t ^ ( s 0 : ∞ , a 0 : ∞ ) ∇ π θ ( a t ∣ s t ) ] = E s 0 : ∞ , a 0 : ∞ [ A π , γ ( s t , a t ) ∇ π θ ( a t ∣ s t ) ] \begin{equation} {{\mathbb E}_{{{s}_{0:\infty }},{{a}_{0:\infty }}}}[\hat{{{A}_{t}}}({{s}_{0:\infty }},{{a}_{0:\infty }})\nabla {{\pi }_{\theta }}({{a}_{t}}|{{s}_{t}})]={{\mathbb E}_{{{s}_{0:\infty }},{{a}_{0:\infty }}}}[{{A}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})\nabla {{\pi }_{\theta }}({{a}_{t}}|{{s}_{t}})] \end{equation} Es0:,a0:[At^(s0:,a0:)πθ(atst)]=Es0:,a0:[Aπ,γ(st,at)πθ(atst)]

其中 A π , γ ( s t , a t ) = Q π , γ ( s t , a t ) − V π , γ ( s t ) {{A}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})={{Q}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})-{{V}^{\pi ,\gamma }}({{s}_{t}}) Aπ,γ(st,at)=Qπ,γ(st,at)Vπ,γ(st)为之前定义的经过 γ Discount的优势函数

好,数学定义完了,我们来理解一下。

📌首先γ-just种的 γ 表示这个定义是基于 γ折扣的,我们不讨论没有折扣的场景,或者没有折扣的场景可以表示为 γ=1;
just表示,我们定义了一个 A ^ \hat A A^ ,如果 A ^ \hat A A^满足一定的约束,那他可以很有用,这个约束就是上面的等式;这个等式什么意思的,可以这么理解:
A ^ \hat A A^本身可以是一个关于所有 s和a的函数;(当然可以退化为只跟当前 s t , a t s_t, a_t st,at 有关)
A ^ \hat A A^作为 ψ \psi ψ 函数时,代入约束式求期望之后 A ^ \hat A A^ A π , γ ( s t , a t ) {{A}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}}) Aπ,γ(st,at) 作为 ψ \psi ψ 函数等价
• 有了这个 A ^ \hat A A^之后我们就可以定义任一的一个关于 s,a的函数,只要是γ-just,那么就可以直接用来算最优的 g 梯度了,我们的PG就可以顺利继续了

为什么要定义这么一个函数呢?
我理解:
• 可以统一之前的各种的形式
• 同时证明了以上的形式是等价的(都是无偏的,但是方差是不等价的)
• 我们可以找一些简单好计算的,只要证明是 γ-just的,就可以直接用来进行PG计算

3.2 Proposal

概念讲完了,引入一个对的第一个proposal
A t ^ ( s 0 : ∞ , a 0 : ∞ ) = Q t ( s 0 : ∞ , a 0 : ∞ ) − b t ( s 0 : t , a 0 : t ) \hat{{{A}_{t}}}({{s}_{0:\infty }},{{a}_{0:\infty }})={{Q}_{t}}({{s}_{0:\infty }},{{a}_{0:\infty }})-{{b}_{t}}({{s}_{0:t}},{{a}_{0:t}}) At^(s0:,a0:)=Qt(s0:,a0:)bt(s0:t,a0:t)
其中 Q t Q_t Qt满足,对所有的 a t , s t a_t, s_t at,st

E s t + 1 : ∞ , a t + 1 : ∞ ∣ s t , a t [ Q t ( s t : ∞ , a t : ∞ ) ] = Q π , γ ( s t , a t ) . {{E}_{{{s}_{t+1:\infty }},{{a}_{t+1:\infty }}|{{s}_{t}},{{a}_{t}}}}[{{Q}_{t}}({{s}_{t:∞}},{{a}_{t:∞}})]={{Q}^{π,γ}}({{s}_{t}},{{a}_{t}}). Est+1:,at+1:st,at[Qt(st:,at:)]=Qπ,γ(st,at).

再解释一下,我们定义了一个 A ^ \hat A A^,那么他是γ-just的条件是,其中的 Q t Q_t Qt满足Q的期望为我们之前说的Q。
说人话,就是定义的这个 Q t Q_t Qt 应该是对 之前的Q的无偏估计,琢磨琢磨

证明:参考论文附录B

我们看下这个Proposal形式有什么特性
Q t Q_t Qt应该只和t之后的时间的变量有关(容易理解)
b t b_t bt 只与t及t之前的变量有关,翻译过来就是 b t b_t bt其实在t时刻应该是已知的、确定的(从而才能在后续求期望时可以为0,达到无偏估计)

论文种指出了以下几种表达是Proposal1的具体表达:
∑ l = 0 ∞ ( γ l r t + l ) \sum_{l=0}^{\infty }{(}{{\gamma }^{l}}{{r}_{t+l}}) l=0(γlrt+l): 显然,这本身就是带γ折扣Q的一种表达
Q π , γ ( s t , a t ) {{Q}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}}) Qπ,γ(st,at):本身也是 Q γ Q^\gamma Qγ的无偏估计
A π , γ ( s t , a t ) {{A}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}}) Aπ,γ(st,at):已知 A π , γ ( s t , a t ) = Q π , γ ( s t , a t ) − V π , γ ( s t ) {{A}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})={{Q}^{\pi ,\gamma }}({{s}_{t}},{{a}_{t}})-{{V}^{\pi ,\gamma }}({{s}_{t}}) Aπ,γ(st,at)=Qπ,γ(st,at)Vπ,γ(st),第一项本身也是 Q γ Q^\gamma Qγ的无偏估计,第二项只与t时刻之前的量相关
r t + γ V π , γ ( s t + 1 ) − V π , γ ( s t ) {{r}_{t}}+\gamma {{V}^{\pi ,\gamma }}({{s}_{t+1}})-{{V}^{\pi ,\gamma }}({{s}_{t}}) rt+γVπ,γ(st+1)Vπ,γ(st),注意这个表达式的上标中的γ,只有γ折扣的值函数,δ才是γ-just的

3.3 GAE公式

考虑上面γ-just的最后一种形式,记为
δ t V π , γ = r t + γ V π , γ ( s t + 1 ) − V π , γ ( s t ) {{{{\delta }_{t}^{V}}}^{\pi ,\gamma }}={{r}_{t}}+\gamma {{V}^{\pi ,\gamma }}({{s}_{t+1}})-{{V}^{\pi ,\gamma }}({{s}_{t}}) δtVπ,γ=rt+γVπ,γ(st+1)Vπ,γ(st)
已知 δ t V π , γ {{{{\delta }_{t}^{V}}}^{\pi ,\gamma }} δtVπ,γ是γ-just的。

注意对于上式,并不是所有的V都是 γ-just的,因为有些V函数本身可能是有偏的;同时这里要求V是γ折扣的

那我们对于任意的V函数,该怎么办?
GAE就来了。

δ t V = r t + γ V ( s t + 1 ) − V ( s t ) {{\delta }_{t}^{V}}={{r}_{t}}+\gamma V({{s}_{t+1}})-V({{s}_{t}}) δtV=rt+γV(st+1)V(st)
则记
A ^ t ( 1 ) : = δ t V A ^ t ( 2 ) : = δ t V + γ δ t + 1 V A ^ t ( 3 ) : = δ t V + γ δ t + 1 V + γ 2 δ t + 2 V \begin{aligned} {{\hat{A}}_{t}^{(1)}}&:={{\delta }_{t}^{V}} \\ {{\hat{A}}_{t}^{(2)}}&:={{\delta }_{t}^{V}}+\gamma {{\delta }_{t+1}^{V}} \\ {{\hat{A}}_{t}^{(3)}}&:={{\delta }_{t}^{V}}+\gamma {{\delta }_{t+1}^{V}}+{{\gamma }^{2}}{{\delta }_{t+2}^{V}} \end{aligned} A^t(1)A^t(2)A^t(3):=δtV:=δtV+γδt+1V:=δtV+γδt+1V+γ2δt+2V

可得
A ^ t ( k ) : = ∑ l = 0 k γ l δ t + l V = − V ( s t ) + r t + γ r t + 1 + ⋅ ⋅ ⋅ + γ k − 1 r t + k − 1 + γ k V ( s t + k ) {{\hat{A}}_{t}^{(k)}}:=\sum_{l=0}^{k}{{{\gamma }^{l}}}{{\delta }_{t+l}^{V}}=-V({{s}_{t}})+{{r}_{t}}+γ{{r}_{t+1}}+···+{{γ}_{k−1}}{{r}_{t+k−1}}+{{γ}^{k}}V({{s}_{t+k}}) A^t(k):=l=0kγlδt+lV=V(st)+rt+γrt+1+⋅⋅⋅+γk1rt+k1+γkV(st+k)

观察上式,当 k → ∞ k\rightarrow \infty k 时,
A ^ t ( ∞ ) : = − V ( s t ) + ∑ l = 0 ∞ γ l r t + l {{\hat{A}}_{t}^{(\infty )}}:=-V({{s}_{t}})+\sum_{l=0}^{\infty }{{{γ}^{l}}{{r}_{t+l}}} A^t():=V(st)+l=0γlrt+l

也就是说,当 k → ∞ k\rightarrow \infty k , 是γ-just的

再变形
将所有的累加,则有
GAE公式

3.4. 解释

来,再详细说说为什么GAE是γ折扣的无偏估计
先来看 δ t V π , γ = r t + γ V π , γ ( s t + 1 ) − V π , γ ( s t ) {{{{\delta }_{t}^{V}}}^{\pi ,\gamma }}={{r}_{t}}+\gamma {{V}^{\pi ,\gamma }}({{s}_{t+1}})-{{V}^{\pi ,\gamma }}({{s}_{t}}) δtVπ,γ=rt+γVπ,γ(st+1)Vπ,γ(st)

明显 δ \delta δ本身是有偏的,因为在计算时 V 很可能不准确

也就是说 A ^ t ( 1 ) {{\hat{A}}_{t}^{(1)}} A^t(1)本身有偏的(因为V不准确), A ^ t ( ∞ ) {{\hat{A}}_{t}^{(\infty )}} A^t()是无偏的(因为看了无穷远,就是MC)

那GAE就是为了在有小Variance有偏大Variance无偏之间平衡;

显然,当 λ为1时,GAE接近于 ,当 λ为0时,GAE接近于 ,这就是GAE的核心

3.4 碎碎念

我们再来回顾以下GAE的公式,思考一下,为什么需要在求和 A ^ t ( k ) {{\hat{A}}_{t}^{(k)}} A^t(k)的时候要乘上(1-λ)

考虑一下 A ^ t ( 1 ) → A ^ t ( ∞ ) {{\hat{A}}_{t}^{(1)}}\rightarrow {{\hat{A}}_{t}^{(\infty )}} A^t(1)A^t()的过程中,是bias ↓ variance ↑ 的一个过程,但是我们在计算GAE的时候,并不是选择了其中的一项,而是是将所有项累和,导致的问题是:这个值会很大,那就有问题了。怎么办,直接除以项数就行了。

计算一下项数

N G A E = 1 + λ ⋅ 1 + λ 2 ⋅ 1 + . . . + λ ∞ ⋅ 1 = 1 ⋅ 1 − λ ∞ 1 − λ → = 1 1 − λ \begin{aligned} {{N}^{GAE}}&=1+\lambda ⋅1+{{\lambda }^{2}}⋅1+...+{{\lambda }^{\infty }}⋅1\\ &=1⋅\frac{1-{{\lambda }^{\infty }}}{1-\lambda }\rightarrow =\frac{1}{1-\lambda } \end{aligned} NGAE=1+λ1+λ21+...+λ1=11λ1λ→=1λ1

BINGO


其他

Bellman公式:
δ t = r t + γ V π ( s t + 1 ) − V π ( s t ) {{\delta }_{t}}={{r}_{t}}+\gamma {{V}^{\pi }}({{s}_{t+1}})-{{V}^{\pi }}({{s}_{t}}) δt=rt+γVπ(st+1)Vπ(st)

参考

• GAE(Generalized Advantage Estimation)理解及推导 - 知乎
• 【DRL-13】Generalized Advantage Estimator - 知乎
• https://arxiv.org/abs/1506.02438

http://www.xdnf.cn/news/304651.html

相关文章:

  • [蓝桥杯 2025 省 B] 水质检测(暴力 )
  • python--------修改桌面文件内容
  • 第2章 神经网络的数学基础
  • 神经网络之激活函数:解锁非线性奥秘的关键
  • Linux开发工具【上】
  • 2025年LangChain(V0.3)开发与综合案例
  • 接口自动化工具如何选择?以及实战介绍
  • windows操作系统开机自启(自动启动) 运行窗口 shell:startup 指令调出开机自启文件夹
  • 驱动开发系列57 - Linux Graphics QXL显卡驱动代码分析(四)显示区域绘制
  • 使用原生javascript手动实现一个可选链运算符
  • [论文阅读]MCP Guardian: A Security-First Layer for Safeguarding MCP-Based AI System
  • 【Spring Boot 注解】@Configuration与@AutoConfiguration
  • vue2项目中使用pag格式动图
  • GMRES算法处理多个右端项的Block与PseudoBlock变体
  • 【已解决】Neo4j Desktop打不开,不断网解决
  • 一种基于条件生成对抗网络(cGAN)的CT重建算法
  • Hadoop架构再探讨
  • keil+vscode+腾讯ai助手
  • 【prometheus+Grafana篇】基于Prometheus+Grafana实现Linux操作系统的监控与可视化
  • 【程序员AI入门:基础】5.提示工程怎么释放LLM的潜力
  • WT2606B显示驱动TFT语音芯片IC:重塑电子锁交互体验的技术革新
  • 神经网络之训练的艺术:反向传播与常见问题解决之道
  • 数据库实验10 函数存储
  • Dify - Stable Diffusion
  • 《数据分析与可视化》(清华)ch-6 作业 三、绘图题
  • 解决Centos连不上网
  • 数字图像相关法在薄板变形测量中的实践
  • 《Python星球日记》第34天:Web 安全基础
  • Cadence学习笔记之---PCB工程创建、类与子类、颜色管理器介绍
  • 【Python】--实现多进程