我有一个概念性的问题要问大家,希望我能清楚地表达出来。我正在 Keras 中构建一个 RL 代理,使用连续 PPO 来控制连接到平移/倾斜炮塔的激光以进行目标跟踪。我的问题是如何更新新政策。我目前的实现如下
- 进行观察(从激光到目标的平移和倾斜距离)
- 将观察传递给输出均值的参与者网络(现在的标准是固定的)
- 我从具有步骤 2 的平均输出的高斯采样
- 应用命令并观察奖励(到目标的 1/L2 距离)
- 收集 N 步经验、计算优势和旧对数概率,
- 培养演员和评论家
我的问题是这个。我有我的旧日志概率(考虑到参与者网络生成的手段所采取的行动的概率),但我不明白新概率是如何生成的。在第一个小批量开始时,我的新策略与旧策略相同,因为它们是相同的神经网络。鉴于在 model.fit 函数中我传递了相同的一组观察结果来生成“y_pred”值,并且我传递了作为“y_true”值所采取的实际操作,新策略应该生成与我的旧的。使网络更新的唯一(轻微)变化来自熵奖励,但我的分数 np.exp(new_log_probs-old.log_probs) 几乎相同 1,因为策略是相同的。
我是否应该使用一对类似于 DDQN 的网络,因此用于生成数据的网络和用于训练的网络之间的策略存在一些初始差异?