解决FSL问题,其中有一个最简单的方式就是pre-training + fine-tuning。以下针对这种解决方式的进展做个总结。
Baseline
作者:Wei-Yu Chen,Yen-Cheng Liu & Zsolt Kira,Yu-Chiang Frank Wang,Jia-Bin Huang
发表刊物:ICLR
发表年度:2019
下载地址:https://arxiv.org/pdf/1904.04232.pdf
总结: Baseline 分为两步。第一步,train stage。这部分主要利用the base classes 训练一个特征提取器和一个线性分类器。线性分类器由一个线性层和一个softmax函数组成。第二步,fine-tuning stage。为了使模型适应在微调阶段识别the novel classes,固定特征提取器的参数,用the support set中的样本去训练一个新的线性分类器。
具体来说,在the base classes中pre-training不要根据N-way K-shot的形式进行训练和验证,和普通的机器学习训练方式一样。在the novel classes 中根据FSL的特点,将the novel classes 变成N-way K-shot 形式,然后有support set里面包含少量的标记样本,利用这个数据集去微调线性分类器,从而适应the novel classes。
Baseline++
作者:Wei-Yu Chen,Yen-Cheng Liu & Zsolt Kira,Yu-Chiang Frank Wang,Jia-Bin Huang
发表刊物:ICLR
发表年度:2019
下载地址:https://arxiv.org/pdf/1904.04232.pdf
总结:Baseline++和Baseline出自同一篇论文,它可以减少 intra-class variation,与Baseline不同的是,Baseline++中分类器由原来的线性分类器变成基于距离的分类器。
具体来说,和Baseline训练方式一样,只是在预训练和微调中的分类器变化了。
Classifier-Baseline
作者:Yinbo Chen,Zhuang Liu,Huijuan Xu,Trevor Darrell, Xiaolong Wang
发表刊物:IEEE/CVF
发表年度:2021
总结:classifier-baseline:在the base classes上预训练一个分类器,然后移去最后一个 FC 变成一个特征提取器,他不需要余弦分类器去微调。把the novel classes的support set中的特征都提出来,求均值作为每个类中心,然后把novel类的query数据按照余弦相似性进行分配(这个过程是eval过程,在meta-baseline中是meta-learning过程)。和之前方法的区别:之前的方法是把novel数据扔进网络微调分类器,而本文不需再训练这个丢掉的分类器。
Meta-Baseline
作者:Yinbo Chen,Zhuang Liu,Huijuan Xu,Trevor Darrell, Xiaolong Wang
发表刊物:IEEE/CVF
发表年度:2021
总结: 在classifier-Baseline的基础上提出Meta-Baseline。第一步,训练Classifier-Baseline。第二步,meta-learning 对 Classifier-Baseline进行优化特征提取器,采用N-way K-shot 形式训练和优化Classifier-Baseline。
总结:
之前一直不清楚如何将训练、验证和测试这三个部分和pre-training + fine-tuning 对应上。现在大概有个了解:the base class 里进行train 和 val ,test里进行fine-tuning。