损失函数中的TRPO / PPO重要性采样项

时间:2018-08-22 13:09:55

标签: machine-learning reinforcement-learning

在信任区域策略优化(TRPO)算法中(以及随后在PPO中也是如此),我不了解从标准策略梯度中替换对数概率项的动机

enter image description here

具有政策输出概率对旧政策输出概率的重要性采样项

enter image description here

有人可以向我解释这一步骤吗?

我理解一旦完成此操作,我们为什么随后需要将更新限制在“信任区域”内(以避免π θold随梯度的增加而增加梯度更新)梯度方向的近似值准确的范围内),我只是不确定为什么首先包含该术语的原因。

2 个答案:

答案 0 :(得分:3)

PG的原始公式没有log,而只是E[pi*A]log用于数值稳定性,因为它不会更改最佳值。

必须使用重要性采样项,因为您正在最大化pi(新策略),但是只有当前策略pi_old中的采样。所以基本上是什么

  • 您要解决integral pi*A
  • 您没有pi的样本,而只有pi_old的样本
  • 您将问题更改为integral pi/pi_old*pi_old*A
  • 这等效于integral pi/pi_old*A中来自pi_old的样本的近似值。

如果您想存储在先前迭代中收集的样本并仍然使用它们来更新您的策略,这也很有用。

但是,这种幼稚的重要性抽样通常是不稳定的,特别是如果您当前的政策与以前的政策有很大不同时。在PPO和TRPO中,由于政策更新受到限制(TRPO中的KL差异以及通过削减PPO中的IS比率),其效果很好。

This是一本不错的书,用于理解重要性抽样。

答案 1 :(得分:1)

TRPO和PPO不断优化策略,而无需再次采样。

这意味着用于估计梯度的数据已使用其他策略(pi_old)进行了采样。为了纠正采样策略与正在优化的策略之间的差异,需要应用重要性采样率。