fbpx
  • Deep Claster — алгоритм глубокой кластеризации. Он почти достиг человеческой точности

    deep claster - кластеризация изображений

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

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

    Обучение без учителя

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

    Истинным решением может стать обучение без учителя с использованием изображений из интернета. Именно этот подход предлагают исследователи из Facebook AI Research. DeepCluster – это новейший метод кластеризации путем «крупномасштабного обучения» свёрточных нейронных сетей.

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

    Ранние работы

    Каждая из работ по рассматриваемой теме может быть отнесена к одной из категорий:

    • Нейросети с неконтролируемым обучением: к примеру, Yang и коллеги создали нейросеть, которая итеративно изучает отдельные особенности и их кластеры с повторяющейся структурой, а метод Bojanowski и Joulin изучает визуальные особенности на большом датасете при помощи функции потерь, которая позволяет сохранять информацию, проходящую через нейросеть.
    • Нейросети с самообучением: например, в своей работе Doersch и коллеги ставят в качестве предварительной задачи предсказание относительной позиции патчей особенностей на изображении, а Noroozi и Favaro обучают нейросеть переставлять эти патчи на изображении.
    • Генеративные модели: к примеру, Donahue и коллеги, а также Dumoulin и коллеги показали, что GAN с энкодером изучает визуальные особенности на довольно высоком уровне в сравнении с другими нейросетями.

    Deep Claster

    DeepCluster – это метод кластеризации, который итеративно группирует особенности с помощью стандартного алгоритма кластеризации (метод К-средних) и использует последовательные приписывания в качестве контролирующего фактора для обновления весов нейросети. Исследователи используют в работе метод К-средних из-за его простоты, однако, ничто не мешает применять другие методы кластеризации, такие как, например, Power Iteration Clustering (PIC).

    Images and their 3 nearest neighbors: query –> results from randomly initialized network –> results from the same network after training with DeepCluster PIC
    Изображения и три наиболее сходных с каждым из них: исходные изображения (Query), результаты работы случайно инициализированной нейросети (Random), результаты той же нейросети после обучения с использованием DeepClustering PIC.

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

    Итак, давайте рассмотрим структуру предлагаемой модели кластеризации детально.

    Обзор метода

    Результат случайных (random) сверточных сетей тесно связан с их структурой, который получает предысторию на входном сигнале. Идея DeepCluster — в использовании этого слабого сигнала для усиления разрешающей способности сверточной сети.

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

    DeepCluster
    Схема алгоритма

    Такой тип чередующихся действий подвержен тривиальным решениям (trivial solutions), о которых мы кратко поговорим сейчас:

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

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

    Модель не выглядит сложной. Давайте проверим её производительность на трансферных задачах и задачах ImageNet классификации.

    Результаты

    Ниже представлены предварительные результаты:

    •  (a) Эволюция нормализованной взаимной информации (Normalized Mutual Information) между кластерными присвоениями и ImageNet метками во время тренировки;
    •  (b) Развитие стабильности модели на протяжении тренировочной сессии;
    •  (в) Влияние количества кластеров k на качество модели (k = 10000 показывает наилучший результат)
    Preliminary studies
    Результаты предварительного исследования

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

    Filter visualization and top 9 activated images for target filters in the layers conv1, conv3, and conv5 of an AlexNet trained with DeepCluster
    Визуализация фильтров и первые 9 активированных изображений для целевого фильтра в слоях conv1, conv3 и conv5 в AlexNet, обученной с DeepCluster.

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

    Ниже можно наблюдать результаты последних сверточных сетей. Стоит заметить, в этот раз используется архитектура VGG-16 вместо AlexNet.

    Filter visualization and top 9 activated images for target filters in the last convolutional layer of VGG-16 trained with DeepCluster
    Визуализация фильтров и первые 9 активированных изображений для целевого фильтра в последнем сверточном слое в VGG-16, обученном с DeepCluster.

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

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

    Top 9 activated images for target filters in the last convolutional layer
    Первые 9 активированных изображений для выбранного фильтра в сверточном слое.

    Сравнение

    Чтобы сравнить DeepCluster с остальными методами, исследователи тренируют линейный классификатор поверх различных замороженных сверточных слоев. Таблица ниже показывает точность классификации различных современных подходов в ImageNet и Places датасетах.

    В ImageNet DeepCluster превосходит в результатах современные подходы с conv2 до conv5 слоев на 1-6%. Плохой результат на первом слое связан, возможно, с Собель-фильтрацией, отбрасывающей цвет. Заметим, различие в результате между DeepCluster и AlexNet с учителем возрастает с 4% в conv2-conv3 слоях до 12.3% в conv5. Этот факт показывает, где AlexNet хранит большую часть информации о классе.

    Table 1. Linear classification on ImageNet and Places using activations from the convolutional layers of an AlexNet as features
    Таблица 1. Линейная классификация на датасетах ImageNet и Places, использующая активационные функции из сверточных слоев AlexNet в качестве признаков

    Такой же эксперимент на датасете Places показывает, что DeepCluster даёт признаки на conv3-conv4, сравнимые с теми, которые получены при тренировке с ImageNet метками. Это означает, что в случаях, когда целевая задача достаточно далека от покрываемой ImageNet области, метки менее важны.

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

    Table 2: Comparison of the proposed approach to state-of-the-art unsupervised feature learning on classification, detection, and segmentation on Pascal VOC
    Таблица 2. Сравнение предложенных подходов для современного признакового обучения без учителя для задач классификации, детектирования и сегментации на Pascal VOC.

    Резюме

    Предложенный командой исследователей из Facebook AI Research метод DeepCluster позволяет достичь результатов, которые существенно превосходят существующие методы при решении каждой стандартной трансферной задачи. Более того, при тестировании на Pascal VOC 2007 для задачи детектирования при хорошей регулировке параметров DeepCluster показывает результат лишь на 1.4% ниже верхней линии обучения с учителем.

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