恕我直言,很多小样本学习的工作就是不切实际的

极市平台

共 4183字,需浏览 9分钟

 ·

2021-06-18 11:20

↑ 点击蓝字 关注极市平台

作者丨iven
来源丨夕小瑶的卖萌屋
编辑丨极市平台

极市导读

 

NYU、facebook、CIFAR最新文章表示:以前prompt 的方法也不是真正的小样本学习,真正的小样本学习,训练集验证集都要小! >>加入极市CV技术交流群,走在计算机视觉的最前沿

以前的小样本学习(Few-shot Learning),是需要用一个巨大的训练集训练的。测试时只给出 n-way k-shot,在这 N * k 个样本上学习并预测。我第一次看到这种任务设定的时候真是非常失望:这和现实情况的需求也相差太远了!真实场景下的小样本学习,哪有大量的训练数据呢?
从 GPT3 开始,学术界开启了一个新的小样本风潮。借助预训练模型,人们只给出几条或几十条样本作为训练集,用小小训练集进行 finetune。看到这些工作,我觉得这样才是真正的小样本学习!
最近有一些工作也在这种任务设定下取得了不错的进展。所谓prompt,就是结合具体场景,设计新的 finetune 任务形式,从而将与当前任务相关的提示信息(prompt)引入模型,以此更好地利用预训练模型的结构与先验知识。我们大名鼎鼎的 GPT 系列就是这么干的。比如我们拿 GPT3 做 QA 的 finetune,直接喂给他一串“Question:问题内容 Answer:”,剩下的答案部分就让 GPT3 自己填完。
卖萌屋之前还推送过其中一个工作(刚刚被评为 NAACL 的最佳短文!How Many Data Points is a Prompt Worth?)。这篇工作表明,基于 prompt 的方法能在几分之一的训练数据下,达到传统 finetune 的训练结果。
但!是!这样的任务设定就是真正的小样本学习了吗?今天这篇 NYU、facebook、CIFAR 三巨头一起带来的文章直接 打脸了所有人:以上任务设定也还不是真正的小样本学习!由于给出了一个巨大的验证集,因此人们用这个验证集挑选最好的 prompt、用它调参,这也是不切合实际的!真正的小样本学习,训练集验证集都要小!
另外,本文还在真正的小样本学习任务设定下,评测了挑选 prompt、调参的效果,实验发现,我们对模型小样本学习的能力还是过于乐观了🤦🏻
论文题目:
True Few-Shot Learning with Language Models
论文链接:
http://arxiv-download.xixiaoyao.cn/pdf/2105.11447v1.pdf
代码地址
https://github.com/ethanjperez/true_few_shot


真正的小样本学习

可能大家被我上面说的各种“小样本学习”的情景搞晕了,为了清楚,我们可以总结成这样的一张表:
表中列举了四种情况:
  1. Data-Rich Supervised 表示传统有大量数据的有监督学习。
  2. Multi-Distribution Few-Shot 表示原始的小样本学习情景,即在大量 n-way k-shot 上进行训练。由于每个 task 都包含不同的数据分布,因此这相当于在不同的分布中训练,在新的分布中使用模型。
  3. Tuned Few-Shot 表示从 GPT3 开始的,用 prompt 的方式对预训练模型微调。
  4. True Few-Shot 就是本文提出的啦!
本文认为,对于小样本学习,既不应该有其它分布的数据辅助、也不应该有很多训练数据,更不应该有很多验证集的数据。因为这些数据全都是需要标注的!


那还能调参嘛?

界定了真正的小样本学习,作者就想:之前那些 prompt 的方法用了大量验证集信息来调整超参、选择最好的 prompt。他们对性能的提升其实都来自验证集中蕴含的信息。那么,在没有验证集的情况下(对!作者为了更好的比较,就只留少量样本的训练集),该怎么调参呢?作者给了两个方法:
  1. k 折交叉验证:将数据集分为 k 个部分,用其中 k-1 个部分作为训练集,剩下的一个部分作为验证集。在后面的实验中,这种方法被称作 CV(cross validation)。

  2. 类似在线学习的交叉验证:将数据集分为 k 个部分,第 1 轮用第 1 部分训练,第 2 部分验证,第 i 轮用前 i 部分训练,第 i+1 部分验证。在后面的实验中,这种方法被称作 MDL(minimum description lengthm),因为其本质上遵循的是最小描述长度准则。

另外,作者还给出一个交叉验证的准则:即在训练和验证集之间,样本 loss 的差距要尽可能小。


实验和分析

作者使用以上两种交叉验证方法,在 LAMA[1] 数据集上,对基于 prompt 的模型[2]进行了实验。LAMA 是一个评测语言模型的数据集,它给出一句话,让语言模型提取这句话在知识图谱中对应的三元组。
首先,是对不同 prompt 的对比:
实验发现,无论是在多大参数量的模型上,基于两种方法选择 prompt(图中蓝色粉色),都要比随机挑选 prompt (图中黄色)的效果好,但选出的 prompt 效果还是远不如最好的 prompt(图中绿色)。
如果把随机选择 prompt 作为基线,最好的 prompt 作为上界,那么两种交叉验证带来的性能提升便如下图所示:
在理想的验证集里,我们是能挑选出最好的 prompt 的,因此最好的 prompt 就代表了在理想的巨量验证集中挑选 prompt 最好的结果。从上图可以看出,在没有验证集时,作者提出的两个交叉验证方法只能带来理想验证集带来的大约 25% 的性能增益。因此,没了大量数据作为验证集,的确也就不能有很好的交叉验证效果了。
另外,作者还对“在验证集上调参”这件事进行了实验。模型中有两个参数是需要调整的,一个是 epoch 数量,另一个是输入文本中被 mask 掉的 token 的比例。这里的评测使用 SuperGLUE 的任务,其中包含文本蕴含、阅读理解等等和理解相关的任务。实验结果如下图所示:
这里发现,用两种交叉验证在小验证集上调参,其结果和随机参数差不多,甚至总体上看还更差一点!甚至在 MultiRC 上,调参出来的结果与最坏的一组参数表现差不多,表明在小验证集上调参,并不一定就能稳定提升性能。这结果太让人失望了,不过作者不死心,还进行了一个有意思的实验:
有多少数据之后,才一定能通过调参,得到一组比随机更好的参数呢?上面这张图是在 WiC 任务上,使用 k 折交叉验证来调参,横轴代表总的训练样本数量,纵轴是模型性能,灰色的区域是 16 组不同参数的模型性能区间。实验发现,到了 2000 多个样本时,调参才是确定有效的!


总结

这篇文章表明,在真正的小样本情境下,模型选择做的还不太好为此,作者对未来的小样本学习给出了以下建议:
  • 在写文章的时候,同时注明模型选择的原则,以及所有超参数和尝试的 prompts。
  • 验证集的数量也归入小样本学习的“数据量”里。
  • 当有大量样本作为验证集的时候,先不要用!先在测试集直接得到结果、做消融实验,等所有试验完成后,最后再引入验证集。这样避免实验结果使用验证集大量样本的信息。
  • 不要使用前人工作中的超参数,只在这少量样本中重新调参。
最严格的一种方式是,在设计评测任务时,只给出小小的训练集和小小的验证集,真正评分的测试集不给出,只能在线评测。
这篇文章说了真正的小样本学习,自然地,就延伸出来一个问题:在零样本学习(Zero-shot Learning)的情境下,还能进行调参吗?还能挑选模型吗?
个人感觉,似乎不行了。


本文亮点总结


1.本文认为,对于小样本学习,既不应该有其它分布的数据辅助、也不应该有很多训练数据,更不应该有很多验证集的数据。因为这些数据全都是需要标注的!

2.作者对未来的小样本学习给出了以下建议:
  • 在写文章的时候,同时注明模型选择的原则,以及所有超参数和尝试的 prompts。
  • 验证集的数量也归入小样本学习的“数据量”里。
  • 当有大量样本作为验证集的时候,先不要用!先在测试集直接得到结果、做消融实验,等所有试验完成后,最后再引入验证集。这样避免实验结果使用验证集大量样本的信息。
  • 不要使用前人工作中的超参数,只在这少量样本中重新调参。

如果觉得有用,就请分享到朋友圈吧!

△点击卡片关注极市平台,获取最新CV干货

公众号后台回复“长尾”获取长尾特征学习资源~


极市干货
YOLO教程:一文读懂YOLO V5 与 YOLO V4大盘点|YOLO 系目标检测算法总览全面解析YOLO V4网络结构
实操教程:PyTorch vs LibTorch:网络推理速度谁更快?只用两行代码,我让Transformer推理加速了50倍PyTorch AutoGrad C++层实现
算法技巧(trick):深度学习训练tricks总结(有实验支撑)深度强化学习调参Tricks合集长尾识别中的Tricks汇总(AAAI2021
最新CV竞赛:2021 高通人工智能应用创新大赛CVPR 2021 | Short-video Face Parsing Challenge3D人体目标检测与行为分析竞赛开赛,奖池7万+,数据集达16671张!


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart2)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~



觉得有用麻烦给个在看啦~  
浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报