如何更好地应对下游小样本图像数据?
前言 惯例搬迁学习中,源域和方针域间的散布偏移问题能够经过fine-tuning缓解。但在小样本问题中,可供fine-tuning的有标签数据缺乏(也便是常说的每个小样本使命中的support set),散布偏移问题难以解决,因而面临小样本问题时,fine-tuning策略是需要额定关照的。本文回忆了一系列不花哨的、实实在在的办法,评论ConvNets和ViT预练习模型如安在小样本数据上更好的fine-tuning。咱们首要回忆两种baseline,再以此做一些延申。
本文转载自皮皮嬉,已授权转载
欢迎重视大众号CV技能攻略,专心于核算机视觉的技能总结、最新技能跟踪、经典论文解读、CV招聘信息。
Baseline
根据ConvNets经典的小样本图画分类文章[10]证明了根据距离分类器的baseline++能够打败很多sota meta-learning办法,验证了搬迁学习在该项使命中的超才能。baseline及其改进版baseline++在微调时都固定了特征提取器(body)权重,而只微调分类器,二者只在分类器规划上有差异。规范的搬迁学习pipeline中,全量的微调在有标签数据太少时效果不如linear probing,如下图,纵轴为全量fine-tuning准确率减去linear probing准确率的成果,横轴为不同数据集,不同色彩的柱状图标识不同的有标签数据量。咱们看到在k很小时linear probing是更优的选择,k变大时,全量fine-tuning会逐渐夺回优势。
咱们首要介绍baseline的流程:
- 先用特征提取器+线性分类器在基类数据上运用穿插熵从头开端练习;
- 再运用固定的特征提取器+新的可练习的线性分类器在当前小样本使命中的有标签数据进行fine-tune,丢失函数仍是穿插熵分类丢失。
**baseline的改进版baseline++**练习过程与baseline一致,仍有和,但不再运用线性分类器。认为例,可视为c个类别的d维原型表明,所以能够经过核算样本特征与它的余弦相似度并运用softmax得到终究的猜测概率散布。得到的猜测成果仍运用穿插熵分类丢失。该分类器相比线性分类器能够进一步减少类内差异。下表比照了baseline,baseline++与经典元学习算法的比照,留意运用了数据增强。成果上看,baseline是打不过元学习算法的,而baseline++则能够掰掰手腕,这阐明了在小样本分类问题中减少类内差异的重要性。
不过上表根据较浅的四层卷积网络进行试验的,当网络更deep且源域与方针域域间散布差异不大时,上表几种元学习和搬迁学习办法的功能差异会缩小,但如果网络deep但域间差异较大,根据搬迁学习的策略仍是会呈现出优势,如下图:(ProtoNet仍是稳健,不愧经典广撒播)
根据ResNet-18和更大的跨域问题时,也显现出了搬迁学习策略baseline&baseline++的优势(下表)。元学习办法的meta-training阶段是在基类数据进行的,故其learn to learn才能也限制在基类散布内,正如咱们看到的,在跨域问题时,在散布外learn to learn才能受到了影响。而baseline是对每个小样本使命从头初始化的分类器,一定程度上减少了散布偏移的影响。尽管baseline++也从头初始化了分类器,但可能是因为额定下降类内差异影响了跨域问题中的习惯性,导致baseline++不如baseline(但也比大部分比照的元学习算法好一些)。
再如下图,跟着域差异的增大,根据少数新类数据的自习惯变得越来越重要。
**别的一个有意思的事情。**MAML[11]中有inner-loop和outer-loop设定,其间inner-loop蕴含着对当前使命中支撑集样本的fine-tune,在MAML中称为对当前使命的fast adaptation,所以这一步的梯度下降不会执行太屡次,不然就不fast了,在MAML原文试验中是练习时5次测验时10次。而baseline&baseline++这俩办法在fine-tune时都练习了100次迭代,那么如果咱们放弃MAML中的快速习惯,转而像baseline&baseline++一样增大其inner-loop中对支撑集的迭代次数会产生什么?
可见MAML增大inner-loop中的迭代次数后功能有显着的提高,这引出的思考是如安在获取快速习惯才能的同时又能确保如fine-tuner一样有力的功能体现。
Fine-tuning和Meta-learning怎么强强联手
上图横轴为习惯成本,以习惯单个使命所需的乘加累积操作数(MACs)来衡量,纵轴为视觉使命习惯基准测验在18个数据集上的均匀分类精度。上图阐明的是,fine-tuners完成了比meta-learner更高的分类精度,但习惯成本更高。阻止fine-tuners快速自习惯才能的主要瓶颈是需要在整个网络参数上进行屡次梯度调整,只fine-tune分类头虽能提速但又会牺牲功能,全量的fine-tune又会在小样本数据上有比较严重的过拟合。别的咱们在上一节中评论过全量fine-tuning和linear probing之间的联系(下表),其实二者都是极端的,一个全量,一个只微调分类头,那自然就会引导咱们评论折中的计划:对特征提取器(body)也动动手脚。
在具有pretrained特征提取器后,寻觅一种快速习惯特征提取器的办法是潜在的解决计划。UpperCaSE[9]给出的计划是:用meta-learner在outer-loop中学习特征提取器,用fine-tuner在inner-loop中学习分类头。
- adjusting the body of the network in a single forward pass over the context
- reserving the use of expensive fine-tuning routines for the linear head
当然特征提取器的学习不是全量更新的,其间原始预练习的参数是固定住的,而会meta-train额定附加的参数,这儿的思路是预练习模型对应使命无关的泛化性较强的特征,而附加的参数是task-specific的,即:attach task-specific weights to a learned task-agnostic model, and estimate them from scratch given the support set.UpperCaSE中的CaSE如下图,左侧SE中的Spatial Pooling + MLP便是附着在卷积主干上的参数,但SE是根据instance的,如果咱们希望在meta-learning下运用SE,最好能够融合每个小样本使命内的上下文信息,所以CaSE额定增加了Context Pooling用以捕捉每个使命内的上下文信息,终究elementwise乘回去用来调整主干feature map通道之间的联系,即利用使命上下文信息使特征提取器具有task-specific才能。
CaSE的优化是在outer-loop中进行的,也便是说CaSE的参数在一切使命中同享task-common。inner-loop中便是去fine-tune分类头的参数,所以分类头的参数是task-specific的,如下algorithm中所示,在每个inner-loop开端前,分类头参数是从头初始化为0的,这样使分类头满足task-specific且不受其他使命搅扰,与作业[13]一致,该作业证明了在每个inner-loop开端前从头初始化分类器为0等同于将MAML结构近似为比照学习,使query特征趋近于同类support,远离异类support。
ICLR2022 | MAML==比照学习?
测验时,CaSE参数不再更新,如上面结构图最右侧阐明。
最终,torch-style模型核心代码能够更直观的看下完成以及元练习和元测验时的差异:
这种将部分参数附着在预练习网络上的作业是解决小样本问题行之有效的途径之一,类似的计划还有[6],该办法在ResNet中的每一个module上attach了一个task-specific模块,并在支撑集上微调。下图为该办法的结构,其间为attach到resnet中的参数,是task-specific分类器参数。
咱们看到CaSE是将上下文信息pooling后用来赋予task-specific才能,但从完成中看到是对channels之间联系的调整,于是咱们能够思考散布差异问题是否影响着channels间联系的正确性。
Channel Matters in ConvNets
在ConvNet的global average pooling后,不同channels代表着不同的模式[1][2]。但神经网络会过拟合预练习数据channels间联系,当源域和方针域出现散布偏移时将不再适用。惯例的搬迁学习有条件用充足的方针域数据做fine-tune来战胜散布偏移,但在小样本问题中可没这么优胜的条件。那么散布偏移(包括类别、范畴、粒度)为什么会对模型形成影响呢?咱们以类别为例阐明该问题。假设咱们在预练习时重视昆虫类别,他们会经常出现在叶子上面,但此刻叶子特征并不是模型需要考虑的判别信息。那么当该模型需要去在方针域中判别叶子(植物)类别时,模型并不能很好的把握其判别信息。而模型对这些判别信息的权衡,蕴含在channels之间。那么如果咱们能够调整channels间的联系,就能够令模型调整对对判别模式的重视度,提高方针域数据的分类功能。这也是为什么上文介绍的CaSE会从头加权channel之间的联系。一种无learnable参数的办法也可供咱们参阅,咱们能够定义如下函数[3]分别作用于每个channel:
留意该函数的输入,意味着咱们需要运用ReLU。其时,功能会有所下降。且该函数仅在源域和方针域有显着的散布偏移时见效。根据该函数导数信息:
一阶导的正性确保了channels间的相对联系不会产生改变,二阶导的负性确保了channels间的gaps能得到缩减。说白了便是令channels间散布更加滑润,按捺高数值channels,扩大低数值channels。该函数带来的功能提高见下表,少数的负面影响是因为源域和方针域间散布差异不显着,滑润处理反而是过度的。
这种parameter-less的思路很有用,类似的还有[7][8],这儿不过多介绍。已然channel matters,还有什么关于散布差异的要素是重要的吗?
BN Matters in ConvNets
上文提到了散布偏移问题,是说源域和方针域之间的散布差异大,而BatchNorm的核算信息又包含了范畴散布常识[15],所以咱们也能够经过重视BN的行为缓解散布偏移问题,提高预练习模型在小样本问题上的体现[14]。BN首要对输入进行normalization(记为Feature Normalization, FN),再经过affine参数对normalized feature进行scale和shift。
下表中:BN表明预练习时运用BN,微调时只微调分类头;FN表明预练习时仅仅用FN,微调时只微调分类头;BN✖️表明预练习运用BN,微调时微调分类头+affine参数;FN✖️表明预练习运用FN,微调时微调分类头+affine参数;
咱们看到:affine参数的微调会带来task-specific收益,pretrain时若仅运用FN还会带来进一步收益。该成果也启示咱们在小样本问题中,对源域散布信息的弱化以及对方针域散布信息的增强可能是行之有效的。别的,已然全量的微调会形成过拟合,微调特征提取器中的BN的参数这种partial形式带来了可观的收益,附着上一些额定参数也是很OK的,那么对其他部分参数的微调又会怎么呢?是不是只要不是全量的,而是部分的,就能权衡好过拟合和task-specific之间的平衡?Partial is better than all[16]这项作业经过演化查找来寻觅在当前使命中微调哪部分参数,下表Searched表明其试验成果,功能收益也是比较稳定的。
ViT如安在小样本域fine-tuning
聊完了ConvNets,咱们看看ViT for few-shot learning。咱们参阅LT+NCC的范式:Linear Transformation + Nearest Centroid Classifier给定pretrained ViT 和一个few-shot episode (或者说一个小样本使命),在将运用至时,其一切参数均冻结住,用来提取中的support sample的特征:。然后,对每个,咱们定义一个learnable linear transformation :,得到的特征运用NCC+Cross-entropy的丢失函数练习:
上面fine-tuning结束后,能够运用至当前的query并用NCC完成对query的猜测。**以上为LT+NCC范式[4]。**但它的缺点是仅有linear transformation的参数能够fine-tuning,不行task-specific,而在ViT中能够得到task-specific embedding的要害之一在MSA中,所以能够在MSA中附上一些task-specific元素,在fine-tuning时仍然冻结pretrained的,然后去fine-tuning附着上的参数,比如下图中五颜六色部分,便是将task-specific参数拼接到MSA中[5]。
在few-shot learning中,最常被用于代表某个使命特性的是原型,所以[5]用attentive原型完成了上图中的,进而将当前使命的信息提供给MSA。咱们看到,这样的思路在前面几节中也都有提及,证明了该系列计划的有效性。除了LT+NCC的范式,还能够做点什么?咱们知道token间的依靠联系依靠于更多的数据量的很多练习,那已然few-shot问题中更多的数据量不显现,咱们是不是能够给token间依靠联系加个速:
关于Few-Shot图画分类使命中的Transformer的小记载
总结
咱们看到本文回忆的办法共性是:微调部分参数,部分参数可能是某些特定的,比如BN[14]和分类头,也可能是查找出来的[16],还可能是额定附着上去的[5][9][6]。这些办法所评论的要害词是:over fitting和task-specific的权衡、fast adaptation和accuracy的权衡,其本质仍是源域和小样本方针域间的散布偏移问题。当然一定会有差异于本文脉络的其他思路,还需继续保持重视。
参阅文献
- Zhou, B., Khosla, A., Lapedriza, ` A., Oliva, A., and Torralba, A. Object detectors emerge in deep scene cnns. In International Conference on Learning Representations, 2015.
- Bau, D., Zhou, B., Khosla, A., Oliva, A., and Torralba, A. Network dissection: Quantifying interpretability of deep visual representations. In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 6541–6549, 2017.
- Luo, Xu, Jing Xu, and Zenglin Xu. “Channel importance matters in few-shot image classification.” International conference on machine learning. PMLR, 2022.
- Li, Wei-Hong, Xialei Liu, and Hakan Bilen. “Universal representation learning from multiple domains for few-shot classification.” Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021.
- Xu, Chengming, et al. “Exploring Efficient Few-shot Adaptation for Vision Transformers.” arXiv preprint arXiv:2301.02419(2023).
- Li, Wei-Hong, Xialei Liu, and Hakan Bilen. “Cross-domain Few-shot Learning with Task-specific Adapters.” *Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition.*2022.
- Liu, Jinlu, Liang Song, and Yongqiang Qin. “Prototype rectification for few-shot learning.” European Conference on Computer Vision. Springer, Cham, 2020.
- Cui, Wentao, and Yuhong Guo. “Parameterless transductive feature re-representation for few-shot learning.” International Conference on Machine Learning. PMLR, 2021.
- Patacchiola, Massimiliano, et al. “Contextual Squeeze-and-Excitation for Efficient Few-Shot Image Classification.” Advances in Neural Information Processing Systems, 2022.
- Chen, Wei-Yu, et al. “A closer look at few-shot classification.” arXiv preprint arXiv:1904.04232 (2019).
- Finn, Chelsea, Pieter Abbeel, and Sergey Levine. “Model-agnostic meta-learning for fast adaptation of deep networks.” International conference on machine learning. PMLR, 2017.
- Kim, Yujin and Oh, Jaehoon and Kim, Sungnyun and Yun, Se-Young,How to Fine-tune Models with Few Samples: Update, Data Augmentation, and Test-time Augmentation,arxiv.2205.07874, 2022
- Chia-Hsiang Kao, Wei-Chen Chiu, Pin-Yu Chen,MAML is a Noisy Contrastive Learner in Classification,ICLR 2022
- Yazdanpanah, Moslem, et al. “Revisiting Learnable Affines for Batch Norm in Few-Shot Transfer Learning.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
- Yanghao Li, Naiyan Wang, Jianping Shi, Jiaying Liu, and Xiaodi Hou. Revisiting batch normalization for practical domain adaptation. arXiv preprint arXiv:1603.04779, 2016.
- Shen, Zhiqiang, et al. “Partial is better than all: revisiting fine-tuning strategy for few-shot learning.” Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 35. No. 11. 2021.
欢迎重视大众号CV技能攻略,专心于核算机视觉的技能总结、最新技能跟踪、经典论文解读、CV招聘信息。
【技能文档】《从零建立pytorch模型教程》122页PDF下载
QQ沟通群:444129970。群内有大佬负责回答大家的日常学习、科研、代码问题。
模型布置沟通群:732145323。用于核算机视觉方面的模型布置、高功能核算、优化加速、技能学习等方面的沟通。
其它文章
U-Net在2022年相关研讨的论文推荐
用少于256KB内存完成边缘练习,开销不到PyTorch千分之一
PyTorch 2.0 重磅发布:一行代码提速 30%
Hinton 最新研讨:神经网络的未来是前向-前向算法
聊聊核算机视觉入门
FRNet:上下文感知的特征强化模块
DAMO-YOLO | 超越一切YOLO,兼顾模型速度与精度
《医学图画分割》总述,详述六大类100多个算法
怎么高效完成矩阵乘?万文长字带你从CUDA初学者的角度入门
近似乘法对卷积神经网络的影响
BT-Unet:医学图画分割的自监督学习结构
语义分割该怎么走下去?
轻量级模型规划与布置总结
从CVPR22出发,聊聊CAM是怎么激活咱们文章的热度!
入门必读系列(十六)经典CNN规划演化的要害总结:从VGGNet到EfficientNet
入门必读系列(十五)神经网络不work的原因总结
入门必读系列(十四)CV论文常见英语单词总结
入门必读系列(十三)高效阅览论文的办法
入门必读系列(十二)池化各要点与各办法总结
TensorRT教程(三)TensorRT的装置教程
TensorRT教程(一)初度介绍TensorRT
TensorRT教程(二)TensorRT进阶介绍
核算机视觉中的高效阅览论文的办法总结
核算机视觉中的神经网络可视化东西与项目
核算机视觉中的transformer模型立异思路总结
核算机视觉中的传统特征提取办法总结
核算机视觉中的数据预处理与模型练习技巧总结
核算机视觉中的图画标示东西总结
核算机视觉中的数据增强办法总结
核算机视觉中的留意力机制技能总结
核算机视觉中的特征金字塔技能总结
核算机视觉中的池化技能总结
核算机视觉中的高效阅览论文的办法总结
核算机视觉中的论文立异的常见思路总结
神经网络中的归一化办法总结
神经网络的初始化办法总结