Кластеризация изображений считается хорошо изученной областью машинного обучения. Однако, на самом деле, до сих пор не было сделано значимых попыток адаптировать этот подход к изучению визуальных особенностей на датасетах высокого разрешения.
Создание датасета ImageNet внесло огромный вклад в обучение сверточных нейронных сетей. Однако, датасет ImageNet не такой большой по современным меркам: он содержит всего лишь миллион изображений. Современные задачи машинного обучения требуют создания более крупных и разнообразных датасетов, содержащих миллиарды изображений.
Обучение без учителя
Можете ли Вы представить количество вручную сделанных меток, необходимых для такого датасета? Очевидно, что их требуется невероятно много. Замена меток необработанными метаданными не решет проблему, так как это приведет к отклонениям в визуальных представлениях с непредсказуемыми последствиями. Хуже недостатка данных только неверно размеченные данные.
Истинным решением может стать обучение без учителя с использованием изображений из интернета. Именно этот подход предлагают исследователи из Facebook AI Research. DeepCluster – это новейший метод кластеризации путем «крупномасштабного обучения» свёрточных нейронных сетей.
Авторы данного метода заявляют, что результирующая модель значительно превосходит все современные подходы к кластеризации по всем параметрам. Прежде, чем рассмотреть предлагаемый метод, обратимся к более ранним работам в этой области.
Ранние работы
Каждая из работ по рассматриваемой теме может быть отнесена к одной из категорий:
- Нейросети с неконтролируемым обучением: к примеру, Yang и коллеги создали нейросеть, которая итеративно изучает отдельные особенности и их кластеры с повторяющейся структурой, а метод Bojanowski и Joulin изучает визуальные особенности на большом датасете при помощи функции потерь, которая позволяет сохранять информацию, проходящую через нейросеть.
- Нейросети с самообучением: например, в своей работе Doersch и коллеги ставят в качестве предварительной задачи предсказание относительной позиции патчей особенностей на изображении, а Noroozi и Favaro обучают нейросеть переставлять эти патчи на изображении.
- Генеративные модели: к примеру, Donahue и коллеги, а также Dumoulin и коллеги показали, что GAN с энкодером изучает визуальные особенности на довольно высоком уровне в сравнении с другими нейросетями.
Deep Claster
DeepCluster – это метод кластеризации, который итеративно группирует особенности с помощью стандартного алгоритма кластеризации (метод К-средних) и использует последовательные приписывания в качестве контролирующего фактора для обновления весов нейросети. Исследователи используют в работе метод К-средних из-за его простоты, однако, ничто не мешает применять другие методы кластеризации, такие как, например, Power Iteration Clustering (PIC).
Такой подход имеет существенное преимущество перед другими самообучающимися нейросетями: он не требует специальных сигналов из output или дополнительной информации об областях изображения. DeepCluster показывает гораздо большую производительность в сравнении с ранее опубликованными методами, что вы увидите позднее.
Итак, давайте рассмотрим структуру предлагаемой модели кластеризации детально.
Обзор метода
Результат случайных (random) сверточных сетей тесно связан с их структурой, который получает предысторию на входном сигнале. Идея DeepCluster — в использовании этого слабого сигнала для усиления разрешающей способности сверточной сети.
Как показано на рисунке, метод подразумевает итеративную кластеризацию глубинных признаков и приписывание кластеру псевдо-меток для дальнейшего обучения параметров сети.
Такой тип чередующихся действий подвержен тривиальным решениям (trivial solutions), о которых мы кратко поговорим сейчас:
- Пустые кластеры. Автоматическое переприсвоение пустых кластеров решает эту проблему во время оптимизации методом K-средних.
- Тривиальная параметризация. Если большая часть картинок приписаны к нескольким кластерам, параметры будут дискриминировать исключительно среди них. Решение этой проблемы лежит в выборке картинок из равномерного распределения по всем классам или псевдо-меткам.
DeepCluster основан на стандартной AlexNet архитектуре с пятью сверточными и тремя полносвязными слоями. Чтобы удалить цвет и увеличить локальную контрастность, исследователи применяют фиксированную линейную трансформацию, основанную на фильтрах Sobel.
Модель не выглядит сложной. Давайте проверим её производительность на трансферных задачах и задачах ImageNet классификации.
Результаты
Ниже представлены предварительные результаты:
- (a) Эволюция нормализованной взаимной информации (Normalized Mutual Information) между кластерными присвоениями и ImageNet метками во время тренировки;
- (b) Развитие стабильности модели на протяжении тренировочной сессии;
- (в) Влияние количества кластеров k на качество модели (k = 10000 показывает наилучший результат)
Для оценки качества целевого фильтра, исследователи изучают входное изображение, которое максимизирует его функцию активацию. Рисунок внизу показывает визуализации фильтров и топ-9 активированных изображений из подвыборки в 1 миллион картинок из YFCC100M.
Более глубокие слои в сети захватывают соответственно более крупные текстурные структуры. Однако похоже, что некоторые фильтры в сверточных слоях лишь немного заменяют уже захваченные в прошлых слоях текстуры.
Ниже можно наблюдать результаты последних сверточных сетей. Стоит заметить, в этот раз используется архитектура VGG-16 вместо AlexNet.
Как можно видеть, обученные без учителя фильтры могут справляться с весьма сложными структурами.
Следующий рисунок показывает для выбранного фильтра первые 9 активированных изображений, которые выглядят семантически связанными. Фильтры в верхнем ряду отражают структуры, высоко коррелированные с целевым классом, тогда как фильтры в нижнем ряду срабатывают на похожие стили.
Сравнение
Чтобы сравнить DeepCluster с остальными методами, исследователи тренируют линейный классификатор поверх различных замороженных сверточных слоев. Таблица ниже показывает точность классификации различных современных подходов в ImageNet и Places датасетах.
В ImageNet DeepCluster превосходит в результатах современные подходы с conv2 до conv5 слоев на 1-6%. Плохой результат на первом слое связан, возможно, с Собель-фильтрацией, отбрасывающей цвет. Заметим, различие в результате между DeepCluster и AlexNet с учителем возрастает с 4% в conv2-conv3 слоях до 12.3% в conv5. Этот факт показывает, где AlexNet хранит большую часть информации о классе.
Такой же эксперимент на датасете Places показывает, что DeepCluster даёт признаки на conv3-conv4, сравнимые с теми, которые получены при тренировке с ImageNet метками. Это означает, что в случаях, когда целевая задача достаточно далека от покрываемой ImageNet области, метки менее важны.
Следующая таблица объединяет сравнения DeepCluster с другими подходами по обучению на признаках в трех задачах: классификация, детектирование, семантическая сегментация. Можно видеть, DeepCluster превосходит в качестве все предыдущие методы обучения без учителя на всех трёх задачах. Причем наибольший отрыв достигается в семантической сегментации.
Резюме
Предложенный командой исследователей из Facebook AI Research метод DeepCluster позволяет достичь результатов, которые существенно превосходят существующие методы при решении каждой стандартной трансферной задачи. Более того, при тестировании на Pascal VOC 2007 для задачи детектирования при хорошей регулировке параметров DeepCluster показывает результат лишь на 1.4% ниже верхней линии обучения с учителем.
Этот подход требует подробного описания входящих данных и предметно-ориентированных знаний. Это делает DeepCluster эффективной моделью для обучения глубоким представлениям специальных областей, когда не доступен размеченный датасет.