课程学习系列之综述篇

提纲

1 简介

2 背景

3 定义

4 有效性分析

5 应用

6 总结

参考文献

1 简介

  **课程学习(curriculum learning)是一种训练策略,模仿人类教育中有效的学习顺序,让模型先从容易的数据或子任务上进行训练,再慢慢转移到更困难的数据或者子任务上训练。** 作为一个随插随用的插件,课程学习已经在在计算机视觉跟自然语言处理领域上的诸多模型的泛化能力跟收敛速度上验证了效果。

2 背景

回忆下我们接受教育的过程,教育内容以课程的形式高度组织起来,先学容易的部分,再慢慢去学习更加复杂跟抽象的内容。例如要学会大学数据中的线性积分,需要在小学学会四则运算,在初中学会抽象函数,在高中学会函数求导。  **但是对于机器学习而言,所有样本被随机打乱然后送到模型里训练,没有考虑到不同样本之间的难度以及模型当时的训练状态。** 于是乎,一个想法悄然诞生,“类似于人类课程学习的训练策略是否对模型训练有增益?”

picture.image

图1: 课程学习样例

一个简单的应用就是先让模型在更简单的数据或者子任务上训练,然后再慢慢增加数据或者子任务的难度,例如图中的图片任务模型训练过程,先让模型在简单的图片上训练,再慢慢增加训练数据的难度。应用课程学习训练策略到诸多正式场景的优势主要集中以下几点。

a) 提升模型在目标任务上的性能

b) 加速训练过程

c) 容易使用,独立于模型本身的算法

3 定义

按照条件的严格程度,课程学习有几个不同程度定义

Original Curriculum Learning

一个课程是在T步机器学习训练中一系列训练标准C=<Q1,…,Qt,…,QT>,每一个标准Qt都是目标训练分布P(Z)的一个重新加权Qt(z)=Wt(z)P(z),z可以是任意一个训练集中的样本。并且满足以下三个条件


a) 每一步训练集的熵不断增加。

H(Q t )<H(Q t+1 )

b) 每个样本权重不断增加。

W t (z)<=W t+1 (z)

c)T步标准等于训练集。

Q T (z)=P(z)

  **第一个条件表示训练集的多样性跟信息量应该慢慢增加,从而导致每一步的训练集的大小跟难度在整个训练过程中会逐渐增加,第二个条件表示应该逐渐增加训练样本,导致训练集大小不断增加,第三个条件表示应该最终步的样本重新加权结果应该等于目标训练集。** 这个课程学习最严格版本的定义,拥有较多的约束,在不少场景下都难以满足,例如在多任务训练中,条件2跟条件3就不满足,但是通过合理安排各个任务的训练顺序,也实现了训练难度从容易到困难的过渡。于是就有一个更佳抽象的定义。




Data-level Generalized Curriculum Learning

移除了上一个定义中的三个附加条件,一个课程是在T步机器学习训练中一系列目标训练分布的重新加权。课程学习就是一个按照课程训练模型的策略。




后续为了扩宽课程学习的范围,将课程学习的定义进一步做了调整,将定义从数据层面转移到更佳抽象的概念。

Generalized Curriculum Learning

一个课程是在T步机器学习训练中一系列标准,每个标准都包括机器学习模型训练相关元素的设计,包括但不限于任数据,任务,模型容量,学习目标等。




在了解完课程学习的定义后,接下来就需要知道该如何针对特定任务设计对应的课程学习策略。  **课程学习策略是由Difficulty Measurer跟Training Scheduler两部分组成。其中Difficulty Measurer用于判断训练数据的困难程度,判断哪些数据应该更早加入训练,而Training Scheduler则用于决定在训练过程中不断加入新数据的时机,判断在什么时刻应该加入更复杂的样本到训练数据中。** 设计课程学习策略其实就是决定这两部分模块的设计。

4 有效性分析

  **关于为何课程学习可以给机器学习模型带来性能上的提升,以及实现训练加速,目前的分析主要集中在两个角度,optimization problem跟data distribution。**

a) Optimization problem

课程学习可以被看作是一个特别的continuation method,是一种针对非凸问题的优化策略。  **先在一个更平滑版本的问题上优化,然后再逐渐再降低平滑性,在更加复杂的问题上优化,直到在目标版本上完成优化。** 类似于模拟退火算法,通过一系列优化目标,先在更加平滑的问题上找到局部最优解,再慢慢往全局最优解的方向移动。而  **从课程学习早期的优化目标找到的局部最优解具有更强大的泛化能力,更有可能接近于全局最优解。** 换个角度想,可以把课程学习早期的学习目标看作一个预训练,为后续目标的优化提供必要的帮助。

picture.image

图2: 从optimizaation problem看待课程学习

b) Data distribution

深度学习的训练数据来源广泛,其中不乏被错误标注的噪声数据或者复杂样本。  **课程学习策略会在简单数据上花费更多时间,从而避免在困难跟噪声数据上浪费过多时间,从而实现训练加速。** 由于错误的标注数据或者噪声,会导致训练集分布跟测试集分布之间存在偏差。如图所示,如果将那些具有更高置信度的样本视作简单样本,而把那些低置信度的数据视作困难样本,那么课程学习就是先从高置信度样本中开始学习(目标分布),并慢慢转向低置信度样本中去(训练分布)。整个训练过程可以视作训练集分布的一个加权采样序列,生成一系列采样分布,一开始先赋予低置信度数据(尾部数据)较低的权重,赋予高置信度数据(中间部分数据)较高的权重,也就是一开始的分布是接近于目标分布,然后在不断调整权重,直到全部数据具有相同权重,也就等同于训练集分布。所以课程学习是通过一系列采样分布的逐渐调整,来最小化训练数据的经验损失。

picture.image

图3: 从data distribution看待课程学习

5 应用

基于关于课程学习有效性的分析,可以将课程学习的应用分为两类,  **to guide,引导训练在参数空间想着更佳合理的区域移动(基于optimization problem),to denoise,聚焦于高置信度数据区域,从而缓解噪声数据的干扰(基于data distribution)。**






a)  **To guide**


对于困难级别的目标任务而言,直接在上面训练往往会导致糟糕的性能表现或者模型难以收敛。课程学习策略可以通过引导模型从简单任务到困难任务过渡,从而避免在困难任务上直接训练的窘局。例如多任务学习如果随机选择训练任务的顺序往往会得到令人不满的效果,但是通过课程学习先选择较简单并跟上个任务有联系的任务的策略往往有奇效。而且,对于那些目标分布跟训练分布存在较大差异的任务,课程学习也可以慢慢引导模型去适应目标分布,最常用的一个例子就是领域迁移,先在有充足标注数据的A领域(跟目标领域有一定相似)上训练,然后再在只有少量标注数据的目标领域上做进一步训练。




b)   **To denoise**


对于包含噪声或者多种类型的训练数据,课程学习策略可以帮助去噪,从而加速训练,让模型更佳鲁棒,泛化能力更强。

6 总结

  **通过模仿人系统学习的过程,课程学习策略可以让机器学习模型从简单数据或者任务开始学习,循序渐进,最后在困难的目标任务或者数据上取得更强大的表现。这是一种独立于深度学习算法的训练策略,支持随插随用,可以加入到绝大多数模型的训练过程中,提升模型性能,加速训练速度。但是目前关于课程学习策略更多是一些经验知识,在理论方面依旧匮乏。**

参考文献:

1.A Survey on Curriculum Learning

https://arxiv.org/pdf/2010.13166.pdf

0
0
0
0
评论
未登录
暂无评论