理解和评估强化学习中的不同方法

问题描述

我一直在尝试使用 Q-learningDeep Q-NetworkDouble DQNDueling Double DQN 等不同变体在 Python 上实现强化学习算法。考虑一个推车杆示例并评估每个变体的性能,我可以考虑绘制 sum of rewardsnumber of episodes

evaluating a Reinforcement learning model

(附上图的图片)和实际图形输出推车移动时杆的稳定性如何。

但这两个评估在定量解释更好的变体方面并不是真正感兴趣的。我是强化学习的新手,并试图了解是否有其他方法可以在同一问题上比较 RL 模型的不同变体。

我指的是 colab 链接 https://colab.research.google.com/github/ageron/handson-ml2/blob/master/18_reinforcement_learning.ipynb#scrollTo=MR0z7tfo3k9C获取有关推车杆示例的所有变体的代码

解决方法

你可以在关于这些算法的研究论文中找到答案,因为当一个新算法被提出时,我们通常需要通过实验来证明它比其他算法有优势。

关于RL算法的研究论文中最常用的评估方法是平均回报(注意不是奖励,回报是累积奖励,就像游戏中的分数)随着时间的推移,你有很多方法可以平均回报,例如平均 wrt 不同的超参数,如 Soft Actor-Critic paper 的比较评估平均值 wrt 不同的随机种子(初始化模型):

图 1 显示了评估推出期间的总平均回报 DDPG、PPO 和 TD3 的培训。我们训练五个不同的实例 每个算法都有不同的随机种子,每个算法执行一个 每 1000 个环境步骤进行一次评估。实心曲线 对应于平均值和阴影区域到最小值和 五次试验的最大回报。

enter image description here

而且我们通常不仅要比较许多算法在一项任务上的性能,而且要比较不同任务集(即基准)的性能,因为算法可能具有某种形式的归纳偏差,使它们在某些形式的任务上表现更好,但在其他任务上表现更差任务,例如在 Phasic Policy Gradient paper 与 PPO 的实验比较中:

我们在 Procgen 基准测试中报告环境结果 (Cobbe 等人,2019 年)。该基准测试旨在高度 多样化,我们希望此基准的改进能够很好地转移 到许多其他强化学习环境

enter image description here