了解 PPO 目标中操作的日志概率

人工智能 Python 目标函数 执行 近端策略优化
2021-10-26 01:23:06

我正在尝试实现近端策略优化 (PPO) 算法(此处的代码),但我对某些概念感到困惑。

  1. 实现策略对数概率的正确方法是什么(表示为πθ以下)?

    LCPI(θ)=E^t[πθ(at|st)πθold (at|st)A^t]=E^t[rt(θ)A^t]
    假设我的旧网络策略输出是oldpolicy_probs=[0.1,0.2,0.6,0.1],新网络策略输出是newpolicy_probs=[0.2,0.2,0.4,0.2].

    我是直接记录这个日志,还是应该首先将这些与此处y_true = [0,0,1,0]实现的真实标签相乘

  2. ratio = np.mean(np.exp(np.log(newpolicy_probs + 1e-10) - K.log(oldpolicy_probs + 1e-10))*advantage)

    一旦我有了比率并将其与优势相乘,为什么我们要对所有行动取平均值?我怀疑这可能是因为我们正在估算Et^但从概念上讲,我不明白这给了我们什么。我上面的实现是否正确?

0个回答
没有发现任何回复~