###进入正题,课程学习方法
三. The Curriculum Learning Method
3.1. Curricula——什么是课程
课程是一个通用概念,它既包括组织过去经验的时间表,也包括通过任务训练获得经验的时间表。
定义:
。
Curriculum(课程) 被定义为一个四元组:
边的含义:
路径终止:
图3:先前工作中的课程结构示例。(a) 网格世界域中的线性序列(Narvekar等人,2017年)(b) 块状人的有向无环图(Svetlik等人,2017年)。
举例理解:
我们想训练一个智能体(agent)学会在一个大迷宫中找到出口。这个任务很难,所以我们采用课程学习(Curriculum Learning),从简单任务开始逐步训练。
第一步:拆分成多个任务(Tasks)
第二步:每个任务生成状态转移样本
第三步:课程图结构(Curriculum Graph)
第四步:训练过程是这样的:
-
首先训练从 m1 得到的样本(简单任务)
-
然后训练 m2,在稍复杂环境中导航
-
逐渐增加难度,直到训练 m4 的复杂迷宫
-
所有路径最终都“汇聚”到目标任务 v4
流程图:
课程可以在线上创建,根据代理在给定顶点的样本上的学习进度动态添加边。
课程也可以完全离线,其中在训练之前生成图形,并根据与不同顶点关联的样本的属性选择边
在样本级别创建课程图对于大型任务或大型任务集来说计算起来可能很困难。因此,在实践中,通常使用简化的表示形式来表示课程。
这种简化可以沿着三个常见的维度进行。
第一个是单任务课程,其中课程中使用的所有样本都来自一个任务:
定义:单任务课程:——只有一个最终任务
单任务课程是课程C,其中考虑提取样本的任务集的基数|T | = 1,并且仅由目标任务mt组成。
单任务课程本质上考虑如何最好地组织和训练从单个任务中获得的经验。这种类型的课程在经验回放方法中很常见
理解:
Single-task Curriculum 就是在只有一个目标任务的前提下,通过对这个任务本身的样本进行难度排序或组织,从而构造出一个训练课程。
第二种常见的简化方法是在任务级别学习课程,其中图中的每个顶点都与单个任务的样本相关联。在任务级别上,课程可以定义为中间任务的有向无环图:
定义:
在生成任务级课程时,主要的挑战是如何对任务进行排序,以便学习到的行为策略对于获取未来任务中的良好样本是有用的。
换句话说,选择和训练任务m会诱导映射函数g,并根据代理的行为策略确定下一顶点处可用的样本集DT i ,这是学习m的结果。 与定义2中相同的样本集可以与多个顶点相关联类似,允许相同的任务出现在多个顶点上。 因此,当代理的行为策略发生变化时,可以重新访问任务。图3b中可以看到一个例子。
理解:
Task-level Curriculum 是按任务划分的课程学习,每个训练阶段只关注一个完整任务的全部样本,整个课程是在多个任务之间规划出学习顺序。
最后,课程的另一种简化是线性序列。这是现有工作中课程最简单和最常见的结构:
定义:
序列课程是课程C,其中图C中每个顶点v的入度和出度最多为1,并且恰好有一个源节点和一个汇节点。
理解:
Sequence Curriculum 是一种“线性推进式”的课程结构,从一个起点依次学习每一阶段直到终点,适合从简单到复杂、逐步掌握技能的学习流程。
这些简化可以组合起来,从多个维度简化课程。例如,序列简化和任务级简化可以结合起来产生一个任务级序列课程。这种类型的课程可以表示为有序的任务列表[m1,m2,...mn]。图3a中可以看到一个例子
设计课程时,最后一个重要的问题是确定停止标准:即如何决定何时停止对与顶点相关的样本或任务进行训练,并继续下一个顶点。
在实践中,通常当任务或一组样本的性能收敛时,训练就会停止。训练到收敛并不总是必要的,
所以另一个选择是在每个顶点上训练固定数量的剧集或时期。由于多个顶点可以与相同的样本/任务相关联,因此可以在课程后期重新访问这些经验。
3.2. Curriculum Learning
课程学习是一种优化代理积累经验顺序的方法,以提高一组最终任务的性能或训练速度。
通过概括,从简单任务中快速获得的知识可以用来减少对更复杂任务的探索。在最一般的情况下,代理可以从多个与最终MDP不同的中间任务中获取经验
这种方法有3个关键要素:
Task Generation任务生成。
课程的质量取决于可选择任务的质量。 任务生成是从中获取经验样本的中间任务的良好集合创建过程。 这套中间任务可能是预先指定的,也可能是通过观察代理在课程构建过程中动态生成的。
Sequencing测序
排序研究如何在经验样本集 D 上创建一个部分顺序:也就是说,如何生成课程图的边。
过去的方法是手动定义课程。现在然而,最近已经开始探索课程排序的自动化方法。
Transfer Learning迁移学习
在使用多个任务创建课程时,中间任务的状态/动作空间、奖励函数或转换函数可能与最终任务不同。 因此,需要迁移学习来提取和传递在一个任务中获得的可重用知识到下一个任务。 课程学习将迁移学习场景扩展到考虑训练会话,在这些会话中,代理必须反复将知识从一个任务转移到另一个任务,直到一组最终任务。
3.3. Evaluating Curricula评估课程
课程可以通过与迁移学习相同的指标进行评估(参见第2.3节),通过比较完成整个课程后在目标任务上的表现,与不遵循任何课程(即从头开始学习)的表现。如果有多个最终任务,这些指标可以很容易地扩展:例如,通过比较一组任务的平均渐近性能,或一组任务达到阈值性能水平的平均时间。
同样,可以区分弱转移和强转移。然而,在课程学习中,除了在课程的中间任务上进行训练之外,还需要额外的费用来构建课程本身,这也可以在评估课程成本时考虑在内。与迁移学习的情况一样,成本可以用墙钟时间或数据/样本复杂度来衡量。
自动生成课程的方法通常也需要对潜在的中间任务有一定的先验知识或经验,以便指导任务的排序。由于这些困难,这些方法通常将课程生成视为沉没成本,专注于评估课程本身的性能,并将其与其他课程进行比较,包括由人设计的课程。
最终使用的最佳评估标准取决于所考虑的具体问题和设置。
例如,与中间任务相比,收集最终任务的数据有多昂贵?如果中间任务相对便宜,我们可以将花在它们上的时间视为沉没成本。是提高初始性能、最终性能还是达到期望的性能阈值更重要?如果设计课程需要人类互动,那么这段时间将如何计入使用课程的成本?这些问题中的许多取决于我们是希望评估特定课程的效用(与其他课程相比),还是希望评估使用课程设计方法的效用与不使用课程的训练相比。
3.4. Dimensions of Categorization3.4. 分类的维度
我们沿着以下七个维度对课程学习方法进行分类,这些维度由属性(粗体)和它们可以采用的值(斜体)组成。我们在第4节中使用这些维度来创建调查工作的分类法。
1. Intermediate task generation: 中间任务生成:target / automatic / domain experts / naive users.目标/自动/领域专家/原始用户。
在课程学习中,主要的挑战是如何对一组任务进行排序以提高学习速度。
找到一个好的课程首先取决于有有用的源任务可供选择。 大多数方法假设可能的源任务集是固定的,并且提前给出。在最简单的情况下,仅使用来自目标target任务的样本。 当使用多个中间任务时,通常由人类手动设计。我们将这些任务区分为由领域专家domain experts设计的,他们了解代理及其学习算法,或没有此信息的普通用户naive users设计的。 另一方面,一些工作考虑使用一组规则或生成过程自动automatically在线创建任务。这些方法可能仍然依赖于一些人类输入来控制/调整超参数,例如生成的任务数量,或者验证生成的任务是否实际可解决。
例子:训练一个机器人学会在厨房中做三明治
🧠 目标任务(Target Task):
让机器人学会从头到尾制作一个三明治:拿面包、切菜、夹火腿、使用调料、组合三明治。
🧭 中间任务生成方式分类:
1. 仅用目标任务样本(Target only)
-
描述:只从制作三明治这个复杂任务中采样,例如让机器人不断尝试完整做一遍三明治。
-
问题:任务太难、奖励稀疏,学习效率很低。
2. 由专家手动设计中间任务(Domain expert-designed)
-
描述:AI研究人员或机器人专家设计出一系列合理的步骤作为中间任务,例如:
-
识别和抓取面包
-
切黄瓜片
-
把黄瓜放到面包上
-
打开调料瓶并挤出调料
-
-
优点:任务有层次、难度递增,符合机器人能力发展过程。
-
缺点:设计成本高,要求专家知识。
3. 由非专家用户设计中间任务(Naive user-designed)
-
描述:普通用户提出中间任务,比如:
-
“让机器人拿个东西”
-
“让机器人在桌子上放点什么”
-
-
问题:这些任务可能与最终目标联系较弱,顺序和结构不一定合理。
4. 自动生成中间任务(Automatically generated)
-
描述:使用算法在线生成任务,比如利用环境中物体的组合自动生成如下任务:
-
“把面包从桌子上拿起来放到盘子里”
-
“将两种食材组合放到一起”
-
-
方式:可以基于规则(如组合操作顺序)或使用生成模型(如语言模型或强化学习策略)自动构造。
-
挑战:需要机制保证生成任务的可解性和相关性,可能需要人类监督调整生成策略或数量。
2. Curriculum representation: single / sequence / graph. As we discussed previouslybie课程表示:单个/序列/图。
课程的最一般形式是样本子集上的有向无环图。
这些课程可以表示为线性链或序列。在这种情况下,课程中的每个中间任务都有一个确切的来源。由迁移学习算法来适当地保留和组合从链中先前任务收集的信息。更一般地说,它们可以表示为任务的完整有向无环图。这种形式支持从多对一、一对多和多对多任务进行迁移的学习方法。
3. Transfer method: policies / value function / task model / partial policies / shaping reward / other / no transfer.转移方法:策略/价值函数/任务模型/部分策略/成形奖励/其他/无转移。
所使用的迁移学习算法会影响课程的生成方式。转移的知识类型可以是低级知识,例如an entire policy, an (action-)value function, or a full task model,整个策略、(动作)值函数或完整的任务模型,这些知识可用于直接初始化目标任务中的学习者。 它也可以是高级知识,例如部分策略(partial policies例如选项)或成形奖励shaping rewards。此类信息可能无法在目标任务中完全初始化学习者,但可以用于指导代理在目标任务中的学习过程。 当来自单个任务的样本被排序时,不需要转移no transfer学习算法。最后,我们使用其他来指代其他类型的转移学习方法。我们根据每篇论文的实验结果中课程中任务之间转移的内容,沿着这个维度对论文进行分类。
4. Curriculum sequencer: automatic / domain experts / naive users. 课程排序器:自动/领域专家/新手用户。
课程学习是一种三部分方法,包括任务生成、排序和迁移学习。
虽然这项调查的大部分注意力都集中在自动排序方法上,但许多工作考虑了该方法的其他部分,并假设排序是由人类或神谕完成的。因此,我们识别并分类了每项工作中使用的排序方法类型,类似于任务生成:它可以由排序算法自动automatically完成,也可以由领域专家或新手用户手动完成domain experts or naive users。
5. Curriculum adaptivity: static / adaptive课程适应性:静态/自适应
在创建课程时,另一个设计问题是是否应该在培训之前生成完整的内容,或者在训练期间动态调整。 我们把前者称为静态static,后者称为自适应adaptive。
- 静态方法使用域的属性,可能还有学习代理的属性,在学习任何任务之前生成课程。
- 另一方面,自适应方法受只能在学习过程中测量的属性的影响,例如代理在其当前面临的任务上的学习进度。
例如,学习进度可用于指导后续任务是否应该更容易或更难,以及任务在课程的特定点对代理的相关性。
6. Evaluation metric: time to threshold / asymptotic / jumpstart / total reward.评估指标:达到阈值的时间/渐近/快速启动/总奖励。
具体来说,有三种方法可以衡量通过课程进行学习和培训的成本。
1) 生成和使用课程的成本被视为沉没成本,设计者只关心学习后在目标任务上的表现。这种情况对应于弱转移设置。
2)在与直接针对目标任务的训练进行比较时,课程中中间任务的训练成本被考虑在内。当很难评估生成课程本身的成本时,这种情况最常见,例如如果它是由人类手工设计的。
3)最后,最全面的情况考虑了生成课程以及通过课程进行培训的成本。我们将最后两个称为强转移,并通过加粗相应的指标来表示。请注意,实现渐近性能改进意味着强转移。
7. Application area: toy / sim robotics / real robotics / video games / other. 应用领域:玩具/仿真机器人/真实机器人/视频游戏/其他。
玩具toy域由网格世界、推车杆和其他低维环境等环境组成。
sim robotics环境模拟机器人平台,例如在 MuJoCo 中。
real robotics论文在物理机器人平台上测试他们的方法。
视频游戏video games包括星际争霸或街机学习环境(Atari)等游戏环境。
最后,其他other用于不适合这些类别的自定义域。我们列出这些,以便读者可以更好地了解不同方法的可扩展性和适用性,并使用这些来告知哪些方法适合他们自己的问题。