基于元学习(Meta-Learning)的方法:
Few-shot问题或称为Few-shot学习是希望能通过少量的标注数据实现对图像的分类,是元学习(Meta-Learning)的一种。
Few-shot学习,不是为了学习、识别训练集上的数据,泛化到测试集,而是为了让模型学会学习。也就是模型训练后,能理解事物的异同、区分不同的事物。如果给出两张图片,不是为了识别两张图片是什么,而是让模型知道两张图片是相同的事物还是不同的事物。
Few-shot可以被定义为K-way,N-shot问题,表示支持集有k个类别,每个类别有n个样本。不同于训练深度深度神经网络每个类有大量样本的数据集,Few-shot的训练数据集规模很小
Meta-Learning的核心思想就是先学习到一个先验知识(prior),这需要经历多个task的训练,每个task的分为支持集(support set)和查询集(query set),支持集包含了k个类、每个类n张图,模型需要对查询集的样本进行归类以训练模型的学习能力。
经过了很多个task学习先验知识,才能解决新的task,新的task涉及的类,不包含在学习过的task! 我们把学习训练的task称为meta-training task,新的task称为meta-testing task。最后的评价指标就是根据红色部分表现结果。
meta training task |
---|
support |
support |
… |
support |
meta testing task |
---|
support |
需要注意查询集和测试集的区别,因为在Few-shot训练过程也有测试集,在Few-shot测试中,接触的支持集和测试集都是全新的类。
Supervised Learning vs. Few-shot Learning
传统监督学习 | Few-shot 学习 |
---|---|
测试样本未在训练集中见过 | 查询样本没见过 |
测试样本的类在训练集中见过 | 查询样本的类属于未知 |
基于微调(Fine-Tuning)的方法:
基于微调的Few-shot方法封为三个步骤:
- 预训练:使用模型在大规模的数据集进行预训练作为特征提取器\(f\)。
- 微调:在支持集上训练分类器。
- Few-shot预测:
- 将支持集上的图像通过分类器转为特征向量;
- 对每一个类的特征向量求平均,得到类的特征向量:\(\mu_1,\dots,\mu_k\);
- 将查询的特征与\(\mu_1,\dots,\mu_k\)比较。
先省略第二步的微调,看看一般的预训练Few-shot预测。
以上图为例,将每一个类的平均特征堆叠得到矩阵\(M\in\mathbb{R}^{3\times n}\),这里\(n\)表示特征数。
\[M =\begin{bmatrix} \mu_1 \\ \mu_2 \\ \mu_3 \end{bmatrix}\tag{1} \]
将查询的图片提取特征、做归一化得到\(q\in\mathbb{R}^{1\times n}\),并进行预测。
\[p = \mathrm{Softmax}(Mq) \tag{2} = \mathrm{Softmax}(\begin{bmatrix} \mu_1^Tq \\ \mu_2^Tq \\ \mu_3^Tq \end{bmatrix}) \]
本例中,输出的第一类的概率最大。
归纳一下上述使用预训练模型预测查询集图像的步骤:
- 设置查询集的标记样本:\((x_j,y_j)\)。
- 用预训练模型提取特征:\(f(x_j)\)。
- 进行预测:\(p_j = \mathrm{Softmax}(W\cdot f(x_j)+b)\)。
以上固定了\(W=M, b=2\)。但可以在支持集进行训练,微调\(W\)和\(b\)。于是设置损失函数去学习\(W\)和\(b\),由于支持集较小,需要加入正则项防止过拟合:
\[\min\sum_j\mathrm{CrossEntropy}(y_j,p_j)+\mathrm{Regularization}\tag{3} \]
大量实验证明,微调确实能提高精度。以下是一些常用的技巧:
- 对于预测分类器\(p=\mathrm{Softmax}=(W\cdot f(x)+b)\),可以进行初始化\(W=M,b=0\)。
- 对于正则项的选择可以考虑Entropy Regularization,相关的解释可以参考文献[3]。
- 将余弦相似度加入Softmax分类器,即:
\[p=\mathrm{Softmax}=(W\cdot f(x)+b)=\mathrm{Softmax}(\begin{bmatrix} w^T_1q+b_1 \\ w^T_2q+b_2 \\ w^T_3q+b_3 \end{bmatrix}) \]
\[\Downarrow \]
\[p=\mathrm{Softmax}(\begin{bmatrix} \mathrm{sim}(w_1,q)+b_1 \\ \mathrm{sim}(w_2,q)+b_2 \\ \mathrm{sim}(w_3,q)+b_3 \end{bmatrix}) \tag{4} \]
其中\(\mathrm{sim}=\frac{w^Tq}{\lVert w\rVert_2\cdot \lVert q\rVert_2}\)。
对比
基于两种方式解决Few-shot问题的对比
元学习(Meta-Learning) | 微调(Fine-Tuning) | |
---|---|---|
策略 | 基于元学习的方法旨在通过在元任务上训练来使模型学会更好地适应新任务。它们通常涉及在多个元任务(task)上进行训练,以使模型能够从不同任务中学到共性。 | 基于微调的方法通常涉及在一个预训练的模型上进行微调,以适应特定的 few-shot 任务。在训练阶段,模型通常会使用大规模的数据集进行预训练,然后在少量训练数据上进行微调。 |
就目前来说,Fine-tuning的方法普遍要比Meta-learning简单且表现更好,但对于它们的应用场景,以及谁更容易发生过拟合现象还需要根据实际情况。
最后的最后
感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。
因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
五、面试资料
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】