Открыть сервис

One-shot обучение в машинном обучении

One-shot обучение (англ. one-shot learning, обучение с одного примера) — парадигма в машинном обучении, при которой модель способна распознавать или классифицировать объекты нового класса на основе всего одного размеченного примера (эталона), без процедуры дополнительного дообучения с градиентным спуском. Данный подход противопоставляется классическому обучению с большим количеством примеров (many-shot learning) и занимает промежуточное положение между zero-shot обучением (без единого примера) и few-shot обучением (с несколькими примерами, обычно от двух до пяти).

Сущность и постановка задачи

В традиционном машинном обучении модель обучается на тысячах размеченных изображений, аудиозаписей или текстов. Однако человек способен узнавать новый объект, увидев его один раз: например, ребёнок может запомнить новую породу собаки по одной картинке в книге. One-shot обучение ставит целью воспроизвести эту когнитивную способность.

Формально задача формулируется следующим образом: имеется обучающий набор с классами \( C_{train} \), на котором модель обучается. На этапе тестирования предъявляется новый класс \( C_{test} \), не встречавшийся при обучении, и один эталонный образец \( x_{support} \) из этого класса. Модель должна корректно определить, принадлежит ли тестовый образец \( x_{query} \) тому же классу, что и эталон. Таким образом, one-shot обучение — это не просто классификация, а задача метрического сравнения: модель учится оценивать семантическую близость между образами.

Подходы и методы

Метрическое обучение (Siamese networks)

Одним из первых и наиболее влиятельных подходов стали сиамские сети (Siamese networks), предложенные в 1990-х годах для верификации подписей и активно развитые для one-shot распознавания лиц в 2010-х. Архитектура состоит из двух (или более) подсетей с общими весами, которые преобразуют входные образы в векторные представления (эмбеддинги). Затем вычисляется расстояние между векторами (обычно евклидово или косинусное), и модель обучается минимизировать это расстояние для пар одного класса и максимизировать для пар разных классов. На этапе инференса новый класс принимается, если расстояние до эталона меньше порога. Важным преимуществом является то, что модель обучается на парах, а не на конкретных классах, что позволяет обобщать на невиданные ранее категории.

Модели с прототипами (Prototypical Networks)

Прототипические сети (Prototypical Networks, Snell et al., 2017) используют более простую идею: для каждого класса вычисляется прототип как среднее эмбеддингов его опорных примеров. При one-shot сценарии прототип равен эмбеддингу единственного эталона. Классификация тестового образца выполняется по ближайшему прототипу в метрическом пространстве. Метод отличается простотой и эффективностью, хорошо работает на небольших наборах данных вроде Omniglot и miniImageNet.

Сравнение с внешней памятью (Memory-Augmented Networks)

Модели с внешней памятью, в частности Neural Turing Machines и их развитие — Memory-Augmented Neural Networks (MANN), используют обучаемую матрицу памяти. При предъявлении нового класса образец записывается в память, а при тестировании модель выполняет чтение из памяти и сравнивает по сходству. Такой подход имитирует эпизодическую память человека и позволяет быстро «запоминать» новые примеры без изменения весов сети.

Мета-обучение (Meta-learning, learning to learn)

Наиболее общий фреймворк для one-shot обучения — мета-обучение, в котором модель обучается на множестве эпизодов (tasks), каждый из которых имитирует one-shot сценарий. Популярные алгоритмы: Model-Agnostic Meta (организация признана экстремистской, деятельность запрещена в РФ)-Learning (MAML, Finn et al., 2017), который ищет такие начальные веса модели, чтобы градиентный шаг на одном примере нового класса давал хорошее обобщение; и Matching Networks (Vinyals et al., 2016), которые используют механизм внимания для сравнения тестового образца с опорным множеством. Эти методы показали высокую эффективность на бенчмарках, но требуют значительных вычислительных ресурсов и большого разнообразия задач на этапе обучения.

Области применения

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

One-shot обучение широко применяется в системах распознавания лиц (например, в системах верификации на смартфонах), где для каждого нового пользователя достаточно одной фотографии. Также используется в задачах распознавания объектов на производстве, медицинской диагностике по снимкам редких заболеваний, где сложно собрать большие наборы данных, и в системах видеонаблюдения для идентификации людей по одному кадру.

Обработка естественного языка

В NLP one-shot подходы применяются для классификации тональности новых доменов, распознавания именованных сущностей в специализированных текстах, а также в задачах машинного перевода для редких языков, где доступен лишь один параллельный корпус. Современные большие языковые модели (GPT, LLaMA) демонстрируют свойства one-shot (in-context learning), когда модель выполняет новую задачу после одного примера в промпте без изменения весов.

Робототехника и управление

В робототехнике one-shot обучение используется для имитационного обучения: робот может освоить новое движение или манипуляцию, наблюдая за демонстрацией человека всего один раз. Это критически важно в условиях, где сбор данных дорог или опасен (например, в хирургических роботах или на опасных производствах).

Биометрия и безопасность

Помимо распознавания лиц, one-shot методы применяются для идентификации по голосу, походке, отпечаткам пальцев в условиях ограниченного количества эталонных образцов, что актуально для криминалистики и систем контроля доступа.

Проблемы и ограничения

Несмотря на успехи, one-shot обучение сталкивается с рядом фундаментальных трудностей. Во-первых, высокая чувствительность к качеству эталонного примера: если единственный образец содержит шум, искажение или нетипичный ракурс, точность резко падает. Во-вторых, возникает проблема переобучения на этапе мета-обучения: если обучающие задачи слишком похожи, модель не обобщается на принципиально новые классы. В-третьих, one-shot методы требуют больших вычислительных ресурсов и тщательной настройки гиперпараметров. Наконец, теоретически доказано, что one-shot обучение невозможно без сильных априорных предположений о структуре данных (теорема о «бесплатном обеде»), поэтому универсального решения не существует, и методы всегда заточены под конкретный домен.

Сравнение со смежными парадигмами

One-shot обучение часто путают с трансферным обучением и few-shot обучением. Трансферное обучение предполагает перенос признаков с большой модели на новую задачу, но обычно требует дообучения на новых данных. Few-shot является обобщением one-shot на случай нескольких (обычно 2–5) примеров и часто использует те же архитектуры. Zero-shot обучение не использует примеры вовсе, опираясь только на семантические описания классов (например, атрибуты или текстовые подсказки). One-shot занимает особое место как минимально возможный объём данных для обучения с учителем, при котором задача ещё остаётся разрешимой.

Источники

  • Koch G., Zemel R., Salakhutdinov R. Siamese Neural Networks for One-shot Image Recognition // ICML Deep Learning Workshop, 2015.
  • Vinyals O. et al. Matching Networks for One Shot Learning // NeurIPS, 2016.
  • Snell J., Swersky K., Zemel R. Prototypical Networks for Few-shot Learning // NeurIPS, 2017.
  • Finn C., Abbeel P., Levine S. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks // ICML, 2017.
  • Santoro A. et al. One-shot Learning with Memory-Augmented Neural Networks // ICML, 2016.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →