Meta-Baseline: Exploring Simple Meta-Learning for Few-Shot Learning
介绍
现在大多数方法使用元学习meta-learning解决小样本任务,即将整个训练集划分为三种类别不相交的训练、验证和测试集。网络训练时以task为单位,每个task视为一个N-way K-shot任务,由Support Set包括 N × K N\times K N×K样本和Query Set N × Q N\times Q N×Q样本组成。根据支持集样本将 N × Q N\times Q N×Q样本分类到N个类别中。描述小样本输入可参考:A task takes the form of N-way K-shot。
灵感
虽然元学习方法可以使训练集和测试集形式保持一致,但是直接在训练集上当做一个分类任务学习分类模型,得到的分类效果比基于task的元学习方法效果更好。为什么元学习得到的特征更差呢?可能是优化困难,也可能是过拟合,但是这些原因至今未被探索。基于此,作者通过解耦差异来套索两种方法的边缘,分别构建Classifier-Baseline和Meta-Baseline。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fyr2n4Kd-1638771042689)(file:///C:\Users\lsw\AppData\Roaming\Tencent\Users\1492457122\QQ\WinTemp\RichOle\FX]{($K(0{)]K1_CFS_ZP0.png)
Classifier-Baseline即传统的分类方式,训练一个网络,网络输入每个类别的概率分布。而Meta-Baseline训练一个网络,拿掉最后一层全连接层,对每个类别特征求平均得到类平均特征,计算query样本与每个类平均特征的余弦相似度,将相似度最大的类平均特征的类别分配给query样本。
作者提出了一个怎样的baseline呢,其实就是定义一个网络,先让这个网络在 D b a s e D_{base} Dbase上预训练一遍。然后再把预训练的网络拿掉最后的全连接层,再以meta-learning的方式再训练一遍。然后在求余弦相似度的时候加了一个参数而已。
相似度的时候加了一个参数而已。