少样本学习中的最近邻方法是一种通过将新数据点与一小组带标签的示例(称为支持集)进行比较来对新数据点进行分类的方法。 该方法不是从头开始训练模型,而是依赖于测量新输入和现有示例之间的相似性。 例如,如果您有五张稀有动物的图片(支持集)和一张新的未标记图片,则该模型会计算新图片与五个标记示例中的每一个的相似程度。 然后,将最相似示例(“最近邻”)的标签分配给新输入。 这样做是因为该模型假设相似的输入共享相同的标签,即使训练数据非常有限。
为了实现这一点,该模型首先使用预训练的神经网络或特征提取器将支持集示例和新输入转换为数值表示(嵌入)。 这些嵌入捕获有意义的模式,例如图像中的形状或文本中的语义含义。 然后,使用欧几里得距离或余弦相似度等距离度量来比较嵌入。 例如,在每个类有三个示例句子的文本分类任务中,可以使用余弦相似度将新句子的嵌入与所有支持示例进行比较。 选择具有最接近平均相似度的类。 某些方法(例如原型网络)更进一步,计算支持集中每个类的“原型”(平均嵌入),然后将新输入与这些原型而不是单个示例进行比较。 这减少了噪声并提高了效率。
最近邻方法的主要优点是简单——它们只需要对新任务进行最小的适应,并且可以很好地与预训练模型配合使用。 例如,在通用图像上训练的 ResNet 模型可以为涉及医学 X 射线的新的少样本任务生成嵌入,而无需重新训练。 但是,性能在很大程度上取决于嵌入的质量和距离度量。 如果嵌入空间不能很好地分离类(例如,猫和狗的嵌入重叠),则准确性会下降。 此外,计算开销可能会随着更大的支持集而增加,但像原型设计这样的技术可以缓解这种情况。 尽管存在这些权衡,但该方法广泛用于 TensorFlow 和 PyTorch 等框架中,以便在低数据场景中进行快速原型设计,例如使用有限的标记示例对用户生成的内容进行分类。