强化学习(TRPO)

TRPO——Trust Region Policy Optimization置信域策略优化算法

TRPO要解决的是AC网络在沿着策略梯度更新参数,很有可能会因为步长太长导致策略限制变差,进而影响训练效果。TRPO可以解决该问题,通过置信域俩控制步长,通过引入每一幕的回报总望,判断新策略的优劣。TRPO是一种改进的自然梯度策略优化算法,通过限制KL散度(或策略改变范围)来避免每次迭代中,参数过大的变化。

TRPO的优化目标是最小化当前策略与最优策略之间的KL散度,同时最大化新策略的期望回报,并且保证新的策略在信任域内。在每次迭代中,TRPO算法都会评估旧策略π旧的性能。这通常是通过在环境中收集样本数据并计算其平均回报来完成的。根据旧策略的性能,算法会确定一个新的信任域半径。这个半径通常与旧策略的性能成正比。如果旧策略的性能良好,信任域半径会较大,允许较大的策略更新;如果性能不佳,半径会较小,限制较大的更新。

   优势函数:

值函数V\left ( s \right )可以理解为:在该状态S下所有可能动作所对应的动作值函数乘以采取该动作的概率的和,即所有动作值函数关于动作概率的平均值。动作函数Q\left ( s,a \right )是单个动作所对应的值函数,Q_{\pi }\left ( s, a \right )-V_{\pi }\left (s_{t} \right )能评价当前动作函数相对于平均值的大小。

假设\theta表示策略\pi _{\theta }的参数,V^{\pi _{0}}\left ( s_{0 } \right )是状态价值函数,J\left ( \theta \right )是目标函数:

J\left ( \theta \right )=E_{s_{0}}\left [ V^{\pi _{0}}\left ( s_{0 } \right )\right ]=E_{\pi_{\theta}}\left [ \sum_{t=0}^{\infty }\gamma ^{t}r\left ( s_{t}, a_{t} \right ) \right ]

找到\theta ^{*}=argmax_{\theta }J\left ( \theta \right ),策略梯度算法主要沿着\triangledown J\left ( \theta \right )方向迭代更新策略参数\theta

 假设当前的目标策略\pi _{\theta },参数为\theta,需要借助当前的\theta找到一个更好的参数\theta ^{'},使得J\left ( \theta^{'} \right )\geq J\left ( \theta \right )

J\left ( \theta^{'} \right )- J\left ( \theta \right )=\sum _{s}\rho _{\pi ^{'}}\left ( s\right )\sum _{a}\pi ^{'}\left ( a|s \right )A_{\pi }\left ( s, a \right )

\rho _{\pi }\left ( s \right )=P\left ( s_{0}=s \right )+\gamma P\left ( s_{1}=s \right )+\gamma ^{2}P\left ( s_{2}=s \right )...

改动一:忽略状态分布的变化,采用旧的策略所对应的状态分布,原因:当新旧参数很接近时,可以用旧的状态分布替代新的状态分布,修改后:

L\left ( \theta^{'} \right )- J\left ( \theta \right )=\sum _{s}\rho _{\pi}\left ( s\right )\sum _{a}\pi ^{'}\left ( a|s \right )A_{\pi }\left ( s, a \right )

改动二:利用重要性采样(从与原分布不同的另一个分布中采样,而对原先分布的性质进行估计。)对动作分布进行处理,改动后表示为:

\sum _{a}\pi ^{'}\left ( a|s \right )A_{\pi }\left ( s, a \right )=E_{a q}\left [ \frac{\pi ^{'}\left ( a|s \right )}{q\left ( a|s \right )}A_{\theta _{old}}\left ( s,a \right ) \right ]

将S求和的形式写成期望能够,则函数表示为:

L\left ( \theta^{'} \right )= J\left ( \theta \right )+E_{s \rho _{\theta _{old}}}E_{a \pi \left (a|s \right )}\left [ \frac{\pi ^{'}\left ( a|s \right )}{\pi\left ( a|s \right )}A_{\theta _{old}}\left ( s,a \right ) \right ]

KL散度:

KL散度作为两个分布之间的有向差异衡量,用来衡量一个概率分布P(实际分布)与另一个概率分布Q(假设分布)之间的差异,它反映了从P到Q的信息量。KL散度的值总是非负的,当且仅当Q为P的分布时,KL散度为0。

对比:

J\left ( \theta^{'} \right )= J\left ( \theta \right )+\sum _{s}\rho _{\pi ^{'}}\left ( s\right )\sum _{a}\pi ^{'}\left ( a|s \right )A_{\pi }\left ( s, a \right )

L\left ( \theta^{'} \right )= J\left ( \theta \right )+E_{s \rho _{\theta _{old}}}E_{a \pi \left (a|s \right )}\left [ \frac{\pi ^{'}\left ( a|s \right )}{\pi\left ( a|s \right )}A_{\theta _{old}}\left ( s,a \right ) \right ]

发现:两个公式的区别在于分布不同,他们都是关于\theta ^{'}的函数,可以用KL散度表示两个分布之间的差异:

D_{KL}^{max}\left ( \pi , \pi ^{'} \right )=max_{s}D_{KL}\left ( \pi \left ( \cdot |s \right ) ||\pi ^{'}\left ( \cdot |s \right )\right )

下限:J\left ( \theta^{'} \right )\geq L\left ( \theta ^{'} \right )-C\times D_{KL}^{max}\left ( \pi , \pi ^{'} \right )C=\frac{2\epsilon \gamma }{\left ( 1-\gamma \right )^{2}}

在实际中,如果用C来作为惩罚项的系数,步长会变得非常小,一种可以保证更新稳定的前提下采取较大步长的方法是在新旧策略的KL散度上施加约束。

KL散度的上限很难获得,一般情况下可以用平均KL散度来代替

看不懂了......

重点应该是信任域的半径的选择:

算法步骤:

初始化策略网络参数\theta和价值网络参数\omega

for 序列 e=1\rightarrow E,do:

        基于当前策略\pi _{\theta }采样轨迹\left \{ s_{1}, a_{1}, r_{1}, s_{2}, a_{2}, r_{2},...\right \}

        根据收集到的数据和价值网络估计每个状态动作对的优势函数A\left ( s_{1}, a_{1} \right )

        计算策略目标函数的梯度g

        用共轭梯度法计算x=H^{-1}g

        用线性搜索到一个i值,并更新策略网络参数\theta _{k+1}=\theta _{k}+\alpha ^{i}\sqrt{\frac{2\delta }{x^{T}Hx}}x,其中i\epsilon \left \{ 1, 2, ..., K \right \}为能提升策略并满足KL距离限制的最小整数

        更新价值网络参数

end for

TRPO的优势:

①性能好,能够有效学习复杂策略

②稳定性强,不易陷入局部最优

③易于实现

TRPO的劣势:

①计算复杂度较高

②需要设置超参数\lambda,随性能影响较大

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值