探索人工智能中的单次学习。学习如何Ultralytics 和孪生网络,通过单张图像实现高效计算机视觉中的classify 。
单次学习是一种机器学习(ML)中的专业分类技术,旨在通过单个训练样本学习物体类别的信息。与传统深度学习(DL)算法需要包含数千张标注图像的海量数据集才能有效泛化不同,单次学习模仿了人类瞬间掌握新概念的认知能力。 例如,人类通常只需目睹一次就能识别特定珍稀鸟类;该方法试图在人工智能系统中复现这种高效性。在数据标注成本高昂、数据稀缺或需动态添加新类别而无需重新训练整个模型的情境下,该技术尤为重要。
一次性学习的核心原理在于将目标从标准分类转向相似性评估。模型不再训练神经网络输出特定类别标签(如"狗"或"猫"),而是学习距离函数。 实现该目标的常见架构是 连体神经网络,其由两个共享相同模型权重的 完全对称子网络构成。
在运行过程中,网络执行特征提取,将输入图像转换为称为嵌入的紧凑数值向量。系统随后将新查询图像的嵌入与单个参考图像的嵌入进行比较。 "基准图像"的嵌入向量进行比对。当数学距离(通常采用欧几里得距离 或余弦相似度计算)低于特定阈值时,判定图像属于同一类别。该机制使模型能够基于学习特征空间中的相似度,实现身份验证或classify 。
以下Python 如何使用一个模型提取嵌入向量并计算相似度:
YOLO26 的分类模型
ultralytics 包装
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}")
区分一次性学习与其他数据高效学习技术至关重要,因为它们通过不同的约束条件解决类似问题:
单次学习技术在某些领域开辟了新可能,这些领域原本难以收集海量训练数据。
单次学习最普遍的应用领域是生物识别安全。当在智能手机上设置Face ID或员工门禁系统时,设备会捕捉用户面部的一次数学化表示。日常使用中,面部识别系统通过将实时摄像头画面与存储的"单次"数据进行比对来验证身份。 该技术依托强大的嵌入算法(如基础研究FaceNet所探讨的方案),确保光照变化或角度偏移不会破坏相似度匹配机制。
在制造业人工智能领域,创建平衡的"缺陷"零件数据集颇具挑战,因为缺陷既罕见又难以预测。单次学习技术使计算机视觉系统能够从单个"完美"参考零件中学习特征表征。 当装配线上的任何部件生成的嵌入向量 与该基准存在显著偏差时,系统即触发异常检测标记。 这种机制无需数千张缺陷部件图像即可实现即时质量保障, 并Ultralytics 进行管理与部署。
尽管强大,单次学习法易受噪声影响;若唯一参考图像模糊、遮挡或 不具代表性,模型识别该类别的性能将显著下降。 研究人员常采用元学习(即"学习如何学习")来提升模型稳定性与泛化能力。随着架构演进,新型模型如YOLO26正整合更强大的特征提取器,使单次推理更快更精准,为更具适应性与智能性的边缘AI设备铺平道路。