Полуконтролируемая классификация изображений с немаркированными данными

Опубликовано: 2022-03-11

Контролируемое обучение было в авангарде исследований в области компьютерного зрения и глубокого обучения за последнее десятилетие.

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

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

Помеченные и непомеченные изображения

Перенос обучения из предварительно обученных моделей

При отсутствии больших объемов размеченных данных мы обычно прибегаем к использованию трансферного обучения . Так что же такое трансферное обучение?

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

Трансферное обучение позволяет нам обучать модели на наборах данных размером от нескольких тысяч примеров и может обеспечить очень хорошую производительность. Перенос обучения с предварительно обученных моделей может быть выполнен тремя способами:

1. Извлечение признаков

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

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

Иерархическое представление: начальные уровни и более высокие уровни

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

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

2. Тонкая настройка

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

3. Двухэтапное трансферное обучение

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

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

Необходимость полуконтролируемых и неконтролируемых методов

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

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

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

Подходы с полууправлением показали более высокую производительность по сравнению с подходами с учителем в крупных тестах, таких как ImageNet. Знаменитая аналогия с тортом, предложенная Яном Лекуном, подчеркивает важность обучения без учителя:

Аналогия с тортом Янна Лекуна

Полуконтролируемое обучение

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

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

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

Генеративные методы

Генеративные методы - Автоэнкодеры: сети кодировщика и декодера

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

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

Точно так же другая форма генеративных сетей — генеративно-состязательные сети (GAN) — может использоваться для предварительной подготовки на немаркированных данных. Затем можно принять дискриминатор и дополнительно настроить его для задачи классификации.

Дискриминационные методы

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

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

Изучение относительного положения патчей изображения

Изучение относительного положения патчей изображения

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

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

Изучение геометрических преобразований, применяемых к изображениям

Изучение геометрических преобразований, применяемых к изображениям

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

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

Подходы, основанные на сходстве

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

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

Тройная потеря

Эксперимент

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

  • Набор данных . Он состоит из 128 000 помеченных примеров, половина из которых предназначена для обучения, а другая половина — для проверки. Кроме того, нам предоставляется 512 тыс. неразмеченных изображений. Всего данные содержат 1000 классов.
  • Неконтролируемая предварительная подготовка . AlexNet был обучен классификации вращения с использованием обширного дополнения данных для 63 эпох. Мы использовали гиперпараметры, задокументированные Rotnet в их статье.
  • Обучение классификатора . Признаки были извлечены из четвертого слоя свертки, и к нему были добавлены три полносвязных слоя. Эти слои были случайным образом инициализированы и обучены с запланированным уменьшением скорости обучения, а для прекращения обучения была реализована ранняя остановка.
  • Тонкая настройка всей сети . В конце концов, мы точно настроили сеть, обученную на всех размеченных данных. И экстрактор признаков, и классификатор, которые ранее обучались по отдельности, были точно настроены вместе с небольшой скоростью обучения в течение 15 эпох.

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

Эксперимент

Мы смогли получить уровень точности 82% для предварительного обучения классификации вращения. Для обучения классификатора максимальная точность 5% достигла значения около 46,24%, а точная настройка всей сети дала окончательную цифру 50,17%. Используя предварительное обучение, мы получили лучшую производительность, чем обучение с учителем, которое дает 40% точности в пятерке лучших.

Как и ожидалось, точность проверки снижается с уменьшением помеченных обучающих данных. Однако снижение производительности не так значительно, как можно было бы ожидать в контролируемых условиях. Уменьшение обучающих данных на 50 % с 64 примеров на класс до 32 примеров на класс приводит только к снижению точности проверки на 15 %.

Эксперимент

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

Подведение итогов

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


Дальнейшее чтение в блоге Toptal Engineering:

  • Наука о графических данных с помощью Python/NetworkX