语境:
我和我的团队正在研究针对特定应用程序的 RL 问题。我们从用户交互(状态、动作、奖励等)中收集数据。
我们模仿代理的成本太高了。因此,我们决定专注于离线 RL 技术。为此,我们目前正在使用英特尔的 RL-Coach 库,它提供对 Batch/Offline RL 的支持。更具体地说,为了评估离线设置中的策略,我们训练了一个 DDQN-BCQ 模型并使用离线策略估计器 (OPE) 评估学习到的策略。
问题:
在在线 RL 设置中,何时停止代理训练的决定通常取决于一个人想要实现的目标(如本文所述:https ://stats.stackexchange.com/questions/322933/q-learning -何时停止训练)。如果目标是训练直到(奖励)收敛但不再训练,那么您可以例如在最后 n 步的奖励标准差下降到某个阈值以下时停止。如果目标是比较两种算法的性能,那么您应该使用相同数量的训练步骤简单地比较两者。
但是,在离线 RL 设置中,我相信停止训练的条件并不是那么明确。如上所述,没有直接可用的环境来评估我们的代理,并且对学习策略质量的评估几乎完全依赖于 OPE,而 OPE 并不总是准确的。
对我来说,我相信有两种不同的选择是有意义的。我不确定这两个选项是否实际上是等效的。
- 第一种选择是在 Q 值收敛/达到平稳期时停止训练(即当 Q 值网络损失收敛时)——如果他们曾经这样做过,因为我们真的不能保证会发生这种情况与人工神经网络。如果 Q 值确实达到了一个平台,这意味着我们的代理已经达到了一些局部最优(或者在最好的情况下,是全局最优)。
- 第二种选择是只查看 OPE 奖励估计,并在它们达到平稳状态时停止。但是,不同的 OPE 不一定会同时达到一个平台期,如下图所示。在 RL-Coach 的 Batch-RL 教程中,他们似乎会简单地选择不同 OPE 给出最高策略值估计的 epoch 的代理,而不检查网络的损失是否已经收敛(但这是只是一个教程,所以我想我们不能过分依赖它)。
问题:
- 在离线 RL 设置中选择何时停止训练代理的最佳标准是什么?
- 此外,代理的性能通常在很大程度上取决于用于训练的种子。要评估总体性能,我相信您必须使用不同的种子进行多次训练?但是,最终,您仍然只希望部署一个代理。您是否应该简单地选择所有运行中具有最高 OPE 值的那个?
PS我不确定这个问题是否应该分成两个不同的帖子,所以如果是这样,请告诉我,我会编辑帖子!