Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

One-Shot Learning

Обучение по одному примеру распознаёт новый класс по единственному размеченному примеру, обычно сравнивая эмбеддинги. Разбираем сиамские сети, применение и код.

Обучение по одному примеру — это задача распознавания нового класса по одному размеченному примеру. Обычной модели классификации изображений нужны сотни размеченных изображений на класс и повторное обучение при добавлении каждого класса, тогда как человек обычно может узнать новое лицо или товар, увидев его один раз. Системы обучения по одному примеру приближаются к этой способности, повторно используя знания о множестве ранее изученных классов: сеть, обученная на этих классах, преобразует изображения в эмбеддинги, в которых изображения одного и того же объекта расположены близко друг к другу, поэтому для обозначения нового класса достаточно одного примера. Так работают проверка лиц, сверка подписей и распознавание товаров, а в больших языковых моделях (LLMs) промптинг по одному примеру дает модели один разобранный пример задачи в запросе.

Как работает обучение по одному примеру#

Большинство систем обучения по одному примеру заменяют классификацию сравнением. Нейронная сеть выполняет извлечение признаков для сохраненного примера и каждого нового запроса, а расстояние между двумя эмбеддингами, например евклидово расстояние или косинусное сходство, определяет, совпадают ли они. Сиамская нейронная сеть формализует этот подход с помощью двух ветвей с общими весами. Джейн Бромли, Янн Лекун и коллеги использовали такую сеть для проверки подписей в 1993 году, а Грегори Кох и коллеги обучили ее в 2015 году классифицировать рукописные символы из новых алфавитов после просмотра одного примера каждого символа:

Сеть эмбеддингов заранее обучают на множестве других классов с помощью контрастивных или триплетных функций потерь, которые сближают изображения одного класса и отдаляют изображения разных классов. Поэтому выученное расстояние обобщается на классы, появляющиеся только позднее. Методы метаобучения, например Matching Networks, обучаются на тысячах смоделированных задач обучения по одному примеру, в каждой из которых есть по одному примеру нескольких классов, чтобы модель отрабатывала именно ту задачу, с которой ей предстоит столкнуться.

Классификация по одному примеру с помощью эмбеддингов#

Модели классификации Ultralytics YOLO26 возвращают эмбеддинги изображений через embed(), который преобразует выходные данные слоя перед головой классификации в один вектор на изображение. В этом примере на основе этих эмбеддингов строится классификатор по одному примеру для 10 классов CIFAR-10: единственные размеченные данные — по одному сохраненному изображению на класс, а каждому запросу присваивается метка самого похожего сохраненного изображения:

from pathlib import Path

import torch
import torch.nn.functional as F
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO

# CIFAR-10 test images, one folder per class
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
images = [sorted(folder.glob("*.png")) for folder in sorted(Path("data/cifar10/test").iterdir()) if folder.is_dir()]
model = YOLO("yolo26n-cls.pt")

# Support set: the first image of each class is its only labeled example (one shot)
shots = torch.stack([model.embed(paths[0], verbose=False)[0] for paths in images])

# Query set: the next 50 images of each class, each labeled with the class of its most similar shot
correct = 0
for label, paths in enumerate(images):
    for path in paths[1:51]:
        query = model.embed(path, verbose=False)[0]
        correct += F.cosine_similarity(shots, query.unsqueeze(0)).argmax().item() == label
print(f"10-way 1-shot accuracy: {correct / 500:.1%} (random guessing: 10%)")

Модель никогда не обучается на CIFAR-10, поэтому напечатанная точность показывает, насколько хорошо один пример на класс определяет этот класс в пространстве эмбеддингов YOLO26. Чтобы добавить одиннадцатый класс, достаточно сохранить еще один эмбеддинг.

Применение#

  • Проверка лиц: Автоматические пограничные турникеты сравнивают изображение с камеры в реальном времени с единственной фотографией, сохраненной на чипе паспорта, а телефоны и системы контроля доступа сопоставляют каждую попытку с лицом, записанным при регистрации.
  • Распознавание товаров в рознице: Магазины постоянно добавляют новые товары, и одной фотографии каждого товара в каталоге достаточно, чтобы система распознавала его на полке без повторного обучения.
  • Имитационное обучение по одному примеру: Обучает роботов выполнять новый вариант задачи, например складывать блоки в новом порядке, после одного показа.

Сложности#

Один пример не показывает, как меняется объект внутри класса, поэтому эталонная фотография при плохом освещении, под необычным углом или с частично скрытым объектом становится ненадежной опорой для всех последующих сравнений. Порог совпадения определяет баланс между ложными срабатываниями и ошибочными отказами; его нужно настраивать на валидационных парах для каждого приложения. Кроме того, эмбеддинг, обученный на одном домене, например на обычных фотографиях, хуже разделяет классы в другом домене, например на медицинских изображениях.

  • Обучение по нескольким примерам: Общая задача обучения по небольшому числу размеченных примеров на класс. Обучение по одному примеру — это случай ровно с одним примером, обозначаемый как 1-shot в записи N-way K-shot.
  • Обучение без примеров: Распознает классы без каких-либо примеров, используя текстовое описание или описание атрибутов.
  • Перенос обучения: Повторно использует предварительно обученную модель для новой задачи, обычно дообучая ее на множестве размеченных примеров. Системы обучения по одному примеру тоже используют перенесенные признаки, но напрямую сравнивают их, не обновляя веса.
  • Обнаружение аномалий: Обучается определять норму и отмечает все, что от нее сильно отличается, отвечая на вопрос, является ли объект необычным, а не к какому классу он относится.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения