机器学习(ML)(二十一) — 强化学习探析
泛化(Generalization)
强化学习(RL
)可用于自动驾驶汽车和机器人等领域,可以在现实世界中使用强化学习(RL
)算法。现实是多种多样、非平稳和开放的,为了处理各种情况,强化学习(RL
)需要对环境的变化具有鲁棒性,并且能够在部署期间转移和适应从未见过的(但相似的)环境。强化学习(RL
)中的泛化就是创建可以解决这些困难的方法,挑战以前的强化学习(RL
)研究中的一个常见假设,即训练和测试环境是相同的。
泛化是指强化学习(RL
)中的一类问题,而不是特定问题。第一种是单例环境,传统强化学习(RL
)专注于训练和测试相同的环境;但在现实世界中,训练和测试环境会有所不同;第二种是IID
零样本泛化环境,来自相同的分布;第三种是OOD
零样本泛化环境,来自不同的分布。OOD
(Out-of-Distribution
)指的是在训练模型时未见过的数据分布。独立同分布(Independent and Identically Distributed,IID
)是概率论和统计学中的一个基本概念,广泛应用于机器学习和数据分析等领域。
当我们说强化学习中的泛化时,到底是什么意思呢?该领域的所有研究都是在一些任务、级别或环境中进行的,而泛化是通过这个集合的不同子集上训练和测试进行衡量的。上下文马尔可夫决策过程(CMDP
),它可以捕捉所有这些设置。每个任务、层级或环境都是由一个上下文决定的,例如,这个上下文可以是程序内容生成过程的随机种子、任务ID
或用于可控仿真和渲染过程的参数向量。为了测试泛化能力,要将上下文集合分为训练集和测试集。策略在训练集上进行训练,然后在测试集上进行评估,测试集通常包含从未见过的上下文,因此也包含从未见过的级别、任务或环境。泛化问题由上下文马尔可夫决策过程(CMDP
)和训练、测试上下文集合的选择来指定。
监督学习中的泛化是一个被广泛研究的领域,比强化学习中的泛化更成熟。在监督学习中,一些预测器在训练数据集上进行训练,模型的性能在保留的测试数据集上进行评估。通常训练和测试数据集中的数据点都是从相同的底层分布中独立同分布(IID
)绘制的,泛化性能与测试性能同义,因为模型需要“泛化”在训练期间从未见过的输入。对于训练、测试数据
这种差距通常被作为泛化的衡量标准,与训练或测试性能无关:对于给定的训练性能指标,差距越小意味着模型的泛化能力越好。这个指标并不完美,因为在训练和测试中随机表现模型的差距为0
。此外,如果训练和测试数据集不是IID
绘制的,那么测试数据集可能更容易(或更难),因此差距为0
并不意味着泛化很好。但是,它可以用于衡量跨基准的泛化性能,其中绝对性能无法比较,或通过降低差距而不改变测试性能(实际上是通过降低训练性能)来激励可能改善泛化方法的改进。这些方法可以与提高训练性能的方法相结合,以提高整体测试性能,假设这些方法不冲突。引入这个指标是为了完整性,因为它经常在文献中用于测试性能。总之,它作为测试的补充指标很有用,但不能替代。在监督学习中经常研究的一种与强化学习(RL
)相关的泛化是组合泛化。虽然这是为语言泛化而设计的,但其中许多形态与强化学习(RL
)相关。5
种组合泛化形态为:
- 系统性:通过系统地重新组合已知部分和规则实现概括。
- 生产力:将预测扩展到训练数据中的长度之外的能力。
- 替代性:通过用同义词替换组件的能力实现概括。
- 局部性:模型组合操作是局部的还是全局的。
- 过度概括:模型是否关注或对异常具有鲁棒性。
强化学习(RL
)中的马尔可夫决策过程(MDP
)。MDP
由一个元组MDP
(POMDP
)由一个元组POMDP
中,策略观察由MDP
的问题是学习一个策略MDP
中策略的累积奖励最大化:
其中
策略是从状态POMDP
的目标是相同的,但策略使用观察而不是状态作为输入。如果马尔可夫决策过程(MDP
)没有固定的时间范围,则该总和可能不存在。因此我们通常使用两种回报形式之一,要么假设每个回合有固定的步数(时间范围H
),要么通过折扣因子
谈到零样本泛化(ZSG
),我们希望有一种推理任务、环境实例或级别集合一种方式:泛化的需求源于在不同的环境实例集合上训练和测试的场景。以OpenAI Procgen
为例:在这个基准测试套件中,每个游戏都是程序生成的集合。生成哪种级别完全由级别种子决定,标准协议是在一组固定的200
种级别上训练策略,然后评估整个级别分布的性能。所有基准测试都共享这种结构:它们有一个级别或任务的集合,由某个种子、ID
或参数向量指定,并且通过在级别或任务集合上的不同分布进行训练和测试来衡量泛化。上下文马尔可夫决策过程(CMDP
)的定义:
对于POMDP
的定义相同。CMDP
是一个拥有状态空间POMDP
,即POMDP
CMDP
的元组,必须对转移函数进行分解,使得上下文在一个回合内不会发生变化,如果
在这个定义中,上下文(context
)充当种子(seed
)、ID或参数向量的角色,这决定了级别的高低。这里的“上下文”指的是在模拟或算法中所使用的状态信息,它包含了所有必要的参数和设置,以便于生成可重复的结果。因此,它不应该在一集合内改变,而应该在各个集合之间改变。CMDP
是整个任务或环境实例的集合;在Procgen
中,每个游戏(例如starpilot、coinrun
等)都是一个单独的CMDP
。上下文分布Procgen
中,这个分布在训练时固定的200
个种子上是均匀的,在测试时所有种子上是均匀的。请注意,此定义未指定智能体是否观察到上下文:如果对于某个底层观察空间CMDP
成为MDP
(而不是POMDP
),POMDP
不太可能是MDP
。由于奖励函数、转换函数、初始状态分布和发射函数都将上下文作为输入,因此上下文的选择决定了除了动作空间之外MDP
的一切,我们假设动作空间是固定的。给定一个上下文CMDP
MDP
称为上下文马尔可夫决策过程(CMDP
)CMDP
,如果0
。这是一个特定的任务或环境实例,例如,Procgen
中游戏的单个等级,由上下文的单个随机种子指定。一些MDP
具有随机转换或奖励函数。当模拟这些MDP
时,研究人员通常通过选择随机种子来控制这种随机性。理论上,这些随机MDP可以被视为上下文MDP
,其中上下文是随机种子。不认为随机MDP
以这种方式自动关联上下文,并假设随机种子始终是随机选择的,而不是作为上下文建模。这更接近于现实世界中随机动态的场景,这里无法控制随机性。
使用CMDP
形式来描述我们关注的泛化问题类别。如前所述,泛化需求源于训练和测试环境实例之间的差异,因此我们希望指定一组训练上下文MDP
和一组测试集。通过上下文集合来指定这些上下文MDP
集合,因为上下文唯一地决定了MDP
。首先,需要描述如何使用训练和测试上下文集来创建新的CMDP
。
定义:对于任何CMDP
CMDP
。
其中,若0
,且MDP
集合拆分为更小的子集。例如,在Procgen
中,所有种子集的任何可能子集都可用于定义具有有限级别集的不同版本的游戏。对于目标,我们使用策略的预期回报:
定义:对于任何CMDP
CMDP
:
其中MDP
中策略的预期回报,而ZSPT
)问题类。
定义(零样本策略迁移):ZSPT
问题由上下文集合CMDP
CMDP
该策略可以跟CMDP
零样本泛化(ZSG
)研究通常涉及开发能够解决各种ZSPT
问题的算法。例如,在Procgen
中,目标是生成一种可以解决每个游戏的ZSPT
问题的算法。希望在对关卡的训练分布(固定的200
个关卡集)进行2500
万步(
定义(ZSPT
可控上下文):可控上下文ZSPT
问题与上面的ZSPT
问题相同,只是学习算法可以在训练期间调整训练CMDP
请注意,这种形式定义了一类问题,每个问题都由CMDP
、训练和测试上下文集合的选择以及上下文是否可控决定。不对上下文-MDP
之间CMDP
内的共享结构做出任何假设:对于任何特定问题,学习可能需要某种此类假设(隐式或显式)。评估零样本泛化。与监督学习一样,可以将训练和测试性能之间的差距视为泛化的衡量标准。将其定义为类似于监督学习中的定义,交换训练和测试之间的顺序(最大化奖励,而不是最小化损失):
在监督学习中,不同算法的泛化能力通常通过任务的最终表现来评估。当用于评估模型的任务接近(或相同)模型最终将部署的任务时,很明显,最终性能是一个很好的评估指标。然而,在强化学习(RL
)中,使用的基准任务通常与想要应用这些算法的最终现实任务非常不同。此外,强化学习算法目前仍然很脆弱,性能可能会因超参数调整和所使用的特定任务而有很大差异。在这种情况下,可能更关心算法的零样本泛化潜力,方法是将泛化与训练性能分离,并使用泛化差距进行评估。例如,如果算法A
的测试性能高于算法B
,但A
的泛化差距大得多,更倾向于在新的环境中使用算法B
,这样我们就可以更好地保证部署性能不会偏离训练性能太多,并且算法可以更稳健。这就是以前的文献经常在测试性能的同时报告这一指标的原因。然而,强化学习中的泛化差距与监督学习泛化差距存在同样的问题:差距为零并不一定意味着性能良好(即随机策略的差距可能为0
),如果奖励函数在训练和测试中不可比,那么差距的大小可能不具参考价值。将其用作提高性能的唯一指标可能不会导致ZSG
取得进展。此外,鉴于目前的假设范围很广,不太可能存在一个单一的通用衡量标准来衡量ZSG
的进展:在如此广泛的问题类别中,目标甚至可能相互冲突。因此,我们的建议首先是关注特定问题的基准,并恢复到使用特定设置中的整体性能的SL
标准(例如视觉干扰、随机动态、稀疏奖励、硬探索)。各种强化学习(RL
)算法的泛化性能取决于部署的环境类型,因此需要仔细分类部署时存在的类型,正确评估ZSG
能力。
现在对强化学习(RL
)中的ZSG
进行分类。当训练和测试上下文集合不相同时,就会出现ZSG
问题。ZSG
问题有很多种类型,因此有许多不同风格的方法。将方法分为:增加训练和测试数据与目标之间的相似性的方法、处理训练和测试环境之间差异的方法和提升ZSG
性能优化的方法。它们主要改变环境、损失函数或架构。进行全面的分类使我们能够看到ZSG
研究中尚未探索的领域,
强化学习(RL
)中ZSG
的研究仍属新兴事物,但如果想要开发适用于解决实际问题的强化学习方案,那么这项研究至关重要。这里提出了ZSG
基准的分类,将分类法分为环境和评估协议,并对现有的解决ZSG
问题的方法进行了分类。
- 零样本策略迁移值得研究,即使在特定设置下我们也可以放宽零样本假设,因为它提供了可以构建特定领域解决方案的基础算法。
- 应该做更多的工作来超越零样本策略迁移,特别是在持续强化学习中,作为一种绕过不变最优性原则限制的方法。
- 现实世界中,必须同时考虑样本效率和上下文效率。评估方法在不同大小的训练上下文集合上的性能是一个有用的评估指标,它提供了更多信息来选择不同的方法。
强化学习(RL
)是一种顺序决策范式,用于训练智能体处理复杂任务,例如机器人运动、玩视频游戏和设计硬件芯片。虽然强化学习(RL
)的智能体在各种活动中都表现出了良好的效果,但很难将这些智能体的能力转移到新任务上,即使这些任务在语义上是等效的。例如,考虑一个跳跃任务,其中一个智能体需要从图像观察中学习,跳过一个障碍物。经过其中一些任务的训练,深度强化学习的智能体的障碍物位置各不相同,但很难成功跳过以前从未见过的位置的障碍物。先前关于泛化的研究通常来自监督学习,并围绕增强学习过程展开。这些方法很少利用序列方面的属性,例如跨时间观察的动作相似性。当智能体在这些状态下的最佳行为与未来状态相似时,这些状态就接近。这种接近性,称之为行为相似性,可以推广到不同任务的观察中。为了衡量不同任务中状态之间的行为相似性(例如,跳跃任务中不同的障碍物位置),引入了策略相似性度量(PSM
),这是一种受双模拟启发的理论驱动的状态相似性度量。策略相似性度量(PSM
)将高相似性分配给此类行为相似的状态,将低相似性分配给不相似的状态。
为了提高泛化能力,需要学习状态嵌入,它对应于神经网络的任务状态表示,将行为相似的状态聚集在一起,同时将行为不同的状态分开。为此,提出了对比度量嵌入(CME
),利用对比学习的优势来学习基于状态相似性度量的表示。使用策略相似性度量(PSM
)实例化对比嵌入,以学习策略相似性嵌入(PSE
)。PSE
将相似的表示分配给在这些状态和未来状态下具有相似行为的状态。通过使用UMAP
(一种流行的高维数据可视化技术)将PSE
和基线方法学习到的表示投影到2D
点,从而对它们进行可视化。与之前的方法不同,PSE
将行为相似的状态聚集在一起,将不相似的状态分开。此外,PSE
将状态划分为两组:(1) 跳跃前的所有状态和 (2) 动作不影响结果的状态(跳跃后的状态)。
总体而言,这项研究通过两项贡献推动了强化学习中的泛化:策略相似性度量和对比度量嵌入。PSE
结合了这两个方法来增强泛化。未来研究希望找到更好的方法来定义行为相似性并利用这种结构进行表征学习。
Decision Transformers
Decision Transformers
是一种新的强化学习模型。这一模型将强化学习(RL
)问题抽象为条件序列建模问题。条件序列建模:与传统的通过拟合值函数或计算策略梯度来训练策略的方法不同,Decision Transformers
利用序列建模算法(如Transformer
),在给定期望回报、过去状态和动作的情况下生成未来的动作。这种方法是自回归的,意味着它会根据输入的历史数据逐步预测未来的动作。Decision Transformers
模型会将状态、动作和回报作为输入,通过因果自注意力机制处理这些信息,从而生成一系列未来的动作。这种方法不仅简化了强化学习(RL
)中的策略优化过程,还允许模型在没有与环境直接交互的情况下进行训练,这种方式被称为离线强化学习。
离线强化学习:在由元组MDP
)中进行学习。MDP
元组由状态MDP
中的预期回报
Transformer
:作为一种高效建模序列数据的架构。这些模型由堆叠的自注意力层和残差连接组成。每个自注意力层接收对应于唯一输入标记的n
个嵌入
这允许该层通过查询和键向量的相似性(最大化点积)隐式状态返回关联来分配“信用”。在这项工作中,使用GPT
架构,它使用因果自注意力掩码修改了Transformer
架构,以实现自回归生成,用序列中的前一个标记
轨迹表示:选择轨迹表示的关键要求是,它应该使Transformers
能够学习的模式,并且能够在测试时有条件地生成动作。创建奖励模型并非易事,因为希望模型根据未来的期望回报而不是过去的回报来生成动作。因此,不是直接提供奖励,而是向模型提供回报
在测试时,可以指定期望的性能(例如,1
表示成功或0
表示失败)以及环境起始状态,作为启动生成的条件信息。在执行当前状态的生成操作后,我将目标回报减少已获得的奖励并重复,直到回合终止。架构:将最后Decision Transformer
中,总共token
(每个模态包含:未来回报、状态或动作)。为了获得token
嵌入,让每种模态学习一个线性层,将原始输入投射到嵌入维度,然后进行层规范化。对于具有视觉输入的环境,状态被输入到卷积编码器而不是线性层。此外,每个时间步的嵌入都会被学习并添加到每个token
中,请注意,这与Transformer
使用的位置嵌入不同,因为一个时间步对应3
个token
。然后,这些token
由GPT
模型处理,该模型通过自回归建模预测未来的动作token
。训练:这里获得了一个离线轨迹数据集。从数据集中抽取序列长度为token
1 | # R,s,a,t : return-to-go, states, actions, or timesteps |
Decision Transformer
,旨在统一语言/序列建模和强化学习的思想。在离线强化学习基准测试中,表明Decision Transformer
可以匹敌或超越专为离线强化学习设计的强大算法,并且只需对语言建模架构进行最小的修改。可以考虑更复杂的回报、状态和动作嵌入,以回报分布为条件来模拟随机设置而不是确定性回报。Transformer
模型也可用于模拟轨迹的状态演变,可能作为基于模型的强化学习的替代方案,我们希望在未来的工作中探索这一点。在实际应用中,了解Transformer
在MDP
设置中犯的错误以及可能产生的负面后果非常重要,但这些后果尚未得到充分探索。训练模型的数据集也很重要,这可能会增加破坏性偏差,特别是当考虑研究使用更多来自可疑来源的数据来增强强化学习的智能体时。例如,恶意行为者的奖励设计可能会产生意想不到的动作,因为模型是通过调节期望的回报来产生动作。
强化学习—语言模型
语言模型(LM
)在处理文本时展现出了前所未有的能力。它们用庞大的文本语料库来训练,使它们能够编码各种类型的知识,也包括抽象的物理规律类知识,这些知识是否能让机器人等智能体在解决日常任务时收益呢?智能体缺乏学习知识的方法。这种限制阻碍了智能体适应环境(例如,修复错误的知识)或学习新技能。ELLM
(Exploring with Large Language Models
)是一种新的内在动机强化学习方法,旨在通过预训练的大语言模型(LLM
)引导智能体的探索行为。该方法的主要目标是偏向于常识性和合理的有用行为,从而提高智能体在复杂环境中的表现。
强化学习算法通常在缺乏稠密和良好设计的奖励函数时表现不佳。内在激励的探索方法通过奖励智能体访问新颖的状态或转移来解决这一限制,但在大的环境中,这些方法的好处有限,因为大多数发现的新颖性与后续任务无关。介绍一种利用文本语料库中的背景知识来引导探索的方法。这种方法称为ELLM
,它通过奖励智能体实现由语言模型根据智能体当前状态的描述所建议的目标。通过利用大语言模型的预训练,ELLM
指导智能体朝向对人类有意义且可能有用的行为发展,而无需人类参与。在Crafter
游戏环境和Housekeep
机器人模拟器中评估了ELLM
,结果表明,经过ELLM
训练的智能体在预训练过程中对常识行为的覆盖更好,并且在一系列后续任务上表现相当或更佳。
这里考虑由元组POMDP
),其中观察值
ELLM
使用GPT-3
来作为适当的探索目标,并利用SentenceBERT
嵌入来计算目标与行为之间的相似性,从而作为一种内在奖励。M个智能体在优化内在奖励CB-IM
方法通过一系列目标条件奖励函数来定义CB-IM
方法的内在奖励
CB-IM
智能体在优化内在奖励CB-IM
算法必须在以上公式中定义两个要素:从中抽样的目标分布,即CB-IM
算法训练一个目标条件策略CB-IM算
法的设计需要确保目标选择和奖励函数能够有效引导智能体朝向更一般的奖励函数
- 多样性:针对多样化的目标可以增加目标行为与其中一个目标相似的机会。
- 常识敏感性:学习应集中于可行的目标(例如“砍树”比“喝树”更合理),这些目标在我们关心的目标分布中更可能出现(例如“喝水”比“走进岩浆”更合理)。
- 上下文敏感性:学习应关注当前环境配置中可行的目标(例如,仅在视野中有树时才砍树)。
这些属性旨在确保智能体能够有效地选择和优化目标,从而在复杂环境中实现对一般奖励函数ELLM
)中,建议利用基于语言的目标表示和基于语言模型的目标生成,以减轻对环境手动编码定义的需求。大型语言模型中捕获的世界知识将使得自动生成多样化、人类可理解且上下文敏感的目标成为可能。预训练的大语言模型大致分为三类:自回归模型、掩码模型和编码器-解码器模型。自回归模型(例如GPT
)通过最大化给定所有前文的下一个单词的对数似然来进行训练,因此能够进行语言生成。仅编码器模型(例如BERT
)则通过掩码目标进行训练,从而有效地编码句子的语义。在大文本语料库上预训练语言模型能够在多种语言理解和生成任务中实现令人印象深刻的0-shot
或few-shot
表现,这些任务不仅需要语言知识,还需要世界知识。ELLM
利用自回归语言模型生成目标,并使用掩码语言模型构建目标的向量表示。当大语言模型生成目标时,目标分布的支持范围变得与自然语言字符串的空间一样广泛。虽然无条件查询大语言模型以获取目标可以提供多样性和常识敏感性,但上下文敏感性需要对智能体状态的了解。因此,在每个时间步,需要使用一系列智能体可用动作的提示和当前观察的文本描述,借助状态描述器
大语言模型(LLM
)中提取目标的两种具体策略:
- 开放式生成,其中
LLM
输出建议目标的文本描述(例如“接下来你应该…”)。 - 封闭式生成,其中将一个可能的目标作为问答任务提供给
LLM(
例如“智能体应该做什么?(是/否)”)。在这种情况下,只有当“是”的对数概率大于“否”时,LLM
的目标建议才被接受。
前者更适合开放式探索,而后者更适合具有大量但可界定目标空间的环境。目标条件奖励,通过测量LLM生成的目标与智能体在环境中转移描述之间的语义相似性来计算给定目标
在这里,语义相似性函数
在实践中,我们使用预训练的SentenceBERT
模型作为LLM
生成之间的对齐。当转移的描述与目标描述之间的相似性足够接近
因此,CB-IM
方法的总体奖励函数可以重写为:
为了施加新颖性偏差,过滤掉智能体在同一回合中已经实现的语言模型建议。这可以防止智能体重复探索相同的目标。考虑两种形式的智能体训练:目标条件设置,其中智能体获得建议目标列表的句子嵌入
ELLM
是一种内在动机方法,旨在通过预训练的大语言模型(LLM
)将探索偏向于常识和可能有用的行为。这种先验知识在需要常识行为的外部奖励缺失环境中对预训练智能体的有用性,而其他探索方法无法捕捉这些行为。ELLM
超越了标准的新颖性搜索方法,专注于探索常识目标。这在提供多种可能行为的环境中尤其有帮助,但在目标导向探索空间有限、当人类常识无关或无法用语言表达(例如细粒度操作)时,效果较差,或者状态信息没有自然编码为自然语言字符串。LLM
的表现对提示选择敏感。即使使用良好的提示,LLM
有时也会出错,通常是由于缺乏领域特定知识。错误的负面建议可能会永久阻止智能体学习关键技能。随着通用生成模型在文本以外领域的可用性增加,类似ELLM
的方法也可以用于建议合理的视觉目标或其他状态表示中的目标。因此,ELLM
可能成为未来工作的一个平台,以开发更普遍和灵活的策略,将人类背景知识融入强化学习中。