TRPO

直入主题。

PG模型和DQN模型都会产生一个现象,就是往后训练的时候模型会退化,或者说变差。而理论上最优值肯定是存在的,出现退化的原因是我们的估计和近似是有误差的,这些误差在后期会影响到模型的训练.
除此之外,有时候,不合适的步长也会让后期因为跨度太大而不好收敛.

理论依据

η ( π ~ ) = η ( π ) + E τ ∼ π ~ ( ∑ t = 0 ∞ γ t A π ( s t , a t ) ) (1) \eta(\tilde{\pi}) = \eta(\pi) + E_{\tau\sim\tilde{\pi}}(\sum_{t=0}^{\infty}\gamma^tA_\pi(s_t,a_t)) \tag{1} η(π~)=η(π)+Eτπ~(t=0γtAπ(st,at))(1) A ( s , a ) = Q π ( s , a ) − V π ( s ) (2) A(s,a) = Q_\pi(s,a) - V_\pi(s)\tag{2} A(s,a)=Qπ(s,a)Vπ(s)(2)

  1. η \eta η是计算策略价值的函数.
  2. π ~ \tilde{\pi} π~ π \pi π分别是后一时刻和当前时刻的策略.
  3. τ \tau τ是一串由策略 π ~ \tilde\pi π~生成的 ( s 1 , a 1 , s 2 . . . . . . ) (s_1,a_1,s_2......) (s1,a1,s2......)序列
  4. E E E是有策略 π ~ \tilde\pi π~参与的期望,以该策略生成的序列 τ \tau τ会参与到具体的期望计算中.
  5. γ \gamma γ是超参数.期望 E E E计算的是关于整个 τ \tau τ序列的期望,很有可能会发散.添加 τ \tau τ会让后面的 A ( s , t ) A(s,t) A(s,t)变小,达到收敛的目的.
  6. A ( s , a ) A(s,a) A(s,a)是关于 s 和 a s和a sa的函数,如公式所示,是Q与V的差.
  7. Q Q Q是度量在已知某一时刻的 s 和 a s和a sa时,对未来价值的一个估计,称为Q值.
  8. V V V是度量在已知某一时刻的 s s s时,对未来Q值期望的估计.

对于6和7,有必要用公式写出 Q 和 V Q和V QV的关系: V ( s ) = ∑ a P ( a ) Q ( s , a ) = E a ∼ 某 一 分 布 [ Q ( s , a ) ] V(s)=\sum_a P(a)Q(s,a)=E_{a\sim某一分布}[Q(s,a)] V(s)=aP(a)Q(s,a)=Ea[Q(s,a)]所以对于 A ( s , a ) A(s,a) A(s,a)它计算的是未来的某一种动作下,与未来均值的差.
也就是说,如果A(s,a)比0大,那这个a选的就比平均值好.

这个链接给出了式(1)的左右相等,以证明式子不是扯淡来的

试想,如果每次更新时,式(1)中的期望都是正数,那么策略期望就会一直上升.

寻找计算方法

如果我们想找到正数的 E E E就要找 τ \tau τ,而 τ \tau τ π ~ \tilde\pi π~生成而来, π ~ \tilde\pi π~的本质又是一个由参数 θ \theta θ定义的神经网络.
为了追根溯源,我们需要把 E E E掰碎.

  1. 第一层,按s展开.在t已经掰开的情况下,每个t对每种s都有可能.
    E τ ∼ π ~ ( ∑ t = 0 ∞ γ t A π ( s t , a t ) ) = ∑ t = 0 ∞ ∑ s P ( s ∣ π ~ ) γ t A π ( s , a t ) (3) E_{\tau\sim\tilde{\pi}}(\sum_{t=0}^{\infty}\gamma^tA_\pi(s_t,a_t)) =\sum_{t=0}^{\infty}\sum_sP(s|\tilde\pi)\gamma^tA_\pi(s,a_t)\tag{3} Eτπ~(t=0γtAπ(st,at))=t=0sP(sπ~)γtAπ(s,at)(3)
  2. 第二层,按a展开.在t和s掰开的情况下,每个s对每个a都有可能.
    ( 3 ) = ∑ t = 0 ∞ ∑ s P ( s ∣ π ~ ) ∑ a π ~ ( a ∣ s ) γ t A π ( s , a ) (4) (3)=\sum_{t=0}^{\infty}\sum_sP(s|\tilde\pi)\sum_a\tilde\pi(a|s)\gamma^tA_\pi(s,a)\tag{4} (3)=t=0sP(sπ~)aπ~(as)γtAπ(s,a)(4)注意累加的层次.
    这里的 P P P和策略 π ~ \tilde\pi π~都是加和为1的概率分布.

接下来我会把(4)变换的"简单"一点
( 4 ) = ∑ s ρ π ~ ( s ) ∑ a π ~ ( a ∣ s ) γ t A π ( s , a ) (4)=\sum_s\rho_{\tilde\pi}(s)\sum_a\tilde\pi(a|s)\gamma^tA_\pi(s,a) (4)=sρπ~(s)aπ~(as)γtAπ(s,a) ρ π ~ ( s ) = ∑ t = 0 ∞ γ t P ( s t = s ∣ π ~ ) \rho_{\tilde\pi}(s)=\sum_{t=0}^\infty\gamma^tP(s_t=s|\tilde\pi) ρπ~(s)=t=0γtP(st=sπ~)
为啥单单搞个 ρ \rho ρ出来呢?因为我把它看作后面那一坨数的概率分布.
也就是说,我希望 ∑ s ρ π ~ ( s ) = 1 \sum_s\rho_{\tilde\pi}(s)=1 sρπ~(s)=1
但很明显,希望是错的.如果你算过,会发现 ∑ s ρ π ~ ( s ) = 1 1 − γ \sum_s\rho_{\tilde\pi}(s)=\frac{1}{1-\gamma} sρπ~(s)=1γ1,这是个好消息,因为如果把 ρ \rho ρ放大 1 − γ 1-\gamma 1γ倍,那它就可以看作分布了.
( 4 ) = 1 1 − γ ∑ s ( 1 − γ ) ρ π ~ ( s ) ∑ a π ~ ( a ∣ s ) A π ( s , a ) = 1 1 − γ E s ∼ ( 1 − γ ) ρ π ~ ( ∑ a π ~ ( a ∣ s ) A π ( s , a ) ) (5) (4)=\frac{1}{1-\gamma}\sum_s(1-\gamma)\rho_{\tilde\pi}(s)\sum_a\tilde\pi(a|s)A_\pi(s,a)\\= \frac{1}{1-\gamma}E_{s\sim(1-\gamma)\rho_{\tilde\pi}}(\sum_a\tilde\pi(a|s)A_\pi(s,a))\tag{5} (4)=1γ1s(1γ)ρπ~(s)aπ~(as)Aπ(s,a)=1γ1Es(1γ)ρπ~(aπ~(as)Aπ(s,a))(5)
后面的策略 π ~ \tilde\pi π~也可以看作是一个分布,也可以写成期望形式.
但是稍等,从这里开始我们要解决第一个产生退化的原因: 估计和近似的误差.

1.估计和近似造成的误差,产生了退化

现在有 η ( π ~ ) = η ( π ) + 式 ( 5 ) \eta(\tilde\pi) = \eta(\pi) + 式(5) η(π~)=η(π)+(5)
如果要确定地提高 η ( π ~ ) \eta(\tilde\pi) η(π~),我们可以选择一个牛逼的 π ~ \tilde\pi π~,对每个s,让式(5)中的 ∑ a π ~ ( a ∣ s ) A π ( s , a ) ≥ 0 \sum_a\tilde\pi(a|s)A_\pi(s,a)\geq0 aπ~(as)Aπ(s,a)0这个牛逼的 π ~ \tilde\pi π~也很好找.把 A ( s , a ) A(s,a) A(s,a)打开,有
∑ a π ~ ( a ∣ s ) Q ( s , a ) − ∑ a π ( a ∣ s ) Q ( s , a ) \sum_a\tilde\pi(a|s)Q(s,a)-\sum_a\pi(a|s)Q(s,a) aπ~(as)Q(s,a)aπ(as)Q(s,a)总会有一个策略, s = s ′ s=s' s=s时有 a ′ = a r g m a x a Q ( s ′ , a ) a'=argmax_aQ(s',a) a=argmaxaQ(s,a),该策略让 π ′ ( s ′ , a ′ ) = 1 \pi'(s',a')=1 π(s,a)=1.这个策略总会比原策略好.
但是但是但是,由于我们的近似和估计总是与客观存在误差(因为我们的训练数据是抽样的),所以总会让模型在客观上的最优策略,数值上反倒不如次一点的策略,更不用说每次采样都阴晴不定了.

如何减小误差?

我们只能减小误差,不能消除误差,因为采样就会造成误差.
式子中,我们需要在 π ~ 和 π \tilde\pi和\pi π~π两个策略上采样,才能计算式子.
两个采样,那就是错上加错.
能否在一个上面采样?

替换1

在所有off-policy模型上,由于时间差的存在,必须用重要性采样来纠偏.
我们虽然不是出于时间差的目的,但同样可以利用重要性采样的特点,把采样任务从一个分布交给另一个分布.
π ~ ( a ∣ s ) = π ( a ∣ s ) π ~ ( a ∣ s ) π ( a ∣ s ) (6) \tilde\pi(a|s) = \pi(a|s)\frac{\tilde\pi(a|s)}{\pi(a|s)}\tag{6} π~(as)=π(as)π(as)π~(as)(6)
式(6)替换式(5)的对应位置,除了采样对象变了,其他什么都没变.

替换2

ρ \rho ρ基于 π ~ \tilde\pi π~获得s的分布,我们没有办法.
但我们可以取个巧.我们知道,梯度下降中,只要步子够小,那前后的参数变化就没多大,进而可知s的分布也没多大变化.
那是否能尝试也用 π \pi π替换呢?
这个做法虽然有些霸道,结果也无法量化,但单从实验结果看,做法是可取的.
(有时候看到这种做法,真是会产生对研究的无力感.)

至此,在采样这块,算是统一了.

补充说明

我们对原来的 η ( π ~ ) \eta(\tilde\pi) η(π~)做了很多变换和替代.我把变换替代后的公式记为 L π ( π ~ ) L_\pi(\tilde\pi) Lπ(π~)
对二者在 π \pi π上一阶求导,是相等的.
所以如果 π ~ \tilde\pi π~ L L L能优化,那对 η \eta η一样也优化.

新的问题:步长

有一个公式描述了二者的关系.
该公式的原型来自于2002年的论文:Approximately Optimal Approximate Reinforcement Leraning
被作者用KL散度替换了一个 α \alpha α参数,理由是原参数太笨重了。变成了下面这样.
η ( π ~ ) ≥ L π ( π ~ ) − C D K L m a x ( π , π ~ ) \eta(\tilde\pi) \geq L_\pi(\tilde\pi) - CD^{max}_{KL}(\pi,\tilde\pi) η(π~)Lπ(π~)CDKLmax(π,π~) C = 2 ε γ ( 1 − γ ) 2 C=\frac{2\varepsilon\gamma}{(1-\gamma)^2} C=(1γ)22εγ

替换2告诉我们,如果你步长太大,破坏了参数变化不大的假设,模型就失去意义了.
该公式告诉我们,如果你步长太大,会导致KL太大, η \eta η的下界会低很多,也就是说即使 L L L上升, η \eta η也可能会下降。所以让 K L KL KL尽可能小,从而让下界缓步上升,是极其必要的。
对于该公式的推导,比较长,看原文去吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值