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

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

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

Прежде чем перейти к технологиям и принципам, лежащим в основе Few-Shot обучения, давайте немного повеселимся.

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

Вы научились различать двух животных из семейства Camelidae. Учитывая разницу в ушах, попробуйте угадать, какое животное изображено на изображении запроса ниже.

Вы, наверное, узнали, что это лама. Людям достаточно четырех образцов, чтобы отличить одно животное от другого, даже если эти животные похожи друг на друга. Но сможет ли компьютер справиться с такой задачей? Может ли машина сделать соответствующий прогноз, если класс состоит из двух выборок?

Задача более сложная, чем обычная классификация объектов, потому что из-за отсутствия выборок невозможно обучить глубокую нейронную сеть с нуля. Вот тут-то и пригодится обучение с минимальными затратами.

Что такое кратковременное обучение?

Отправной точкой разработки приложений для машинного обучения является набор данных, и чем больше данных, тем лучше результат. Благодаря получению большого количества данных модель становится более точной в прогнозах. Однако в случае обучения с несколькими выстрелами (FSL) нам требуется почти такая же точность с меньшим количеством данных. Такой подход исключает высокие затраты на обучение модели, необходимые для сбора и маркировки данных. Также, применяя FSL, мы получаем низкую размерность данных и сокращаем вычислительные затраты.

Обратите внимание, что FSL можно упомянуть как низкошаровое обучение (LSL), и в некоторых источниках это составляет проблемы машинного обучения, где объем обучающего набора данных ограничен.

  • Проблемы FSL или LSL могут быть связаны с бизнес-проблемами. Это может быть распознавание объектов, классификация изображений, распознавание символов, НЛП или другие задачи. Машины необходимы для их выполнения и навигации в редких случаях посредством применения методов FSL с небольшим объемом обучающих данных. Яркий пример FSL связан с областью робототехники. В этом примере роботы учатся двигаться и ориентироваться после ознакомления с несколькими демонстрациями.
  • Если мы применим только одну демонстрацию для обучения робота, это будет одноразовая проблема машинного обучения. В отдельных случаях, когда не все классы помечены в обучении, мы сталкиваемся с нулевыми обучающими выборками для конкретных категорий и проблемой машинного обучения нулевого выстрела.

Подходы к краткосрочному обучению

Чтобы справиться с задачами машинного обучения, состоящими из нескольких снимков или за один раз, мы можем применить один из двух подходов.

1. Подход на уровне данных

Если не хватает данных для соответствия алгоритму и во избежание переобучения или недообучения модели, предполагается, что должны быть добавлены дополнительные данные. Этот алгоритм лежит в основе подхода на уровне данных. Внешние источники различных данных способствуют его успешной реализации. Например, для решения задачи классификации изображений без достаточного количества маркированных элементов для разных категорий требуется классификатор. Чтобы построить классификатор, мы можем применить внешние источники данных с похожими изображениями, даже если эти изображения не имеют меток и интегрированы в полуконтролируемом режиме.

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

В качестве альтернативы, новые образцы изображений могут быть синтезированы с использованием технологии генеративных состязательных сетей (GAN). Например, с помощью этой технологии новые изображения создаются с разных точек зрения, если в обучающем наборе имеется достаточно примеров.

2. Подход на уровне параметров

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

Ограничение пространства параметров помогает решить проблемы, связанные с переобучением. Базовый алгоритм обобщает определенное количество обучающих выборок. Другой метод улучшения алгоритма - направить его на обширное пространство параметров.

Основная задача - научить алгоритм выбирать наиболее оптимальный путь в пространстве параметров и давать целевые прогнозы. В некоторых источниках этот метод упоминается как метаобучение.

Мета-обучение использует модель учителя и модель ученика. Модель учителя сортирует инкапсуляцию пространства параметров. Модель студента должна уметь классифицировать обучающие примеры. Результат, полученный из модели учителя, служит основой для модельной подготовки ученика.

Применение быстрого обучения

Кратковременное обучение формирует базовый алгоритм для приложений в наиболее популярных областях (Рис. 1), а именно:

  • Компьютерное зрение
  • Обработка естественного языка
  • Робототехника
  • Обработка звука
  • Здравоохранение
  • Интернет вещей

В компьютерном зрении FSL выполняет задачи распознавания объектов и символов, классификации изображений и видео, определения местоположения сцены и т. Д. Область NLP выигрывает от алгоритма, применяя его для перевода, классификации текста, анализа настроений и даже прогнозирования уголовных обвинений. Типичный случай предусматривает генерацию символов, когда машины анализируют и создают рукописные символы после короткого обучения на нескольких примерах. Другие варианты использования включают отслеживание объектов, распознавание жестов, подписи к изображениям и визуальные ответы на вопросы.

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

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

Рисунок 1. Несколько примеров обучающих приложений

Давайте глубже погрузимся в то, как работает обучение по принципу «малое количество выстрелов», и рассмотрим результаты исследования MobiDev.

Исследование: быстрое обучение классификации изображений

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

Наборы данных

Прежде всего, нам потребовались небольшие обучающие данные, с которыми можно было бы поэкспериментировать. Для этого мы собрали набор данных изображений монет евро из открытых источников с 8 классами по количеству номиналов монет (рис. 2).

Рисунок 2. Классы изображений с примерами

Данные были разделены на 3 подмножества - поддержка (поезд), запрос (значение) и тест набор (можно просмотреть статистику по наборам данных. на рис. 3). Наборы данных поддержки и запросов были выбраны из одного распределения, тогда как набор тестовых данных был специально выбран из другого - изображения в тесте переэкспонированы / недоэкспонированы, наклонены, показывают монеты необычного цвета, содержат размытие и т. Д.

Эта подготовка данных была сделана для имитации производственной среды, в которой модель часто обучается и проверяется на данных хорошего качества из открытых наборов данных / извлечения данных из Интернета, тогда как данные из реальных условий эксплуатации обычно отличаются: пользователи могут захватывать изображения с помощью различных устройств, иметь плохие условия освещения и так далее. Надежное решение CV должно быть в состоянии решить эти проблемы в определенной степени, и наша цель - выяснить, как это будет работать при подходе к обучению с несколькими выстрелами, который предполагает, что у нас не так много данных для начала.

Рисунок 3. Поддержка и наборы запросов по сравнению с тестовым набором - тест поступает из другого распределения.

Наконец, статистику количества доступных выборок данных можно увидеть на Рис. 4. Нам удалось собрать 121 выборку данных, ~ 15 изображений на номинал монеты. Набор поддержки сбалансирован, каждый класс имеет равное количество образцов с до 4 изображений на класс для обучения с несколькими кадрами, в то время как наборы запросов и тестов немного несбалансированы и содержат прибл. 7 и 4 изображения на класс соответственно. Количество образцов в наборе: поддержка - 32, запрос - 57, тест - 31.

Рисунок 4. Статистика по наборам данных поддержки, запросов и тестов

Избранный подход

В выбранном подходе мы используем предварительно обученную сверточную нейронную сеть (CNN) в качестве кодировщика для получения сжатых представлений изображений. Модель способна создавать осмысленные представления изображений, которые отражают содержание изображений, поскольку она просмотрела большой набор данных и была предварительно обучена в ImageNet перед обучением по нескольким кадрам. Эти представления изображений можно затем использовать для обучения и классификации по нескольким кадрам.

Рисунок 5. Рабочий процесс базовой модели для получения матрицы поддержки

Несколько шагов, которые можно предпринять для повышения производительности алгоритма обучения за несколько шагов:

  1. Базовый уровень (рис. 5)
  2. Тонкая настройка
  3. Тонкая настройка + регуляризация энтропии
  4. Оптимизатор адама

Результаты эксперимента

С выбранной конфигурацией модели мы провели несколько экспериментов с собранными данными. Прежде всего, мы использовали базовую модель без какой-либо тонкой настройки или дополнительной регуляризации. Даже при этой настройке по умолчанию результаты были на удивление хорошими, как показано в Табл. 1: 0,66 / 0,62 взвешенный балл F1 для наборов запросов / тестов. Мы выбрали взвешенную метрику F1, поскольку она учитывает дисбаланс в размерах классов, а также объединяет оценки точности и отзыва.

На этом этапе мы экспериментировали с размером набора опор. Как и ожидалось, больший набор поддержки приводит к лучшей производительности запросов и тестов, хотя преимущества использования большего количества выборок уменьшаются по мере увеличения размера набора поездов (рис. 6).

Интересно, что при небольших размерах поддерживаемых наборов (1–3) наблюдаются случайные сдвиги в производительности запросов и тестовых наборов (один может улучшаться, а другой снижаться), однако при размере поддерживаемого набора 4 наблюдается улучшение для обоих наборов.

Рисунок 6. Влияние размера поддерживаемого набора на производительность запроса и теста с базовой моделью

Переходя от базовой модели, тонкая настройка с применением оптимизатора Adam для мини-пакетов из набора поддержки улучшает результаты на 2% как для запросов, так и для наборов тестов. Этот результат дополнительно улучшается на 1–4% при добавлении регуляризации энтропии в набор запросов в конвейер тонкой настройки.

Важно отметить, что точность улучшается вместе с взвешенной оценкой F1, а это означает, что модель работает лучше не только по классам, но и по отношению к общему количеству данных. Конечная точность 0,7 и 0,68 для наборов запросов и тестов означает, что модель, которая имела только 4 примера изображений для обучения, могла успешно угадать класс изображения в 40/57 примерах для запроса и 21/31 примерах для тестового набора.

Таблица 1. Немногочисленные показатели для наборов данных val / test

Глядя на матрицу неточностей в наборе запросов (рис. 7), мы можем заметить некоторые интересные тенденции. Во-первых, проще всего угадать категории моделей крупных монет номиналом 1 и 2 евро, потому что эти монеты состоят из двух частей: внутренней и внешней. Две части сразу же отличают их от мелких именных монет.

Кроме того, за 1 евро внутренняя часть изготовлена ​​из серого медно-никелевого сплава, а внешняя - из золотисто-никелевого сплава. В монетах 2 евро сплавы поменяны местами: медно-никелевый для внешней части и никель-латунный для внутренней части. Эта особенность позволяет легко отличить одну монету от другой.

Две сложные для понимания комбинации: 20 против 50 центов и 5 против 2 центов, поскольку модель часто путала эти монеты между собой. Это произошло из-за небольшой разницы между этими категориями: одинаковы цвет, форма монет и даже текстовые надписи. Единственное отличие - это собственное обозначение номинала монеты. Поскольку модель не была специально обучена на монетах, она не знает, на какие области монет следует обращать наибольшее внимание, и поэтому может недооценивать важность надписей с номинальной стоимостью.

Рисунок 7. Матрица неточностей в наборе запроса (прогнозы для набора следуют той же схеме)

Заключение

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

Мы выяснили, что для задачи классификации монет по изображению, состоящей из нескольких снимков, можно достичь точности ~ 70% при наличии всего 4 примеров изображений на номинал монеты.

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

Автор Максим Татарианц, архитектор решений AI в MobiDev.

Полная статья изначально опубликована на https://mobidev.biz и основана на исследовании технологии MobiDev.