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









