使用离线强化学习对通用 Agent 进行预训练

本文是来自 Google AI Lab 实验室的一篇文章,介绍了一种使用离线强化学习进行通用Agent预训练的方法,名为Scaled Q-Learning。这种方法使用CQL算法扩展了离线RL,并展示了如何实现高效的多任务训练。结果表明,在各种Atari游戏中,Scaled Q-Learning的性能优于其他方法,包括基于行为克隆和基于视觉表示学习的方法。此外,Scaled Q-Learning具有扩展能力,并且利用大型模型的能力更好。这项工作推动了RL智能体的实际应用,也许从长远来看,类似的工作将会导致通用的预训练RL智能体,发展出广泛适用的探索和交互技能。全文翻译如下。

强化学习是一种解决决策问题的算法,例如玩游戏、使机器人拾取物品,甚至优化微芯片设计。然而,在真实世界中,运行强化学习算法需要昂贵的主动数据收集。与此相似,在多样化数据集上进行预训练已经被证明可以为自然语言处理和视觉问题的个体下游任务提供数据高效的 fine-tuning。就像 BERT 或 GPT-3 模型为 NLP 提供通用初始化一样,大型强化学习预训练模型可以为决策制定提供通用初始化。因此,我们提出了一个问题:我们是否可以通过启用类似的预训练方法来加速强化学习,并创建一个高效的强化学习“骨干”用于各种任务。

在《离线 Q-Learning 在多样化多任务数据上的扩展和泛化》一文中,我们讨论了如何扩展 离线强化学习算法,该方法可以用于在以前收集的静态数据集上训练价值函数,以提供这样的通用预训练方法。我们证明,使用多样化数据集的 Scaled Q-Learning 足以学习促进对新任务的快速转移和新任务的快速在线学习的表示形式,这显著改善了现有表示学习方法,甚至是使用更大模型的基于 Transformer 的方法。该研究将在 2023 年 ICLR 会议上发表。

使用离线强化学习对通用 Agent 进行预训练

Scaled Q-learning:使用保守 Q-learning 的多任务预训练

为了提供通用的预训练方法,离线强化学习需要具备可扩展性,使我们能够在不同任务的数据上进行预训练,并利用具有表现力的神经网络模型来获得强大的预训练骨干,以适应各个下游任务。我们的离线 RL 预训练方法基于 保守的 Q-Learning(CQL),这是一种简单的离线 RL 方法,它将标准的 Q-Learning 更新与一个附加的正则化器结合起来,以最小化未见过动作的价值。对于离散动作,CQL 正则化器相当于标准交叉熵损失,这是标准深度 Q-Learning 的一个简单一行修改。几个关键的设计决策使这成为可能:

  • 神经网络规模:我们发现,多游戏 Q-Learning 需要大型神经网络结构。虽然以前的方法通常使用 相对较浅的卷积网络,但我们发现,ResNet 101 这样的模型比更小的模型显著提高了性能。
  • 神经网络结构:为了学习对新游戏有用的预训练骨干,我们的最终架构使用共享的神经网络骨干,每个游戏都有单独的 1 层头输出 Q 值。这种设计避免了预训练过程中游戏之间的干扰,同时仍然提供足够的数据共享来学习一个单一的共享表示。我们的共享视觉骨干还利用了 学习位置嵌入(类似于 Transformer 模型),以跟踪游戏中的空间信息。
  • 表示正则化:最近的研究观察到,Q-Learning 往往会遭受 表示 崩溃 问题,即即使大型神经网络也可能无法学习有效的表示。为了对抗这个问题,我们利用 先前的工作 来规范化共享 Q 网络的最后一层特征。此外,我们利用分类 分布式 RL 损失进行 Q-Learning,这已知可以提供 更丰富的表示,提高下游任务的性能。

多任务 Atari 基准测试

我们在一系列 Atari 游戏上评估了我们的可扩展离线 RL 方法,目标是训练单个 RL 代理以使用来自低质量(即次优)玩家的异构数据玩一组游戏,然后使用生成的网络骨干快速学习预训练游戏中的新变体或全新游戏。即使使用标准在线深度 RL 方法训练单个策略以玩多个不同的 Atari 游戏也很困难,因为每个游戏需要不同的策略和不同的表示。在离线设置中,一些先前的工作,例如 多博弈决策 transformers,提议完全放弃 RL,并利用条件 模仿学习 来尝试通过大型神经网络架构(如  transformers)进行扩展。然而,在这项工作中,我们展示了这种多游戏预训练可以通过采用 CQL 并结合一些小心的设计决策来有效地实现RL,我们将在下面描述这些决策。

训练游戏的可扩展性

我们使用两种数据组合来评估 Scaled Q-Learning 方法的性能和可扩展性:(1)近乎最优数据,包括先前 RL 运行的回放缓冲区中出现的所有训练数据,和(2)低质量数据,包括来自回放缓冲区前 20% 试验的数据(即仅来自高度次优的策略的数据)。在下面的结果中,我们将具有 8000 万个参数的 Scaled Q-Learning 与具有 4000 万或 8000 万个参数的多游戏决策 transformers(DT)以及基于行为克隆(模仿学习)的基线(BC)进行比较。我们观察到 Scaled Q-Learning 是唯一优于离线数据的方法,达到约 80% 的人类标准化性能。

使用离线强化学习对通用 Agent 进行预训练

此外,如下图所示,Scaled Q-Learning 不仅在性能上有所提高,而且还具有有利的扩展特性:就像预训练的语言和视觉模型随着网络规模的增大而性能提高一样,享受通常被称为 “power-law scaling” 的优势,我们展示了 Scaled Q-Learning 的性能也具有类似的扩展特性。虽然这可能不足为奇,但是在 RL 领域,这种扩展一直是难以实现的,因为性能通常会随着更大的模型尺寸而下降。这表明,结合上述设计选择的 Scaled Q-Learning 更好地释放了离线 RL 利用大型模型的能力。

使用离线强化学习对通用 Agent 进行预训练

对新的游戏和变化进行 fine-tuning

在评估离线初始化后的 fine-tuning 效果时,我们考虑了两种情况:(1) 使用小量的新游戏离线数据进行 fine-tuning,这些数据从未在训练集中出现过,对应于游戏玩法的 200 万次转换;(2) 通过在线互动对游戏的新变体进行 fine-tuning。下面是使用离线游戏数据进行 fine-tuning 的示意图。需要注意的是,对于新游戏的离线数据通常更有利于模仿式方法、决策 Transformer 和行为克隆方法,因为新游戏的离线数据的质量相对较高。尽管如此,在大多数情况下,我们发现 Scaled Q-Learning 的性能都优于其他方法(平均达到80%),以及专门的表示学习方法,如 MAECPC,这些方法仅使用离线数据来学习视觉表示而非价值函数。

使用离线强化学习对通用 Agent 进行预训练

 

在在线环境中,我们从 Scaled Q-learning 的预训练中看到了更大的改进。在这种情况下,像 MAE 等这样的表示学习方法在在线 RL 期间产生的改进很小,而 Scaled Q-Learning 可以成功地整合关于预训练游戏的先验知识,从而在 20k 在线交互步骤后显着提高最终分数。

这些结果表明,使用多任务离线 RL 预训练通用价值函数骨干可以显着提高下游任务上 RL 的性能,无论是在离线还是在线模式下。请注意,这些 fine-tuning 任务非常困难:各种 Atari 游戏,甚至相同游戏的变体在外观和动态方面都有显著差异。例如,Breakout 中的目标块在游戏变体中消失,如下图所示,使得控制变得困难。然而,与 MAE 和 CPC 等视觉表示学习技术相比,Scaled Q-learning 的成功表明,模型实际上正在学习游戏动态的某种表示,而不仅仅是提供更好的视觉特征。

使用离线强化学习对通用 Agent 进行预训练

结论和要点

本文介绍了基于 CQL 算法的 Scaled Q-Learning,这是一个用于扩展离线强化学习的预训练方法,并展示了如何实现高效的多任务训练。这项工作初步推动了开发 RL 智能体的实践应用,作为代替昂贵和复杂的基于仿真的流程或大规模实验的选择。也许从长远来看,类似的工作将会导致通用的预训练 RL 智能体,通过大规模的离线预训练,发展出广泛适用的探索和交互技能。验证这些结果在更广泛的现实任务中的适用性,例如机器人学(见一些初步结果)和 NLP 领域,是未来研究的重要方向。离线RL预训练有很大的潜力,我们期待在未来的研究中看到许多进展。

致谢

本文由 Aviral Kumar、Rishabh Agarwal、Xinyang Geng、George Tucker 和Sergey Levine 完成。特别感谢 Sherry Yang、Ofir Nachum 和 Kuang-Huei Lee 帮助评估多游戏决策 transformer 代码库和多游戏 Atari 基准,并感谢 Tom Small 提供插图和动画。

 

知识扩展

什么是Q-Learning

当我们使用强化学习来训练一个智能体去完成某个任务时,Q-Learning 是一种常用的方法,它的目的是让智能体学会做出一系列决策,这些决策可以最大化它在环境中的累积回报。

Q-Learning 是一种基于值的强化学习方法,它试图学习一种函数 Q,这个函数可以接收一个状态和一个动作作为输入,然后输出一个对应的值,表示在这个状态下,采取这个动作所能得到的长期累积奖励。这个 Q 函数通常是用一个表格来表示的,表格的每一行代表一个状态,每一列代表一个动作,表格中的每个元素代表在当前状态下采取当前动作所得到的长期累积奖励值。

在 Q-Learning 中,智能体会不断地在环境中与其交互,并尝试用已有的 Q 表格来选择最佳的动作,以获取最大的累积奖励。当智能体在环境中选择一个动作时,它会使用当前状态的 Q 值来选择最优的动作,然后更新 Q 表格中对应状态和动作的 Q 值,使其更好地反映当前智能体所掌握的知识。

在学习的过程中,智能体通过不断地与环境交互来更新 Q 值。它会使用 Bellman 方程,通过将下一个状态的最大 Q 值与当前的奖励值相结合,来计算当前状态的Q 值。这个过程会不断地重复,直到 Q 表格中的 Q 值收敛到最优值为止。

举例:

当我们训练一个机器人学会在某个环境中执行任务时,我们可以使用强化学习算法。在强化学习中,我们让机器人在环境中尝试执行不同的行动,然后观察环境对其行动的反馈,即“奖励”。机器人的目标是最大化其累积奖励。

Q-learning 是强化学习算法中的一种,它通过学习一个叫做 “Q-value” 的函数来指导机器人的行动选择。Q-value 是一个评估当前状态和行动的奖励的函数。通过学习 Q-value 函数,机器人可以了解哪些行动可以带来更多的奖励,并做出最优决策。

具体来说,Q-learning 算法会从一些随机选择的起始状态开始,不断地进行试错。它在每个状态下,会选择一个行动,并获得相应的奖励。然后,Q-learning 会根据当前状态和行动的奖励,更新 Q-value 函数。在更新 Q-value 函数后,机器人会重新选择行动,并继续探索环境。

通过不断地更新 Q-value 函数,机器人可以逐渐学会选择最优的行动来最大化其累积奖励。这是 Q-learning 算法的基本原理。

什么是离线强化学习,什么是在线强化学习,这两个有什么区别呢?

离线强化学习(offline reinforcement learning)和在线强化学习(online reinforcement learning)都是强化学习的方法,它们之间的主要区别在于强化学习算法使用的数据来源不同。

在线强化学习通常使用实时与环境进行交互的数据来更新其策略或价值函数。例如,在训练机器人完成某个任务时,机器人会不断尝试与环境进行交互,并收集它的经验作为训练数据。在线学习的一个缺点是,每次更新策略时,需要重新与环境进行交互,这意味着训练时间可能很长,而且在训练过程中,策略可能会偏离最优解,导致收敛缓慢。

离线强化学习是指使用预先收集的数据来训练强化学习算法,这些数据通常是从模拟器、真实环境的记录或者其他来源中获取的。这种方法的好处是可以在训练开始之前立即收集训练数据,并且在不需要与环境进行交互的情况下进行训练。但是,由于离线学习中使用的数据可能与实际环境中的数据存在差异,因此该方法可能会导致算法的性能降低,或者无法泛化到新环境。

总之,离线强化学习和在线强化学习都有其优缺点,具体使用哪种方法应该根据任务需求和可用数据资源进行权衡。

power-law scaling 这个是什么意思

“power-law scaling” 指的是一种与模型大小呈幂律关系的性质。在深度学习中,通常会发现较大的模型会有更好的性能。例如,BERT 或 GPT-3 这样的自然语言处理模型随着模型大小的增加,其性能也会大幅提升。类似地,这种性质也适用于图像识别领域的卷积神经网络等模型。在强化学习领域,由于训练算法的复杂性和难以有效利用大模型,以往的研究往往没有观察到类似的幂律关系。因此,当强化学习算法也可以呈现出这种幂律关系时,就被称为“power-law scaling”。

 

谷饭原创编/译文章,作者:peter,转载请注明出处来自谷饭,并加入本文链接: https://www.goofan.com/2023/02/pre-training-generalist-agents-using/

(0)
peter的头像peter谷饭作者
上一篇 2023年 2月 25日 下午5:05
下一篇 2023年 2月 27日 上午12:19

相关推荐

wechat
关注微信公众号