Изучите однократное обучение в области искусственного интеллекта. Узнайте, как classify по одному изображению с помощью Ultralytics и сетей Siamese для эффективного компьютерного зрения.
One-Shot Learning — это специализированная техника классификации в машинном обучении (ML), предназначенная для изучения информации о категориях объектов на основе одного учебного примера. В отличие от традиционных алгоритмов глубокого обучения (DL), которые требуют огромных наборов данных, содержащих тысячи аннотированных изображений для эффективного обобщения, One-Shot Learning имитирует когнитивную способность человека мгновенно улавливать новые концепции. Например, человек обычно может распознать конкретную экзотическую птицу, увидев ее всего один раз; эта методология пытается воспроизвести эту эффективность в системах искусственного интеллекта (ИИ). Она особенно ценна в сценариях, когда маркировка данных является дорогостоящей, данных мало или новые категории должны добавляться динамически без переобучения всей модели.
Основной принцип однократного обучения заключается в переносе цели со стандартной классификации на оценку сходства . Вместо обучения нейронной сети (NN) выводить определенную метку класса (например, «собака» или «кошка»), модель изучает функцию расстояния. Обычно для этого используется сиамская нейронная сеть, которая состоит из двух идентичных подсетей, имеющих одинаковые веса модели.
Во время работы сеть выполняет извлечение признаков для преобразования входных изображений в компактные числовые векторы, известные как вложения. Затем система сравнивает вложение нового запрошенного изображения с вложением единственного эталонного «кадра». Если математическое расстояние — часто рассчитываемое с помощью евклидова расстояния или косинусного сходства— ниже определенного порога, изображения определяются как принадлежащие одному классу. Это позволяет модели проверять идентичность или 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}")
Важно отличать однократное обучение от других методов эффективного обучения на данных, поскольку они решают подобные проблемы с помощью разных ограничений:
Однократное обучение открыло новые возможности в тех областях, где сбор больших объемов учебных данных нецелесообразен.
Наиболее распространенное применение One-Shot Learning — это биометрическая безопасность. При настройке Face ID на смартфоне или регистрации в системе доступа сотрудников устройство фиксирует одно математическое представление лица пользователя . Во время повседневного использования система распознавания лиц сравнивает изображение с камеры с этим сохраненным «одним снимком» для проверки личности. Это основано на надежных методах встраивания, таких как те, которые обсуждаются в фундаментальном исследовании FaceNet, чтобы гарантировать , что изменения освещения или угла не нарушают соответствие сходства.
В области искусственного интеллекта в производстве создание сбалансированного набора данных о «дефектных» деталях затруднительно, поскольку дефекты встречаются редко и носят непостоянный характер. Однократное обучение позволяет системам компьютерного зрения (CV) изучить представление одной «идеальной» эталонной детали. Любой элемент на сборочной линии, который дает встраивание, значительно отличающееся от этого эталона, помечается для обнаружения аномалий. Это позволяет обеспечить немедленное контроль качества без необходимости использования тысяч изображений бракованных деталей, которые можно управлять и развертывать через Ultralytics .
Несмотря на свою мощность, One-Shot Learning уязвимо для шума; если единственное эталонное изображение размыто, заслонено или нерепрезентативно, способность модели распознавать этот класс значительно ухудшается. Исследователи часто используют метаобучение, или «обучение обучению», для повышения стабильности и обобщаемости модели. По мере развития архитектур новые модели, такие как YOLO26, включают в себя более надежные экстракторы признаков, которые делают однократное выведение быстрее и точнее, прокладывая путь для более адаптивных и интеллектуальных периферийных устройств искусственного интеллекта.