Methodology:Idealistic Curriculum Learning Processing
arXiv:1707.00183 2017
主要提出了监督学习和强化学习中解决数据集错标签和类别不平衡问题的自动课程设计方法。
摘要
我们提出了师生自主课程学习(TSCL),一个自动课程学习的框架,学生试图学习一个复杂的任务,教师自动选择给定的子任务给学生进行训练。我们描述了一系列依靠直觉的老师算法,学生应该多练习那些能有最快进展的任务,即学习曲线斜率最高的那些任务。此外,教师算法还通过选择学生表现变差的任务来解决遗忘问题。我们证明,在两个任务上TSCL达到或超过精心手工课程的结果:用LSTM添加十进制数和导航Minecraft迷宫。使用我们的自动生成的课程能够解决一个直接在解迷宫上训练时根本无法解决的Minecraft迷宫,学习比子任务的统一取样要快一个数量级。
引言
深度强化学习算法已被用于解决视频游戏(Mnih等,2015),运动(Schulman等,2015; Lillicrap等,2015)和机器人(Levine等,2015)中的困难任务。 但是像“机器人,给我一杯啤酒”这样稀有回馈的任务仍然是直接应用这些算法解决的难题。 其中一个原因是随机探索任务需要的样本数量随着获得回馈的步骤数量呈指数增长(Langford,2011)。 解决这个问题的一个方法是使用课程学习(Bengio等,2009; Zaremba和Sutskever,2014; Graves等,2016; Wu和Tian,2017) 一旦掌握了更简单的任务,就更难完成任务。 课程学习有助于掌握简单的任务后,通过随机的探索就可以发现更难的任务。
要使用课程学习,研究人员必须:
能够通过困难程度设计子任务。
决定一个“掌握”的门槛。 这可以基于取得一定的分数(Zaremba和Sutskever,2014;吴和田,2017),这需要事先知道每个任务的可接受的完成程度。 或者,这可以基于高原的表现,考虑到学习曲线中的噪音,这可能难以检测到。
学习更难的东西,同时不断地混合更轻松的任务,以避免遗忘。 有效地设计这些混合物是具有挑战性的(Zaremba和Sutskever,2014)。
在本文中,我们描述了一种叫做“师生课程学习”(TSCL)的新方法。
学生是被训练的模型。 教师监控学生的训练进度,并确定学生在每个训练阶段应该训练的任务,以最大化学生在课程中的进度。 学生可以是任何机器学习模型。 老师自己正在学习这个学生,因为它正在给予任务,这些都是单个训练过程的一部分。 我们根据学习进度的概念描述了几种教师算法(Oudeyer and Kaplan,2007)。 主要思想是学生应该多练习它最快的进展,即学习曲线斜率最高。 为了避免遗忘,学生还应该练习表现越来越差的学习任务,即学习曲线斜率为负值
论文的主要贡献是:
1我们将TSCL(作为部分可观察的马尔可夫决策过程(POMDP)的课程学习框架)正式化。
2我们提出了一个基于学习进度概念的算法家族。 算法还解决了忘记以前的任务的问题。
3我们在两个监督和强化学习任务上评估了算法:添加十进制数与LSTM和导航Minecraft。
2.师生设置
图1显示了师生互动。 在每个时间步,教师选择任务供学生练习。 学生训练这些任务并返回一个分数。 教师的目标是让学生尽可能少的训练步骤成功完成最后的任务。 通常,任务是通过表示N个子任务之一的分类值进行参数化的,但是也可以想象多维或连续的任务参数化。 得分可以是强化学习中的情节总回馈或监督学习中的验证集精度。
我们将教师的目标正式化,把最终任务作为部分可观察的马尔可夫决策过程(POMDP),帮助学生学习解决这个任务。 我们提出了两个POMDP公式:(1)简单,最适合强化学习; 和(2)批次,最适合监督学习。
2.1简单POMDP公式
简单的POMDP公式将学生的分数公开在单个任务中,并且非常适合于强化学习问题。
1.状态st表示学生的整个状态(即,神经网络参数和优化器状态),并且对于教师是不可观察的。
2.动作at对应于教师选择的任务的参数。以下我们只考虑离散任务参数化。 采取行动意味着对学生进行一定次数的迭代训练。
3.观察ot是在时间步t训练的学生的任务i =at的得分x(i)t,即发作总回馈。 在理论上,教师也可以观察学生状态的其他方面,比如网络权重,为了简单起见,我们选择只公开分数。
4.回馈 rt是学生在时间步t训练的任务得分的变化:rt = x(i)t-x(i)t’i,其中t’ i是上一次训练同一任务时的时间步。
2.2批次POMDP公式
在监督式学习中,批次训练可以包含多个任务。 因此,对整个训练集合采取行动,观察和回馈,并且可以在持有的验证集上测量分数。 这激励了批POMDP公式:
1. 状态st表示学生的训练状态
2.at动作表示N个任务的概率分布。 每个训练批次根据分布采样: ; 其中p(i)t是任务i在时间步t的概率。
3. 观察值是训练步骤 之后所有任务的得分。在最简单的情况下,分数可以是训练集中任务的精确度。 但是在小批量训练的情况下,模型在训练过程中发展,因此无论如何需要额外的评估通过以产生一致的结果。因此,对这次评估我们使用一个单独的验证集合,其中包含所有任务的统一组合。
4回馈rt 是对之前时间步的评估分数的累加
这种设置也可以在加强学习中通过对批次进行训练。但是,因为在强化学习中对一个样本(一个情节)进行评分通常比在监督学习中在计算上要昂贵得多,所以使用简单的POMDP形式化并在每个训练步骤之后对下一个任务做出决定是有意义的。
2.3优化标准
对于任何一种POMDP公式来说,最大化教师情节总回馈相当于在情节结束时最大化所有任务的得分:
其中Ti是任务i正在训练的最后一个训练步骤。
虽然优化标准的明显选择是最终任务中的表现,但最初,学生在最终任务中可能没有取得任何成功,这并不能给教师提供任何有意义的反馈信号。 所以我们选择最大化所有任务中的表演总和。 这里的假设是,在课程学习中,最后的任务包括了所有以前任务的要素,因此在中间任务中的良好表现通常导致在最终任务中表现良好。
3 算法
通常使用强化学习算法来解决POMDP。 但那些需要很多训练集,而我们的目标是在一个教师集中训练学生。 所以,我们诉诸于更简单的启发式。 基本的直觉是,学生应该更多地练习那些它正在取得最大进展的任务(Oudeyer和Kaplan,2007),同时也练习那些有被遗忘风险的任务。
理想主义的课程学习。 左:随着时间的推移,不同任务的分数会有所提高,一旦掌握了前一个任务,下一个任务就会开始改善。 右:取样任务的可能性取决于学习曲线的斜率。
图2展示了课程学习环境中理想的训练进度:
1.首先,教师没有知识,所以从一切工作中统一抽样。
2.当学生开始在任务1上进展时,教师为这个任务分配更多的概率质量。
3.当学生掌握任务1时,其学习曲线变平,教师对任务进行较少的抽样。 在这一点上,学生也开始在任务2上取得进展,所以教师从任务2中抽样更多。
4.继续,直到学生掌握所有任务。 随着所有任务学习曲线最终平坦化,教师返回统一的任务抽样。
上面的图片是理想的,因为在实践中经常发生一些失误,即当大多数概率质量被分配给任务2时,任务1的性能可能变差。 为了解决这个问题,学生还应该练习所有的学习任务,尤其是那些发生学习不良的学习任务 出于这个原因,我们根据学习曲线的斜率的绝对值来取样任务。 如果分数的变化是负的,这意味着发生了学习失败,这个任务应该更多的训练。
这个描述本身并不规定一个算法。 我们需要提出一种从噪音任务分数估计学习进度的方法,以及一种平衡exploration and exploitation的方法。 我们从非平稳的多臂赌博机问题(Sutton和Barto,1998)的算法中获得灵感,并将其适用于TSCL。 为了简洁起见,我们只给出简单的公式化算法的直觉,正式的描述可以在附录A和B中找到。
3.1在线算法
Online算法受基本的非平稳的bandit算法的启发(Sutton and Barto,1998)。 它使用指数加权移动平均来跟踪不同任务的预期收益Q:
a是学习率。 接下来的任务可以通过以e贪心搜索方式进行选择: - 以概率e抽样一个随机任务,否则为argmaxQt(a)。
或者,可以使用波尔兹曼分布来选择下一个任务:
3.2朴素算法
为了更可靠地估计学习进度,人们应该多次练习。 Naive算法将每个任务训练K次,观察得到的分数并使用线性回归估计学习曲线的斜率。 回归系数作为上述非平稳Bandit算法的回报。 有关细节,请参阅附录A中的算法2。
3.3窗口算法
当明确没有进展时,重复执行固定次数的任务是昂贵的。 窗口算法保持最后K个分数的FIFO缓冲器,并记录这些分数时的时间步长。 执行线性回归来估计每个任务的学习曲线的斜率,其中时间步长作为输入变量。 回归系数作为上述非平稳Bandit算法的回报。 有关细节,请参阅附录A中的算法3。
3.4采样算法
以前的算法需要调整超参数来平衡探索。 为了摆脱探索超参数,我们从Thompson采样中获得灵感。 采样算法为每个任务保留最后K个奖励的缓冲区。 为了选择下一个任务,从每个任务的K-last-rewards缓冲区抽取最近的奖励。 然后选择哪个任务产生最高的抽样奖励。 这使得探索成为算法的一个自然部分:最近获得高回报的任务经常被抽样。 有关细节,请参阅附录A中的算法4。
4个实验
4.1十进制数加法
在LSTM中添加十进制数字是一个众所周知的任务,需要课程在合理的时间内学习(Zaremba和Sutskever,2014)。 它被实现为序列到序列模型(Sutskever et al。,2014),其中网络的输入是两个用“加号”分隔的十进制编码数字,网络的输出是这些数字的总和 ,也用十进制编码。 课程以输入数字的位数为基础 - 学习添加短数字然后移到更长的数字更容易。
增加数字是一个监督学习问题,因此可以通过在小批量中包含几个课程任务来更有效地进行训练。 所以我们采用2.2中所述的批量训练方案。 我们使用的分数是在验证集上计算的每个任务的准确度。 下面显示的结果是用不同的随机种子进行的3次运行的均值和标准偏差。 完整的实验细节可以在附录C中找到。
4.2 Minecraft
“我的世界”是一个流行的3D视频游戏,玩家可以探索,制作工具和构建任意结构,使其成为AI研究的潜在丰富环境。 在我们的强化学习实验中,我们使用了带有OpenAI Gym wrapper5的马尔默平台(Johnson et al。,2016)与Minecraft进行交互。 特别是我们使用马尔默的ClassroomDecorator为代理生成随机迷宫来解决。 迷宫包含由以下障碍物分隔的房间序列:
墙 - 代理商必须在墙上找到一个门口。
熔岩 - 代理必须通过桥梁跨越熔岩。
我们只实现了用Window算法完成Minecraft任务,因为其他算法依赖于分数的变化,这对于并行训练方案来说是不直观的。 作为基准,我们使用统一的抽样,仅对最后一项任务进行训练,以及手动调整的课程。 完整的实验细节可以在附录D中找到。
6,结论
我们提出了一个自动课程学习框架,可用于监督和强化学习任务。 我们根据学习进度的概念,在该框架内提出了一系列算法。 虽然许多算法表现相当好,但在选择任务时依赖于学习曲线斜率的绝对值是至关重要的。 这保证了网络对开始忘记的任务的重新训练。 在我们的LSTM十进制加法实验中,采样算法胜过了最好的手动设计的课程以及统一的采样。 在具有挑战性的5个任务的Minecraft导航问题上,我们的窗口算法与精心设计的手动课程表现相匹配,并且明显优于统一采样。 对于需要进行课程学习的问题,TSCL可以避免完成子任务难度和手工设计课程的繁琐工作。