作者 | 滕赛赛 编辑 | 臧晨宇 校对 | 李仲深
今天给大家介绍清华大学YudongChen等人发表在AAAI上的一篇文章 “MetaDelta:AMeta-LearningSystemforFew-shotImageClassifification” 。现有的元学习算法很少考虑未知数据集的时间和资源效率或泛化能力,这限制了它们在实际场景中的适用性。在这篇文章中,作者提出了一种新的实用的元学习系统MetaDelta,用于小镜头图像分类。MetaDelta由两个核心组件组成:(1)由中央控制器监督的多个meta-learners以确保效率,(2)一个元集成模块负责集成推理和更好的泛化。MetaDelta的每个meta-learner都由一个经过批量训练的预训练编码器和用于预测的无参数解码器组成。

一、研究背景
现有的大多数元学习分类方法没有考虑时间、资源效率和预算,这限制了它们在许多实际应用中满足要求的能力;此外,现有方法的成功在很大程度上依赖于在每个特定的数据集上的超参数设计,但是在现实世界的场景中,数据集和任务可能是未知的、多样化的,甚至随着时间的推移而变化,使得手动设计最合适的超参数非常费力。为了应对这些挑战,作者设计了一种新的实用元学习系统(MetaDelta),用于小样本图像分类任务。
二、任务与要求
图1为在少样本图像分类任务中的元获取系统的工作流程,meta-learner首先对元数据生成器生成的数据集进行训练,meta-learner输出一个learner,然后在每个元测试集的支持集上进行训练,以输出一个用于评估的预测器。

图1. 少样本图像分类的AAAI2021metaDL挑战的工作流程
AAAI2021metaDL挑战由反馈阶段和最终阶段组成。在反馈阶段,由离线公共数据集(Omniglot数据集)和一个在线反馈数据集(该数据集未知/不可用,仅用于评估参与者上传的提交内容)提供给参与者开发元学习系统。在最终阶段,将使用新的在线反馈数据集来评估提交的内容,评估度量是对600个元测试集的查询集的平均分类精度。
这项比赛的挑战:
1. 快速自适应,无需过度调试
2. 时间和资源效率
3. 跨不同数据集的泛化
三、模型与方法
3.1 系统综述
为了解决时间和资源效率的问题,在主要过程中采用中央控制器调度数据,决定何时开始和停止元训练/测试;为了在未知反馈数据集上取得良好的鲁棒性能,学习了4个不同的meta-learners,并对这4个meta-learners在由中央控制器管理的4个GPU上进行不同超参数的并行训练。
在元训练期间,利用批处理训练策略训练一个深度模型来对所有的元训练类进行分类;为了提高时间效率和对未知数据集的泛化能力,利用预先训练的CNN编码器将图像嵌入到特征中,并在编码器上添加一个分类器以进行微调。在元测试期间,丢弃分类器头,用微调编码器映射图像嵌入,并应用高效的无参数解码器来预测基于嵌入的查询图像的类标签。

图2. 针对AAAI2021metaDL挑战的MetaDelta系统
3.2 meta-learners
选择ProtoNet框架作为meta-learners,但与ProtoNet不同的是:
3.3 微调CNN编码器
作者使用预先训练好的deepbackbones,因为其具有很强的泛化能力,可以帮助meta-learners推广到未知的反馈数据集。为了微调backbones,在CNN编码器的最后一层中添加了一个全连接层,并从元训练类中随机抽取L-wayZ-shot批次以进行训练。为了增强图像数据,采用旋转损失。首先,将每幅图像按0、90、180、270度旋转,得到四幅图像;然后,在CNN编码器的顶部添加另一个4路线性分类器头来预测四种旋转。最后,通过最小化损失来优化编码器的权重。
3.4 无参数解码器
在元验证期间,使用ProtoNet中的解码器进行预测,选择在元验证数据集上具有最佳少样本分类精度的模型作为编码器。在元测试期间,由于原始网络解码器和MCT解码器的精度趋势线相同,而后者对于相同的CNN编码器可以产生更高的精度,所以作者选择了MCT解码器。
3.5 元集成过程
中央控制器模块:提高系统的时间和资源效率,避免超时或内存溢出。
中央控制器的设计图3所示,利用多线程和多处理技术来提高时间和资源效率,设置一个定时器来测量和估计元训练/测试的时间成本。

图3. MetaDelta的中央控制器
在此框架下,主进程启动一个数据管理器线程来加载、处理数据;然后,根据特定的meta-learner训练器对数据进行接收和预处理;预处理的数据被发送到相应的数据缓冲区,可以支持不同子进程中的异步元训练。
四、总结
4.1 最终阶段的结果
作者的团队排名第一,元测试精度为0.4042,这验证了MetaDelta的有效性和泛化能力。

表1. 排名前3名的队伍在最后阶段预测结果
4.2 离线评估结果
为了在离线环境中评估所提出的MetaDelta,作者在四个公共数据集(Omniglot、CIFAR-100、miniImageNet、tieredImageNet)上进行了实验,以完成少样本图像分类任务。并将MetaDelta与其他的元学习方法进行了比较,主要是与采用了基于优化和基于度量的元学习方法进行比较。
性能比较情况表2,除了Omniglot数据集之外,作者设计的MetaDelta系统在CIFAR-100、miniImageNet和tieredImageNet上大大超过了基于MAML和基于原始网络的方法,观察可得旋转损耗增强Rot和MCT解码器均有助于提高性能。

表2. 不同元学习方法在各种少样本数据集上的实验结果
Base:通过批处理训练对预先训练的网络进行微调,并在元测试中使用原始网络解码器进行预测。
Base+MCT:添加MCT解码器在元测试过程中进行预测。
Base+Rot+MCT:在批量训练中的采用旋转损失增强。
作者还进一步进行了Ablation实验,以证明backbone和无参数解码器的功能。
下表列出了预训练backbone上的Ablation结果,表明不同backbone在不同数据集上具有优势。

表3. 不同backbone的比较(预训练的CNN编码器)
图4显示了不同解码器在meta-learner中的Ablation结果。不同解码器的元验证精度的趋势曲线是相似的,这表明在元验证过程中根据欧氏解码器和MCT解码器保存的最佳模型是相同的,具有很高的概率。因此,作者采用欧氏解码器和MCT解码器来加速元验证,以获得更高的精度。

图4. 不同解码器对CIFAR-100数据集元测试精度的比较
五、总结
在本文中,作者提出了MetaDelta,一个用于少样本图像分类的元学习系统,它解决了两个具有实际意义的挑战:(1)时间和资源的使用效率;(2)泛化到未知的反馈数据集。作者采用预训练的CNN编码器,通过批训练进行微调,并采用无参数解码器进行推理,其中元训练是由一个具有多处理技术的中央控制器安排的,并应用一个元集成模块来集成预测,由此产生的系统在AAAI2021MetaDL挑战赛的最后阶段排名第一。
代码
https://github.com/Frozenmad/MetaDelta
参考文献
ChenY,GuanC,WeiZ,etal.MetaDelta:AMeta-LearningSystemforFew-shotImageClassification[J].2021