One-Shot Learning
探索 AI 中的单样本学习。了解如何使用单张图像、Ultralytics YOLO26 和孪生网络对目标进行分类,实现高效计算机视觉。
单样本学习是一种专门的分类技术,旨在从单个训练示例中学习对象类别的信息,应用于机器学习 (ML)。与传统的深度学习 (DL)算法不同,后者需要包含数千张带标注图像的大型数据集才能有效实现泛化,单样本学习模拟了人类即时理解新概念的认知能力。例如,一个人通常只需看一眼某种特定的 exotic bird 就能识别它;这种方法试图在人工智能 (AI)系统中复现这种效率。当数据标注成本高昂、数据稀缺,或必须动态添加新类别而无需重新训练整个模型时,它尤其有价值。
这一概念背后的机制#
单样本学习的核心原则是将目标从标准分类转向相似度评估。模型不是训练一个神经网络 (NN)来输出特定的类别标签(例如“狗”或“猫”),而是学习一个距离函数。为此常用的一种架构是孪生神经网络,它由两个相同的子网络组成,并共享相同的模型权重。
运行时,网络执行特征提取,将输入图像转换为称为嵌入的紧凑数值向量。然后,系统将新查询图像的嵌入与单个参考“样本”的嵌入进行比较。如果数学距离通常使用欧氏距离或余弦相似度计算低于某个阈值,则判定这些图像属于同一类别。这样,模型便可以根据对象在所学习特征空间中的接近程度来验证身份或对对象进行分类。
以下 Python 代码演示了如何使用 ultralytics 软件包中的 YOLO26 分类模型提取嵌入并计算相似度。
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model for feature extraction
model = YOLO("yolo26n-cls.pt")
# Extract embeddings for a reference 'shot' and a query image
# The embed() method returns the feature vector directly
shot_vec = model.embed("reference_img.jpg")[0]
query_vec = model.embed("query_img.jpg")[0]
# Calculate similarity (higher dot product implies greater similarity)
similarity = np.dot(shot_vec, query_vec) / (np.linalg.norm(shot_vec) * np.linalg.norm(query_vec))
print(f"Similarity Score: {similarity:.4f}")区分相关范式#
务必将单样本学习与其他数据高效的学习技术区分开来,因为它们在不同约束条件下解决相似的问题:
- 少样本学习 (FSL): 这是涵盖单样本学习的更广泛类别。在 FSL 中,模型会获得一个由少量示例组成的“支持集”,通常每个类别包含两到五张图像。单样本学习只是其中的极端情况,即支持集的大小恰好为一。
- 零样本学习 (ZSL): ZSL 旨在识别模型在视觉上从未见过的类别。ZSL 不依赖参考图像,而是通过自然语言处理 (NLP)依赖语义属性或文本描述(例如,将视觉特征与“有条纹的马”这一文本描述相关联,从而识别“斑马”)。
- 迁移学习: 这种方法会采用在大型数据库(如 ImageNet)上预训练的模型,并在新任务上对其进行微调。虽然迁移学习为单样本学习所使用的特征提取器提供了支持,但标准迁移学习通常需要不止一个示例,才能在不发生过拟合的情况下有效更新权重。
实际应用#
单样本学习为那些难以收集大量训练数据的领域带来了新的能力。
人脸识别与安全#
单样本学习最普遍的应用是生物识别安全。当你在智能手机上设置 Face ID 或注册员工门禁系统时,设备会采集用户面部的单个数学表示。在日常使用过程中,人脸识别系统会将实时摄像头画面与存储的这一“单个样本”进行比较,以验证身份。这依赖于稳健的嵌入技术,例如基础性 FaceNet 研究中讨论的技术,从而确保光照或角度变化不会破坏相似度匹配。
工业质量控制#
在制造业中的 AI领域,由于缺陷罕见且不一致,创建均衡的“有缺陷”零件数据集非常困难。单样本学习允许计算机视觉 (CV)系统学习单个“完美”参考零件的表示。装配线上任何与该参考零件的嵌入距离明显较远的物品,都会被标记为需要进行异常检测。这样无需数千张损坏零件的图像即可立即执行质量保证,而相关流程可以通过 Ultralytics Platform进行管理和部署。
挑战与未来展望#
单样本学习虽然功能强大,但容易受到噪声影响;如果唯一的参考图像模糊、被遮挡或缺乏代表性,模型识别该类别的能力就会显著下降。研究人员通常采用元学习,也称为“学会学习”,来提高模型的稳定性和泛化能力。随着架构不断演进,诸如 YOLO26 这样的新模型正采用更稳健的特征提取器,使单样本推理更快速、更准确,为更加自适应和智能的边缘 AI设备铺平道路。









