每个类只给 1 张图,还能学会分类?李宏毅深度学习作业带你跑通 Few-Shot 小样本学习 每个类只给 1 张图还能学会分类李宏毅深度学习作业带你跑通 Few-Shot 小样本学习【免费下载链接】leedl-tutorial《李宏毅深度学习教程》李宏毅老师推荐苹果书PDF下载地址https://github.com/datawhalechina/leedl-tutorial/releases项目地址: https://gitcode.com/GitHub_Trending/le/leedl-tutorial这篇内容基于开源仓库leedl-tutorial《李宏毅深度学习教程》的作业 15用 PyTorch 带你跑通小样本学习Few-Shot Learning在 Omniglot 手写符号集上完成5-way 1-shot分类把迁移学习基线和 MAML 元学习放一起对比看清元学习到底快在哪、超参数从哪调。 先把任务说清5-way 1-shot 在 Omniglot 上到底学什么5-way 1-shot拆开看5 个类别way每个类只给 1 张样本1-shot。模型要在几乎没见过的字符上靠这 5 张图就把 5 个类分对。Omniglot 是 28×28 的灰度手写字符图类数非常多、每类样本又少天然是小样本场景。作业把每个训练样本切成两段理解它后面所有代码都顺了support set支持集那n_way × k_shot张见过的图用来现学这个任务query set查询集n_way × q_query张没见过的图用来检验学得怎么样作业 15 的默认配置可以直接照抄这也是你调参的起点参数默认值含义n_way5每次任务随机抽 5 个字符类k_shot1每类只给 1 张 support 图q_query1每类 1 张 query 图做评估inner_lr0.4内循环任务内微调学习率meta_lr0.001外循环元优化学习率meta_batch_size32每个 meta-step 跑多少个任务max_epoch30外循环总轮数内循环步数训练 1 / 验证 3inner_train_step代码入口Homework/HW15_MetaLearning/HW15-MetaLearning.ipynb 先跑一个能跑的迁移学习基线 BaseSolver元学习好调的前提是手里得有一个对照。作业里BaseSolver就是这个基线思路很朴素从训练集里抽 5 个任务逐个当普通分类器训练推理时先在 support 上微调inner_train_step步再到 query 上打分它和元学习求解器输入输出格式完全一致所以你拿到同一套指标可以直接比大小——这就是凭什么说元学习更好的证据来源。跑通它之后你才看得懂后面 MAML 多出来的那部分到底在干什么。 换成 MAML元学习的内外循环从哪调起MAMLModel-Agnostic Meta-Learning的核心是双层优化翻译成大白话外循环优化一组好的初始参数让模型天生就好调内循环换一个新任务用 support 集微调几步fast_weights再在 query 上看效果作业用了一个关键技巧——functional_forward(x, params)给定任意一组参数就前向一次这样原始参数和微调后的 fast_weights能并存梯度可以穿过内循环回到外循环。调内循环时重点盯这三个量inner_lr0.4 在 28×28 小图上是经验值调太大内循环容易发散inner_train_step训练时 1 步配合一阶 MAML/FO-MAML 更快验证时给 3 步让模型充分适应meta_batch_size一个 meta-step 里覆盖多少个任务任务越多外循环梯度越稳ProtoNet 和 MAML 怎么选想要实现简单、推理快ProtoNet 这类基于原型距离的方法更省事把每个类样本聚成一个原型点谁离谁近就归谁想要任务内充分自适应、泛化更强MAML 的内循环能针对当前任务现调参数上限更高但训练更吃显存和调参耐心建议先跑 MAML 的一阶版FO-MAML内循环只取一阶导把流程跑顺再考虑原始 MAML 的二阶导。 Omniglot 上如何验证小样本学习效果指标别只看训练集。小样本学习最关心在没见过的字符类上能不能分对所以以 query 集准确率为准。按作业里的流程跑下来训练精度能从约 26.7% 一路爬到 84.8%验证集稳定在 78% 上下指标数值说明训练精度26.7% → 84.8%外循环推进后持续上升验证准确率≈ 78%以 query 集计算泛化参考对照基线迁移学习 BaseSolver同格式对比看元学习增益提示迁移学习作业里也有一套训练/测试曲线可以对照着看领域适应和元学习在收敛形态上的差别。 参考Homework/HW11_Adaptation/HW11-Adaptation.ipynb 从单点作业到成体系李宏毅 深度学习 作业路径小样本不是孤立的一课它是数据不够时这一整条线的收尾。把相邻作业串起来你会有一条完整路线迁移学习作业从哪跑先搞懂源域特征怎么迁到目标域。HW11 把特征提取器、分类器和领域对抗训练讲透了是理解迁移二字的地基。终身学习作业怎么接模型要不断学新类小样本就是新类只有几张图的极端情形。HW14 的持续学习方法分类正好补上知识怎么不丢这块。终身学习入口Homework/HW14_LifeLongML/HW14-LifeLongMachineLearning.ipynb元学习作业入口想要本地跑完整流程把仓库拉到手里即可只读参考请勿改动仓库内容git clone https://gitcode.com/GitHub_Trending/le/leedl-tutorial然后按 HW11 → HW14 → HW15 的顺序走先建立迁移的直觉再看持续学习的框架最后落在 HW15 用 MAML 把 5-way 1-shot 真正跑通、用 query 集指标验收。✅ 收尾你的小样本学习该按什么节奏走先复现BaseSolver基线拿到可对比的数字再上 FO-MAML盯inner_lr/inner_train_step/meta_batch_size三个量用 query 集验证别被训练精度迷惑需要省实现就退一步用 ProtoNet需要强自适应就压 MAML把这条路走一遍你对 Few-Shot Learning 的理解就不只是背概念而是手里有一套能在 Omniglot 上跑出结果、也敢换数据集复用的流程了。【免费下载链接】leedl-tutorial《李宏毅深度学习教程》李宏毅老师推荐苹果书PDF下载地址https://github.com/datawhalechina/leedl-tutorial/releases项目地址: https://gitcode.com/GitHub_Trending/le/leedl-tutorial创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考