小样本学习(Few-shot Learning)从入门到进阶
前言为什么你训练一个垃圾分类模型需要10万张图而你三岁的侄子只看过一次菠萝这辈子去超市都能认出来这就是小样本学习Few-shot Learning要解决的问题。本文不堆砌数学公式用最通俗的比喻带你搞懂什么是小样本学习、它有哪些流派、大模型时代它又进化成了什么样子以及——你实际落地时该选哪条路。适合读者对AI感兴趣但被「支持集」「原型网络」「MAML」「ICL」这些术语劝退的同学。一、入门篇先搞懂它在干啥传统机器学习 ≈ 题海战术让AI认识「猫」传统做法喂它几十万张猫的照片正着、反着、橘猫、狸花猫……全背下来。考试时看到一张新猫图它能认出来。代价换个新物种比如「羊驼」不好意思重新收集几十万张羊驼照从头再练。小样本学习 ≈ 天赋型学霸只给AI看1到5张猫的照片它就能在考试时把猫认出来。它靠的不是「背长相」而是学「怎么去判断两个东西是不是同一类」。一句话总结小样本学习 授人以渔不靠堆数据硬背而是教AI学会「相似度比较」。三个你一定会碰到的名词大白话版术语通俗解释N-way K-shot考试规则。比如「5-way 1-shot」 待会有5个新物种让你选但每个物种只给1张参考照支撑集Support Set考试发你的「小抄」——那极少量的几张参考图查询集Query Set真正的「考题」——那张你没见过、需要判别的图片二、进阶篇三大流派掀开AI的脑壳入门讲的是「做什么」进阶我们讲「怎么做」。学术界的小样本学习主要分三大流派我分别用「找茬游戏」「武功秘籍」和「脑补帝」来拆解。流派一度量学习Metric Learning—— 升级版「找茬王」这是最直观的思路但它的内核不是简单比像素而是把图片变成坐标点。AI有个「特征提取器」把任何图片压缩成高维空间里的一个向量就是一串数字坐标。训练目标同类的图片坐标无限近不同类的图片坐标无限远。实战5-way 1-shot把5张参考图变成5个坐标点叫**「原型」Prototype**再把「考题」也变成坐标点。用尺子量一下考题离哪个原型最近它就是哪个类别。代表算法孪生网络Siamese Network、原型网络Prototypical Network流派二元学习Meta-Learning—— 打通任督二脉这一派不满足于「会比较」它要求AI「学会如何快速调整自己的大脑」。代表算法MAML名字唬人原理极像武侠里的「打通任督二脉」传统训练把模型参数调到一个「通用平原」能认1000种常见物品。MAML把参数调到一个**「极其敏感的位置」**——像站在山顶往任何方向走一步都能迅速下山。训练时AI反复在各种「小考试」每个Task只给1~5张图中折磨自己。经过上万次它找到了**「万能起跑线」**。以后遇到全新的独角仙不需要从头调几百万个参数只需微调1~3步准确率瞬间飙升。流派三数据增强/生成Hallucination—— 无中生有「脑补帝」思路清奇你不是样本少吗我自己造引入GAN或变分自编码器VAE。给AI看1张正面独角仙照片它脑补出背面、侧面、不同光照下的样子硬生生把1个样本「变」成100个。⚠️ 风险想象力太丰富容易翻车——脑补错了反而带偏模型。但配合度量学习使用效果往往出奇地好。核心机密Episode Training情景训练这是小样本学习最反常识的训练方式传统训练随机打乱数据随便挑一批猫、狗、飞机塞给AI。小样本训练故意模拟考试环境——每次只挑5个类别每个类别只给5张图让AI去分分完立刻换下一组。目的在真正的「独角仙考试」来临之前AI已经经历过几百万次「只看几眼就要猜」的极限压力测试早就习惯在信息匮乏下做决策了。进阶篇小结三大流派对比流派核心思想代表算法优势风险度量学习比坐标距离原型网络、孪生网络简单高效推理快对特征提取器要求极高元学习找万能起跑线MAML、Reptile泛化能力强训练极复杂容易过拟合数据生成脑补新样本GAN、VAE补足数据不足生成质量决定上限三、大模型时代玩法全变了前面的流派都基于一个前提——需要训练/微调模型参数。但现在的GPT、LLaMA、CLIP等大模型不需要修改任何一个参数照样玩转小样本。全靠一个神奇操作上下文学习In-Context LearningICL比喻以前是「练肌肉」现在是「贴便利贴」传统小样本 健身教练带AI反复举铁梯度下降把记忆练进肌肉参数里。大模型小样本 神偷拿一把万能钥匙注意力机制。你给它看几张参考图它当场提取信息写在「便利贴」上下文窗口上贴脑门上用。任务结束便利贴一撕大脑恢复空白。核心武器自注意力机制Self-Attention你把「1张参考图 1张待识别图」一起输给大模型时模型会计算待识别图每个像素和参考图每个像素之间的相关度。哪里连线最密哪里权重最高它就判定「这就是那个东西」。Zero-shot / One-shot / Few-shot大模型语境模式给几个例子本质Zero-shot0个完全依赖预训练知识One-shot1个类比推理Few-shot3~8个模式唤醒最佳样本数通常4~8太多反而分散注意力灵魂拷问大模型是真的「学会」了还是在「抄作业」这是目前AI圈最激烈的争议之一。表面你给GPT 3个英译中的例子它第4句翻译得很好。你以为它学会了。真相它早就在海量训练数据里见过「英译中」模式。那3个例子不是教它翻译而是唤醒它脑子里已有的翻译模块——只是「药引子」不是「药」。证据如果你给它一个预训练时从未见过的虚构任务比如某种诡异的乱码排序规则塞100个例子它也学不会。因为参数是锁死的没法通过几个例子修改大脑结构。视觉领域新王炸CLIP 多模态现在最牛的小样本视觉模型不再是孪生网络而是CLIP、GPT-4V这类多模态大模型。CLIP训练时将「图片」和「文字描述」塞进同一个数学空间——「羊驼」的图片和「羊驼」这两个字的坐标是重合的。实战想让它认一种罕见的「水晶兰」白色透明植物。不用1000张图只需在提示词里写「一种通体雪白、没有叶绿素、像水晶一样的植物。」然后给它看1张照片。CLIP计算「图片」和「文字描述」的匹配度瞬间搞定。这叫「描述性小样本」绕开了传统方法头疼的「背景偏见」问题。工业界性价比之王Prompt Tuning提示微调大模型参数太大没法全改。科学家想了个折中办法不改万亿个参数只额外挂一个极小的「软提示」Soft Prompt可能只有几十个虚拟向量。只用那1~5张图只训练这几十个向量大模型本身不动。效果这几十个向量像一把特制钥匙专门解锁大模型里关于「独角仙」的知识。代表技术Prefix-Tuning、LoRA——目前工业界小样本落地的性价比之王。大模型小样本的「死穴」落地必看问题说明上下文干扰给5个例子模型最容易记住最后一个——把独角仙放第1个、屎壳郎放最后它可能把所有东西都判成屎壳郎位置敏感同样内容例子放前面和放后面准确率能差20%——证明它没真正理解只做「基于位置的加权平均」计算成本传统原型网络在普通GPU上秒出结果大模型每次推理都要把参考图和考题一起塞进去计算量巨大且图片分辨率受限四、最终选型指南你到底该用哪一派场景推荐方案理由工业质检、医学影像数据极度稀缺GPU预算有限传统度量学习原型网络轻量、快速、可解释性强跨领域任务如自然光训练 → X光测试元学习MAML泛化能力相对更好任务灵活多变今天认花明天认车大模型 Prompt TuningLoRA无需重训切换任务只需换提示词有文字描述辅助如电商商品识别CLIP系列多模态模型文本信息能极大弥补样本不足追求极致准确率不差钱不差时间大模型 Few-shot 人工精调Prompt上限最高但成本也最高写在最后小样本学习不是让AI变聪明而是让AI变成**「在高压模拟考中练出来的偏科生」**——擅长处理「类别少、数据少」的极端情况但极度依赖训练集和测试集的相似度。如果你手头正好有项目在做先别急着上大模型——试试原型网络几行代码就能跑出baseline如果准确率不够——再看是「特征提取器不行」还是「领域漂移」最后才考虑大模型——因为那是用钱换准确率。希望这篇文章能帮你少走弯路。如果觉得有用欢迎收藏、点赞、评论三连彩蛋如果你想看「用CLIP 5行Python代码实现1-shot图像分类」或者「MAML的数学直觉完整拆解」评论区告诉我下一篇安排