Предыдущая глава

Что такое few-shot learning (обучение, FSL)? Чем оно отличается от традиционной процедуры обучения с учителем?

Few-shot обучение представляет собой особый вид обучения с учителем для небольших тренировочных датасетов с очень низким отношением количества примеров на класс. В традиционном обучении с учителем модель тренируется, пробегаясь по тренировочному сету, при этом она всегда видит один и тот же фиксированный набор классов. В few-shot обучении мы работаем с опорным множеством, из которого формируем несколько тренировочных заданий. Из этих заданий мы собираем тренировочные эпизоды, где каждое тренировочное задание состоит из различных классов.

Датасеты и терминология

В процессе обучения с учителем мы обучаем модель на тренировочном сете и оцениваем ее работу на тестовом сете. Как правило, тренировочный сет содержит относительно большое число примеров каждого класса. Например, в контексте обучения с учителем датасет "Ирисы Фишера", состоящий из 50 примеров каждого класса, считается небольшим. В то же время, для моделей глубинного обучения даже такой датасет как MNIST, который содержит 5,000 тренировочных примеров каждого класса, считается очень маленьким.

Во few-shot обучении количество примеров на класс гораздо меньше. Когда мы обозначаем few-shot задачу обучения, мы обычно используем термин N\text{-way} K\text{-shot}, где N обозначает количество классов, а K обозначает количество примеров на класс. Наиболее распространёнными конфигурациями задач являются K=1 или K=5. Так, например, в задаче 5\text{-way} 1\text{-shot} будет использоваться 5 различных классов с всего лишь одним примером на каждый. Рисунок 1.1 демонстрирует комбинацию 3\text{-way} 1\text{-shot}, чтобы проиллюстрировать эту концепцию с примером поменьше.

Рисунок 1.1: Тренировочные задания во few-shot обучении
Рисунок 1.1: Тренировочные задания во few-shot обучении

В процессе few-shot обучения модель не просто адаптируется к тренировочному сету, а скорее "учится учиться". В отличие от традиционного обучения с учителем, few-shot обучение использует опорный сет вместо тренировочного. Из этого опорного сета затем выбираются тренировочные задания, которые имитируют реальные ситуации, с которыми модель может столкнуться во время прогнозирования. Каждое тренировочное задание сопровождается изображением-запросом, которое необходимо классифицировать. Модель тренируется на нескольких таких заданиях из опорного сета. Такой набор тренировочных заданий называется эпизодом.

Далее, во время валидации, модель сталкивается с новым набором классов, отличными от тех, которые она видела в процессе обучения. Классы, использованные для обучения, также называются базовыми классами, а опорный сет во время обучения часто называется базовым сетом. Задача модели - классифицировать изображения-запросы. Тестовые задачи схожи с тренировочными, за исключением того, что классы представленные во время валидации, не пересекаются с базовыми, как показано на Рисунке 1.2.

Рисунок 1.2: Классы встречающиеся во время обучения и валидации
Рисунок 1.2: Классы встречающиеся во время обучения и валидации

Как показано на Рисунке 1.2, во время обучения опорный сет и сет запросов содержат изображения одного и того же класса, но в разных вариациях. То же самое верно и для валидации. Однако, стоит заметить, что классы из опорного сета и сета запросов на этапе валидации отличаются от тех, которые были представлены во время обучения.

Существует множество разных подходов к few-shot обучению. Наиболее популярным является мета-обучение, при котором модель обучается путем обновления своих параметров таким образом, чтобы она могла успешно адаптироваться к новой задаче. Верхнеуровнево, одной из стратегий few-shot обучения может быть обучение модели, которая генерирует такие эмбеддинги, где мы можем легко найти целевой класс с помощью алгоритма ближайших соседей среди изображений в опорном сете. Рисунок 1.3 демонстрирует этот подход.

Рисунок 1.3: Обучение генерации эмбеддингов, подходящих для классификации
Рисунок 1.3: Обучение генерации эмбеддингов, подходящих для классификации

Модель учится генерировать хорошие эмбеддинги из опорного сета для классификации изображения-запроса за счет поиска наиболее похожего вектора-эмбеддинга.

Комментарии (0)