Разбор алгоритма SCAN: трехэтапная кластеризация изображений без учителя

Yannic Kilcher 50,4 тыс. 45 мин 4 мин 03.06.2020
Главное

Эта статья посвящена разбору научной работы «SCAN: Semantic Clustering by Adopting Nearest Neighbors», представленной ведущим YouTube-канала Янником Кильхером (Yannic Kilcher). В центре внимания — алгоритм, позволяющий нейросетям классифицировать изображения по категориям (например, отделять кошек от собак), полностью игнорируя размеченные метки данных и обучаясь «с нуля» на основе структуры самих изображений.

🧠 Проблема классификации без учителя 2:20

Традиционное глубокое обучение опирается на «ground truth» — размеченные вручную данные, где человек заранее указал, что на картинке изображена лягушка или самолет. Янник Кильхер (Yannic Kilcher) ставит вопрос: можно ли автоматически классифицировать изображения, если мы не только не имеем меток, но даже не знаем априори, какие классы существуют в наборе данных?

С технической точки зрения такая задача сводится к кластеризации — объединению схожих точек данных в группы . Однако стандартная кластеризация (например, k-means) на основе яркости пикселей не работает для сложных изображений: два разных кота могут иметь меньше общего в пиксельном пространстве, чем белый кот и белый холодильник .

Предыдущие попытки, такие как метод Deep Cluster, использовали итеративный подход:

  1. Сеть извлекает признаки.
  2. Алгоритм группирует их.
  3. Эти группы объявляются «псевдо-метками» для переобучения сети.

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

🛠 Трехэтапный метод SCAN 9:28

1. Самообучаемое представление (Self-Supervised Learning)

На первом этапе задача состоит в том, чтобы заставить нейросеть «понимать» контент, не используя метки. Используется метод Pretext Task .

2. Семантическая кластеризация через соседей (SCAN) 13:39

После того как получены хорошие признаки, авторы вводят новую сеть $\Phi_{\eta}$. Вместо того чтобы просто сравнивать картинку с её искаженной копией, они сравнивают её с «соседями» по набору данных.

3. Саморазметка и уточнение (Self-labeling) 28:04

Финальный этап — «тонкая настройка» (fine-tuning). Сеть использует свои собственные предсказания из второго этапа как временные метки.

📊 Результаты и эффективность 33:57

На наборе данных CIFAR-10 (10 классов) метод SCAN показал точность 83.5% , а при использовании дополнительных технических приемов — до 88.6% . Для сравнения: простая кластеризация k-means выдает лишь около 35.9% .

Основные наблюдения:

🧪 Скрытые сложности и критика ведущего 41:10

Несмотря на впечатляющие результаты, Янник Кильхер (Yannic Kilcher) указывает на несколько критических нюансов метода.

  1. Проблема избыточности классов: Если мы заставим сеть искать 20 классов там, где их всего 10 (overclustering), точность падает . Ведущий выразил удивление этим фактом, так как теоретически более мелкое деление при «мягкой» оценке должно было бы давать больше шансов на попадание в верную категорию .
  2. Хрупкость порогов: Третий этап (саморазметка) сильно зависит от порога уверенности. Если установить его слишком низким, сеть начнет обучаться на ошибочных метках, что приведет к деградации модели .
  3. Неявное использование меток: Ведущий подчеркивает: хотя алгоритм не видит меток во время обучения, сами исследователи используют метки, чтобы подбирать гиперпараметры (архитектуру, типы аугментации, коэффициенты регуляризации) . Янник Кильхер (Yannic Kilcher) считает сомнительным утверждение, что метод будет работать так же эффективно в ситуации «полного неведения», когда у нас нет тестового набора для проверки качества подбора параметров .

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

💬 Цитаты

«Это безумно круто: кластеры получены без каких-либо меток из датасета ImageNet.»

Янник Кильхер (Yannic Kilcher) 00:26

«Выбор гиперпараметров алгоритма всё равно основан на знании меток, так что вопрос его работы в полном отсутствии данных остается открытым.»

Янник Кильхер (Yannic Kilcher) 45:07
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Self-Supervised Learning
Метод обучения ИИ, при котором модель сама создает себе задания из неразмеченных данных, например, восстанавливая часть изображения.
Cluster
Группа объектов с похожими признаками, выделенная алгоритмом автоматически.
Entropy
В данном контексте — мера разнообразия предсказаний; высокая энтропия не дает сети сваливать все данные в один класс.
Augmentation
Процесс изменения изображения (поворот, обрезка, шум) для создания вариативности обучающих данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Янник Кильхер SCAN Self-Supervised Learning ImageNet CIFAR-10