Meta-learning algorithms for Few-Shot Computer Vision 论文解读(二)

未完待续

贡献部分(一)

高度集成代码库

这部分作者的主要贡献是整理了一套包含四种算法的代码,在之前工作的基础上将代码更加高度集成,方便对比和使用,尤其是data managers这部分,整合了几个数据集小样本插曲形式的采样方法,方便复用,修改。

介绍了四种算法,在miniImageNet和Caltech-UCSD Bird 200(CUB)[33]数据集上进行实验,CUB数据集包含200个类的6033张图片。四种算法分别是:

  • Matching Networks [6](匹配网络)
  • Prototypical Networks [7](原型网络)
  • Relation Network [8](关系网络)
  • Model Agnostic Meta-Learner [9](MAML)

作者的主要贡献在于对多种方法进行了统一整理,并且很容易复现;重现了Chen et al.[34]提出的结果,揭示了我们在对元学习算法进行基准测试时所面临的挑战;支持集标签噪声对评价时间的影响研究。

Chen et al.[34]于2019年4月发表了一项针对小样本图像分类的元学习算法的首次统一比较,并提供了它们的源代码。PyTorch实现的这段代码有两个主要优点:

  • 提出了匹配网络、原型网络、关系网络、MAML和两种基线方法的统一实现。这允许实验者公平地比较算法。
  • 它包含一个相对一致的几个数据集的处理框架(Omniglot, EMNIST [35], miniImageNet和CUB),从使用json分割训练/验证/评估数据的描述到将数据集采样成小样本图像分类的插曲形式,它使用的是Hariharan的代码[14]。

出于这些原因,作者使用这段代码作为作者实现的(非常高级的)起点。

作者指出了三个主要问题:

  • 原始代码几乎没有文档记录,这使得它很难理解,甚至更难修改,因为它并不总是清楚一段代码做了什么,或者一个变量表示什么。
  • 由于一些实验参数是在代码中定义的,所以在启动实验时不容易定制,在实验结束后也不容易监控,影响了实验的重现性。
  • 一些代码块在项目的几个地方重复。

作者编写这段代码的主要目标是使其易于访问,让未来的研究人员能够理解这些算法在实践中的工作方式,并能够快速启动他们自己的实验。实现这一目标的方法如下:

  • 清理代码并删除所有副本;
  • 广泛地记录每个类和函数与我在代码工作期间获得的知识;
  • 整合两个有用的实验工具:
    • pipeline是Sicara的一个内部库,它允许使用YAML文件配置实验:该文件描述了实验的不同步骤,并明确指出了实验的所有必要参数;
    • Polyaxon是一个开源平台或进行机器学习实验,其主要功能(我们使用)(1)直观的仪表盘来跟踪每一个YAML配置文件的所有过去,目前和编程过的实验,连同所有的日志和输出(2)可能推出不同的实验参数的实验组(3)Tensorboard集成平台。

实现的结构如图所示。该代码可分为五类,详细如下,代码链接注意,这个版本没有使用pipeline,它是Sicara私有的。

在这里插入图片描述

scripts 这些是启动实验必须执行的文件。为了与管道库兼容,我使用了YAML文件,但标准的Python脚本也可以使用(实际上在公共可用的存储库中使用)。它们描述了不同步骤(哪个步骤使用哪个步骤输出)之间的流,并包含所有参数化实验的值:

  • dataset to work on (ex: miniImageNet)
  • method to work with (ex: Matching Networks)
  • backbone CNN of the method (ex: Resnet18)
  • parameters of the N-way k-shot classification task with q queries per class (with N allowed to be different at training and evaluation time)
  • whether to perform data augmentation on the meta-training set
  • number of meta-training epochs
  • number of episodes (i.e. classification tasks) per meta-training epoch
  • optimizer (ex: Adam)
  • learning rate
  • which state of the model to keep for evaluation (the model trained on all the epochs, or the model that achieve the best validation accuracy)
  • number of few-shot classification task to evaluate the model on;

steps 它们由脚本调用,并使用其中显式的参数。step的一个例子是MethodTraining,它负责模型的训练。

data managers 他们定义SetDataset 和 EpisodicBatchSampler类,分别扩展PyTorch基类数据集和取样器,用于建立一个装载数据的DataLoader few-shot形状的分类任务(即一套支持集和查询样本,而不是任意大小的常规批次)。

methods 这个类别中的每个文件都定义了一个类,对应于一个元学习算法(例如:原型网络)。每个类包含三个基本方法:

  • Set_forward (episode):将支持集和查询集组成的集作为输入,输出模型对查询集的预测。
  • Train_loop():在元训练集上执行一个元训练epoch。
  • Eval_loop():对从评估集中取样的少量分类任务评估模型。

utils 这些文件包含其余代码中使用的所有实用程序。

复现的结果

主要介绍模型的结果,作者得出的两个结论都很有意义,具体如下

  • 训练时间对比

在这里插入图片描述

其中baseline和baseline ++ 区别如下图:

在这里插入图片描述

实验参数遵循Chen等人的描述,即以4层CNN为主干,学习率为 1 0 − 3 10^{-3} 103​​, 每个epoch包含100个插曲的Adam优化器,以及对训练集进行数据增强。基线在CUB上训练为200个epoch,在miniImageNet上训练为400个epoch。其他算法在1-shot设置下训练为600个epoch,在5-shot设置下训练为400个epoch。实验选择在验证集上准确率最高的模型,并对从评估集中抽样的600个小样本分类任务进行评估。

这些实验的结果见下表。在8个实验中,有6个实验的结果超出了Chen等人报告的95%置信区间(在区间以外,并不是结果更好的意思),在1次baseline++的情况下,差异高达6%。我们的结果在4个案例中低于置信区间,在2个案例中高于置信区间(这句话的意思是在上述6个实验中,有4个比Chen更低,有2个更高)。

在这里插入图片描述

一个合理的假设是,我的实现是无法复制原始论文结果的原因。为了验证这一点,我使用Chen等人最初的实现复制了他们的实验。结果如下所示。在大多数情况下,它们超出了[34]报告的95%置信区间。

(简单来说,作者以为实现有问题,就用Chen的代码跑了一次,发现Chen的也没法复现)

在这里插入图片描述

然后又假设,结果的不确定性不仅来自评估任务的抽样,也来自培训。我接着证实了这一假设。我为原型网络重新启动了第一个实验8次,并在完全相同的分类任务中评估了8个结果模型。结果如表4所示。我们可以看到,在同一组任务中,准确率可以从74.20%提高到76.04%。这验证了使用相同超参数训练的两个相同模型在相同的评估任务上可能获得不同的精度

在这里插入图片描述

从这项对Chen等人报告的结果进行复制的工作中,我们可以保留两个主要的结论:

  • 虽然numpy随机种子在过程开始时被系统地设置为10,但通过元训练+评估实例获得的结果不能被复制。我了解到,设置numpy随机种子不足以修复使用PyTorch训练的随机性。我发现下面这几行成功地做到了这一点:

    重点,论文复现实用技巧,第三和第四行只在使用CuDNN后端时需要

    np.random.seed(numpy_random_seed)
    torch.manual_seed(torch_random_seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    
  • 在同一组评估任务中,由于训练中的随机性,模型的准确性可以以高达2%的振幅变化。这个振幅与报告的算法之间的准确性差异相似,高于评估元学习算法时通常报告的置信区间[34] [8] [9] [11] [7] [36]。我认为,两种元学习算法在一组分类任务上的准确率仅有几个百分点的差异,不能作为这些算法的相关比较指标。最理想的方法是通过开展足够数量的培训来准确测量不确定性,但该操作所需的计算时间是高昂的。

评估时支持集中标签噪声的影响

作为模型的设计师和模型的用户可以是不同的实体,以及新颖类的支持组任务的来源可能不同于meta-training的源数据,设计人员可能无法控制新颖类任务的数据质量。这就是为什么模型对支持集中的噪声数据的鲁棒性是一个重要的问题。

在这一小节中,我们将解决评估分类任务的支持集中的标签噪声问题(即数据实例分配了错误的标签)。为了模拟这种噪声,我们使用标签交换:给定一个整数M,对于每个分类任务,我们在分类任务的支持集上执行M个标签交换。下面是一个标签交换的过程:

  • 在支持集的N个标号中,均匀随机抽取两个标号 l 1 l_1 l1, l 2 l_2 l2
  • 对于每个标签 l x l_x lx​​,在与该标签相关联的支持集中的K个图像中,随机均匀地选择一个图像 i l x i_{l_x} ilx
  • 给图像 i l 2 i_{l_2} il2分配标签 l 1 l_1 l1,给图像 i l 1 i_{l_1} il1分配标签 l 2 l_2 l2

注意,即使一个标签交换改变两个图片的标签,M标签互换并不一定导致2M个虚假标签图片,因为交换后的图像是用替换进行采样的(在下面,你会发现当把10次标签互换应用于5标签5图片支持集后,大多数模型甚至达到35%的精度,如果80%的支持集有错误的标签很难解释这种现象)。

同样,标签交换也不是一个完美的模拟:在真实的情况下,事实上,一个应该有标签l1的图像被错误地标记为l2,并不意味着另一个图像应该有l1的标签,然而,该解决方案确保支持集即使在应用人工标签噪声后仍然是平衡的(在25张图像的数据集中,如果一个标签比另一个标签少一个示例,则数据集明显变得不平衡)。因此,我们知道结果不会来自于标签的错误,也不会来自于不平衡的数据集。

首先,我们需要测量标签噪声对模型精度的影响。我在CUB和miniImageNet上进行了实验,使用了基线算法、基线++算法、匹配网络算法、原型网络算法、关系网络算法和MAML算法。所有模型都在400个epoch上接受训练,使用Adam优化器,学习速度为 1 0 − 3 10^{-3} 103​。元学习算法(即除Baseline和Baseline++外的所有算法)在5-way 5-shot分类任务上进行训练。训练集没有添加人工标签噪声

然后,在四种不同设置下的5-way 5-shot分类任务中评估模型,每种分类任务对应四种不同数量的标签交换(0、3、6和10)。我报告了每个设置在600个任务上的准确性的平均值。请注意,所有的模型(这里和本小节后面的部分)都是在相同的任务上进行评估的。

结果如图所示。我们观察到,当支持集中的标签噪声增加时,所有算法在查询集上的准确性都会严重下降,这是预期的。我们注意到原型网络和关系网络受到的影响较小。这可以解释为两种算法都使用了每个类的特征向量的均值,这减少了极值的影响。

在这里插入图片描述

之后作者在10-way训练,5-way评估,来验证10-way训练是否能提升5-way的性能,因为CNN训练和评估要求类别数量不变,所以作者只使用了度量的元学习方法,效果如图:

在这里插入图片描述

实验证实,在训练过程中,每个分类任务使用更多的标签可以提高模型的准确性。然而,这似乎对标记噪声的鲁棒性没有任何影响。

训练集添加同样的噪声 基于训练和测试条件必须匹配的思想,我假设在模型进行元训练的分类任务的支持集中加入人工标签噪声可以增加模型在评估时对标签噪声的鲁棒性。下面的实验验证了这一假设。在构成元训练的分类任务中引入标签交换,与之前的实验中在评估时对分类任务进行标签交换的方法相同。这导致了三种设置,分别被称为0,3和10-交换训练。

注意,我们没有在基线上进行实验,因为它们不是元学习算法,因此在训练过程中不能解决分类任务。本实验的结果是
在这里插入图片描述

我们发现,在元训练中添加标签交换会导致模型在正确标签分类任务上评估的准确性下降。当评估任务中的标签交换数量增加时,这种差异不太明显。基于这些实验,没有理由认为在元训练过程中引入人工标签噪声会使元学习算法在新分类任务中对噪声标签具有更强的鲁棒性。(没用!

未来工作

除了选择元学习算法之外,还有许多可能的方法可以通过较小的设计选择来改善其性能,例如超参数调整,或者,在Prototypical Networks及其衍生物的情况下,选择原型函数。例如,均值函数可以被一个“漏的”中值代替(在某种程度上使函数可微)。

然而,我们看到这些算法只有很小的差别。探索不同的方法来提高小样本分类的性能将是有趣的。一种方法是根据元训练数据集的“形状”来比较元学习算法的性能。具有100个不同的类和每个类500个示例的数据集是否比具有50个类和每个类1000个示例的数据集具有更好的性能?我的假设是会的,因为它将允许算法更好地推广到新的类,但这仍需要证明。

最后,除了分类准确性,收集更多关于元学习算法如何学习的信息也会很有趣,例如通过研究特征表示,或使用适应元学习范式的可解释机器学习技术。

参考文献

[1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for
image recognition. In Proceedings of the IEEE conference on computer vision and pattern
recognition, pages 770–778, 2016.
[2] Adam Santoro, Sergey Bartunov, Matthew Botvinick, Daan Wierstra, and Timothy Lillicrap.
Meta-learning with memory-augmented neural networks. In International conference
on machine learning, pages 1842–1850, 2016.
[3] Tsendsuren Munkhdalai and Hong Yu. Meta networks. In Proceedings of the 34th International
Conference on Machine Learning-Volume 70, pages 2554–2563. JMLR. org,
2017.
[4] Pablo Sprechmann, Siddhant M Jayakumar, Jack W Rae, Alexander Pritzel, Adria Puigdomenech
Badia, Benigno Uria, Oriol Vinyals, Demis Hassabis, Razvan Pascanu, and
Charles Blundell. Memory-based parameter adaptation. arXiv preprint arXiv:1802.10542,
2018.
[5] Gregory Koch, Richard Zemel, and Ruslan Salakhutdinov. Siamese neural networks for
one-shot image recognition. In ICML deep learning workshop, volume 2, 2015.
[6] Oriol Vinyals, Charles Blundell, Timothy Lillicrap, koray kavukcuoglu, and Daan Wierstra.
Matching networks for one shot learning. In D. D. Lee, M. Sugiyama, U. V. Luxburg,
I. Guyon, and R. Garnett, editors, Advances in Neural Information Processing Systems
29, pages 3630–3638. Curran Associates, Inc., 2016.
[7] Jake Snell, Kevin Swersky, and Richard Zemel. Prototypical networks for few-shot learning.
In I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural Information Processing Systems 30, pages 4077–Curran Associates, Inc., 2017.
[8] Flood Sung, Yongxin Yang, Li Zhang, Tao Xiang, Philip H.S. Torr, and Timothy M.
Hospedales. Learning to compare: Relation network for few-shot learning. In The IEEE
Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.
[9] Chelsea Finn, Pieter Abbeel, and Sergey Levine. Model-agnostic meta-learning for fast
adaptation of deep networks. In Doina Precup and Yee Whye Teh, editors, Proceedings
of the 34th International Conference on Machine Learning, volume 70 of Proceedings of
Machine Learning Research, pages 1126–1135, International Convention Centre, Sydney,
Australia, 06–11 Aug 2017. PMLR.
[10] Zhenguo Li, Fengwei Zhou, Fei Chen, and Hang Li. Meta-sgd: Learning to learn quickly
for few-shot learning. arXiv preprint arXiv:1707.09835, 2017.
[11] Sachin Ravi and Hugo Larochelle. Optimization as a model for few-shot learning. 2016.

[12] Nikhil Mishra, Mostafa Rohaninejad, Xi Chen, and Pieter Abbeel. A simple neural attentive
meta-learner. In International Conference on Learning Representations, 2018.
[13] Victor Garcia Satorras and Joan Bruna Estrach. Few-shot learning with graph neural
networks. In International Conference on Learning Representations, 2018.
[14] Bharath Hariharan and Ross Girshick. Low-shot visual recognition by shrinking and hallucinating
features. In Proceedings of the IEEE International Conference on Computer
Vision, pages 3018–3027, 2017.
[15] Antreas Antoniou, Amos Storkey, and Harrison Edwards. Data augmentation generative
adversarial networks. arXiv preprint arXiv:1711.04340, 2017.
[16] Yu-XiongWang, Ross Girshick, Martial Hebert, and Bharath Hariharan. Low-shot learning
from imaginary data. In Proceedings of the IEEE Conference on Computer Vision and
Pattern Recognition, pages 7278–7286, 2018.
[17] Sebastian Thrun and Lorien Pratt. Learning to learn. 1998.
[18] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation,
9(8):1735–1780, 1997.
[19] Brenden Lake, Ruslan Salakhutdinov, Jason Gross, and Joshua Tenenbaum. One shot
learning of simple visual concepts. In Proceedings of the annual meeting of the cognitive
science society, volume 33, 2011.
[20] Brenden M Lake, Ruslan Salakhutdinov, and Joshua B Tenenbaum. Human-level concept
learning through probabilistic program induction. Science, 350(6266):1332–1338, 2015.
[21] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate
object detection and semantic segmentation. In 2014 IEEE Conference on Computer
Vision and Pattern Recognition, pages 580–587, June 2014.
[22] Ross Girshick. Fast r-cnn. In Proceedings of the IEEE international conference on computer
vision, pages 1440–1448, 2015.
[23] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards realtime
object detection with region proposal networks. In Advances in neural information
processing systems, pages 91–99, 2015.
[24] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Girshick. Mask r-cnn. In Proceedings
of the IEEE international conference on computer vision, pages 2961–2969, 2017.
[25] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang
Fu, and Alexander C Berg. Ssd: Single shot multibox detector. In European conference
on computer vision, pages 21–37. Springer, 2016.

[26] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal loss for
dense object detection. In Proceedings of the IEEE international conference on computer
vision, pages 2980–2988, 2017.
[27] Joseph Redmon, Santosh Divvala, Ross Girshick, and Ali Farhadi. You only look once:
Unified, real-time object detection. In Proceedings of the IEEE conference on computer
vision and pattern recognition, pages 779–788, 2016.
[28] Bingyi Kang, Zhuang Liu, Xin Wang, Fisher Yu, Jiashi Feng, and Trevor Darrell. Few-shot
object detection via feature reweighting. arXiv preprint arXiv:1812.01866, 2018.
[29] Kun Fu, Tengfei Zhang, Yue Zhang, Menglong Yan, Zhonghan Chang, Zhengyuan Zhang,
and Xian Sun. Meta-ssd: Towards fast adaptation for few-shot object detection with
meta-learning. IEEE Access, 7:77597–77606, 2019.
[30] Tao Wang, Xiaopeng Zhang, Li Yuan, and Jiashi Feng. Few-shot adaptive faster R-CNN.
CoRR, abs/1903.09372, 2019.
[31] Hao Chen, Yali Wang, Guoyou Wang, and Yu Qiao. Lstd: A low-shot transfer detector
for object detection. In Thirty-Second AAAI Conference on Artificial Intelligence, 2018.
[32] Xuanyi Dong, Liang Zheng, Fan Ma, Yi Yang, and Deyu Meng. Few-shot object detection.
ArXiv, abs/1706.08249, 2017.
[33] P. Welinder, S. Branson, T. Mita, C. Wah, F. Schroff, S. Belongie, and P. Perona. Caltech-
UCSD Birds 200. Technical Report CNS-TR-2010-001, California Institute of Technology,
2010.
[34] Wei-Yu Chen, Yen-Cheng Liu, Zsolt Kira, Yu-Chiang Frank Wang, and Jia-Bin Huang. A
closer look at few-shot classification. arXiv preprint arXiv:1904.04232, 2019.
[35] Gregory Cohen, Saeed Afshar, Jonathan Tapson, and André van Schaik. Emnist: an
extension of mnist to handwritten letters. arXiv preprint arXiv:1702.05373, 2017.
[36] Luca Bertinetto, Joao F Henriques, Philip HS Torr, and Andrea Vedaldi. Meta-learning
with differentiable closed-form solvers. arXiv preprint arXiv:1805.08136, 2018.
[37] Joseph Redmon and Ali Farhadi. Yolov3: An incremental improvement. arXiv preprint
arXiv:1804.02767, 2018.
[38] Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan,
Piotr Dollár, and C Lawrence Zitnick. Microsoft coco: Common objects in context. In
European conference on computer vision, pages 740–755. Springer, 2014.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值