Машинное обучение очень успешно работает в приложениях, интенсивно использующих данные, но часто затрудняется, когда набор данных мал. Для решения этой проблемы было предложено обучение с небольшим количеством выстрелов (FSL). Он используется в различных областях компьютерного зрения, НЛП и т. д. Он приобрел популярность, потому что помогает делать прогнозы, используя ограниченное количество примеров с контролируемой информацией, то есть с небольшим количеством обучающих выборок. Мы можем использовать методы метаобучения, чтобы достичь обучения за несколько шагов. Цель обучения с несколькими выстрелами состоит в том, чтобы не позволить модели распознавать изображения в обучающем наборе, а затем обобщать его на тестовый набор. Вместо этого цель состоит в том, чтобы учиться, то есть Учиться учиться. Внутри FSL есть разные типы сетей — сиамские сети, прототипные сети и т. д.
Давайте разберемся с основной концепцией обучения за несколько выстрелов на примере. Мы играем в игру, в которой нам дается 3 карточки с изображением 3 фруктов. Это называется набором поддержки (рис. 1).
Рисунок 1. Изображения из трех карт, составляющих набор поддержки
И теперь, когда мы увидели эти 3 карточки, нам дали еще одну карточку и попросили определить фрукт на этой карточке. Это называется набором запросов (рис. 2). Мы можем легко определить, что это ананас, но для машин это может быть не так просто, поскольку, например, модель видела только фрукт сбоку, как на рисунке 1. Категория алгоритмов обучения с несколькими выстрелами имеет дело с такими случаями, когда у вас есть несколько помеченных примеров. Теперь, если, например, мы обучаем сеть на большом обучающем наборе с изображениями разных фруктов, но они не содержат изображений фруктов в опорном наборе. Здесь задача обучения состоит не в том, чтобы обнаруживать разные типы фруктов, а в том, чтобы изучить функцию подобия, которая фиксирует сходство и различия между разными фруктами. Мы можем настроить задачу обучения таким образом, чтобы модель научилась предсказывать, относятся ли два изображения к одному и тому же классу. Эта задача может быть задачей бинарной классификации 1 и 0, как показано в примере с использованием сиамских сетей на рисунке 3. Существует ряд функций потерь, которые мы можем использовать для обучения сиамских сетей, таких как бинарное пересечение -энтропия, контрастные потери и триплетные потери. Как только сеть изучит функцию сходства, модель сможет определить, какое изображение фруктовой карточки из трех в опорном наборе ближе всего к изображению карточки в наборе запросов (ананас), используя метрики расстояния, такие как косинусное или евклидово расстояние. Модель понимает, какой контент изображения карты в опорном наборе ближе к контенту в наборе запросов через оценки сходства.
Рисунок 2. Карточка с набором запросов
Рисунок 3: Простая сиамская сеть с двумя скрытыми слоями для бинарной классификации с логистическим предсказанием p. Структура сети реплицируется в верхней и нижней частях для формирования двойных сетей с общими весовыми матрицами на каждом уровне (источник: Сиамские нейронные сети для однократного распознавания изображений).
Пример, который мы только что изучили выше, представляет собой парадигму классификации N-way K-shot выстрелов. Здесь N классов составляют набор поддержки. Для каждого класса есть изображения с K-меткой. Имеется набор запросов, состоящий из Q изображений запросов. В нашем примере у нас было N = 3 класса, K = 1 (то есть 1 помеченное изображение для каждого класса) и Q = 1 (1 изображение запроса). Основная задача состоит в том, чтобы классифицировать изображения в наборе запросов, используя N классов, учитывая N * K изображений в наборе поддержки. Здесь, когда K = 1, мы называем это однократной классификацией. Набор поддержки и запросов — это жаргон в структуре метаобучения. В этом примере есть разница между обучающим набором и вспомогательным набором. Обучающий набор огромен и помогает в изучении функции сходства с использованием некоторой сети глубокого обучения (в данном примере, сиамских сетей), в то время как вспомогательный набор невелик и может предоставить некоторую дополнительную информацию во время вывода или помочь в точной настройке. классификатор. Эффективность прогнозирования модели зависит от N способов и K помеченных примеров. По мере увеличения числа способов модели становится все труднее предсказывать, а по мере увеличения K предсказание становится проще.
Читайте другие статьи по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от начального до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг. Вы также можете пройти обучение по науке о данных по запросу, где бы вы ни находились, с нашей платформой Ai+ Training. Подпишитесь также на нашу быстрорастущую публикацию на Medium, ODSC Journal, и узнайте, как стать писателем.