零样本和少样本学习
在本篇文章中,我们将讨论机器学习和深度学习的不同领域中的一个热门话题:零样本和少样本学习(Zero and Few Shot learning),它们在自然语言处理到计算机视觉中都有不同的应用场景。
少样本学习
在监督分类器中,所有的模型试图学习的是区分不同的对象的的特征,无论数据是什么形式存在的,例如图像、视频还是文本都是一样的。而·少样本学习的思想是通过比较数据来学习区分类,这样模型使用的数据更少,并且比经典模型表现得更好。在少样本学习中通常会使用支持集(support set)代替训练集。
少样本学习是一种元学习技术。元学习的意思是:学会学习。元学习是元认知的一个分支,研究的是对自身学习和学习过程的方法和认知过程。
支持集
支持集其实与训练集的数据是一样的,但由于学习方法不同所以我们称之为支持集。
K-Way N-Shot支持集:支持集具有K类,每个类都有N样本。N-Shot意味着为每个类提供的样本数。如果每个另类都有更多样本,模型可以学习的更好。
在较少的类中,模型可以更轻松地对数据进行分类。总的来说,我们可以说:更少的k和更多的n更好。
为什么把他成做支持集呢?还记得SVM中的支持向量吗,就是SVM中区别分类边界的数据,支持集也是这个意思。
相似性函数
少样本学习的想法是相似性函数。这意味着应该计算SIM(X,X’),其中“ SIM”是相似性函数,而X和X’是样本。首先要做的是从大型数据集中学习相似性函数。然后将相似性函数应用于预测。
孪生网络
孪生网络使用正面和负样本进行分类。以下是正和负样本的示例:
(Tiger1,Tiger2,1)| (CAR1,CAR2,1)
(Tiger1,Car2,0)| (Tiger1,Car1,0)
网络结构就是这样:
孪生网络首先使用数据集中的两个图像,然后使用一些层(在这里的图像数据示例,使用卷积层),创建输入的编码向量。最后使用差异层和不同的损失函数尝试学习相似性函数。
输入该网络的数据是:
- XA:锚数据:从数据集随机选择
- X+:正数据:与锚相同的类
- X-:负数据:锚不同的类别
F函数(CNN)用于创建编码向量。在编码向量后,我们可以使用:
完整文章:
https://avoid.overfit.cn/post/129aa457af7b4dff9fa33dcaf0015968