在过去的十年中,深度学习系统已被证明在许多人工智能任务中非常成功,但其应用往往较为狭窄。例如,一个训练用于识别猫和狗的计算机视觉系统需要大量重新训练才能开始识别鲨鱼和海龟。
元学习是一种旨在将机器学习系统转变为多面手的范式。元学习模型在一系列相关任务上进行训练,但它不仅学习如何执行这些任务,还学习如何学会执行它们。这样,它只需少量标记训练示例即可适应新任务,从而大幅减少劳动密集型数据标注的需求。
在(虚拟)国际学习表征会议上,提出了一种方法,可在不增加数据标注要求的情况下提高元学习任务的性能。关键思想是调整元学习过程,使其除了传统的标记示例外,还能利用少量未标记数据。
在元学习中,机器学习模型学习如何学习。在元训练期间,模型使用来自“支持集”的数据在一组相关任务上进行训练,并使用来自“查询集”的数据进行测试。但查询集是标记的,因此模型可以评估其学习效果。在元测试期间,模型再次在一组支持集上进行训练,但评估其分类未标记查询数据的能力。
直觉是,即使没有标签,这些额外数据仍然包含大量有用信息。例如,假设一个在陆地动物(如猫和狗)图像上训练的元学习系统正在适应识别水生动物。未标记的水生动物图像(即未指示动物是鲨鱼还是海龟的图像)仍然告诉模型有关学习任务的信息,例如水下照片典型的光照条件和背景颜色。
在实验中,将一个目标识别元学习任务上通过该方法训练的模型与16个不同的基线进行了比较。发现该方法将单样本学习(即仅从单个标记示例学习新目标分类任务)的性能提高了11%到16%,具体取决于底层神经网络的架构。
在传统机器学习中,模型被输入一批标记数据,并学习将数据特征与标签关联起来。然后输入另一批测试数据,并评估其预测该数据标签的效果。为了评估目的,系统设计者可以访问测试数据标签,但模型本身不能。
元学习增加了另一层复杂性。在元训练(类似于传统训练)期间,模型学习执行一系列相关任务。每个任务都有自己的训练数据集和测试数据集,模型可以看到两者。也就是说,其元训练的一部分是学习对训练数据的特定响应方式如何影响其在测试数据上的性能。
在元测试期间,它再次在一系列任务上进行训练。这些任务与元训练期间看到的任务相关但不相同——例如识别水生动物,而不是陆地动物。同样,对于每个任务,模型看到训练数据和测试数据。但在元训练期间,测试数据是标记的,而在元测试期间,标签未知且必须预测。
术语可能有点令人困惑,因此元学习研究人员通常将元学习“训练”集称为支持集,将元学习“测试”集称为查询集。在元训练期间,学习算法可以访问支持集和查询集的标签,并使用它们生成全局模型。在元测试期间,它只能访问支持集的标签,用于使全局模型适应每个新任务。
该方法有两个关键创新。首先,在元训练期间,不学习单个全局模型。相反,训练一个辅助神经网络,基于相应的支持集为每个任务生成一个局部模型。其次且更重要的是,在元训练期间,还训练第二个辅助网络以利用查询集的未标记数据。然后,在元测试期间,可以使用查询集微调局部模型,提高性能。
机器学习系统由一组参数控制,在元学习中,元训练为特定任务族(如识别动物)优化这些参数。在元测试或操作部署期间,模型使用少量训练示例为