Эта статья посвящена разбору научной работы «SCAN: Semantic Clustering by Adopting Nearest Neighbors», представленной ведущим YouTube-канала Янником Кильхером (Yannic Kilcher). В центре внимания — алгоритм, позволяющий нейросетям классифицировать изображения по категориям (например, отделять кошек от собак), полностью игнорируя размеченные метки данных и обучаясь «с нуля» на основе структуры самих изображений.
🧠 Проблема классификации без учителя 2:20
Традиционное глубокое обучение опирается на «ground truth» — размеченные вручную данные, где человек заранее указал, что на картинке изображена лягушка или самолет. Янник Кильхер (Yannic Kilcher) ставит вопрос: можно ли автоматически классифицировать изображения, если мы не только не имеем меток, но даже не знаем априори, какие классы существуют в наборе данных?
С технической точки зрения такая задача сводится к кластеризации — объединению схожих точек данных в группы . Однако стандартная кластеризация (например, k-means) на основе яркости пикселей не работает для сложных изображений: два разных кота могут иметь меньше общего в пиксельном пространстве, чем белый кот и белый холодильник .
Предыдущие попытки, такие как метод Deep Cluster, использовали итеративный подход:
- Сеть извлекает признаки.
- Алгоритм группирует их.
- Эти группы объявляются «псевдо-метками» для переобучения сети.
По мнению ведущего, проблема таких методов в том, что они часто зацикливаются на низкоуровневых признаках (цвет пикселя в углу), игнорируя семантический смысл объекта . Новый алгоритм SCAN предлагает разделить обучение на три независимых этапа, чтобы избежать этой ловушки .
🛠 Трехэтапный метод SCAN 9:28
1. Самообучаемое представление (Self-Supervised Learning)
На первом этапе задача состоит в том, чтобы заставить нейросеть «понимать» контент, не используя метки. Используется метод Pretext Task .
- Берется исходное изображение, к нему применяются трансформации (T): случайное кадрирование (random crop), поворот или изменение цвета .
- И оригинал, и трансформированная версия пропускаются через одну и ту же сеть $\Phi_{\theta}$.
- Сеть обучается минимизировать расстояние (Euclidean distance или inner product) между их скрытыми представлениями .
- Логика: если мы обрезали картинку так, что нижний правый угол исчез, сеть больше не может полагаться на него. Она вынуждена искать инвариантные признаки — те, что остаются неизменными при любых искажениях (форму ушей, текстуру шерсти) .
2. Семантическая кластеризация через соседей (SCAN) 13:39
После того как получены хорошие признаки, авторы вводят новую сеть $\Phi_{\eta}$. Вместо того чтобы просто сравнивать картинку с её искаженной копией, они сравнивают её с «соседями» по набору данных.
- Для каждого изображения в наборе находятся k ближайших соседей (по умолчанию $k=5$) в пространстве признаков, полученном на первом этапе .
- Целевая функция заставляет сеть выдавать одинаковые прогнозы для изображения и его ближайших соседей .
- Сеть предсказывает распределение вероятностей по $C$ классам (количество классов $C$ задается как гиперпараметр или оценка сверху) .
- Энтропийный член: чтобы сеть не «схлопнулась» и не отправила все картинки в один-единственный кластер, в формулу добавляется максимизация энтропии. Это заставляет алгоритм распределять изображения по кластерам максимально равномерно .
3. Саморазметка и уточнение (Self-labeling) 28:04
Финальный этап — «тонкая настройка» (fine-tuning). Сеть использует свои собственные предсказания из второго этапа как временные метки.
- Алгоритм фильтрует данные, оставляя только те изображения, в которых сеть максимально уверена (порог уверенности около 0.7) .
- На этих «уверенных» данных сеть дообучается через стандартную кросс-энтропийную потерю (cross-entropy loss) .
- Это позволяет провести более четкие границы между классами, которые на этапе кластеризации могли быть «размытыми» .
📊 Результаты и эффективность 33:57
На наборе данных CIFAR-10 (10 классов) метод SCAN показал точность 83.5% , а при использовании дополнительных технических приемов — до 88.6% . Для сравнения: простая кластеризация k-means выдает лишь около 35.9% .
Основные наблюдения:
- ImageNet: Алгоритм протестировали на подмножествах в 50, 100 и 200 классов. При 50 классах точность составила 81%, что лишь на 5% хуже, чем обучение с учителем (86%) .
- Корреляция конфиденциальности: Янник Кильхер (Yannic Kilcher) отмечает, что чем более уверена сеть в своем предсказании, тем выше реальная точность этого предсказания. Это подтверждает, что сеть действительно находит внутреннюю структуру данных, а не просто гадает .
- Ошибка собаки: Матрица путаницы (confusion matrix) на ImageNet показывает, что сеть часто путает разные породы собак между собой, но почти никогда не путает собаку с насекомым. Это говорит о том, что сеть формирует «суперкластеры» по биологическому принципу .
🧪 Скрытые сложности и критика ведущего 41:10
Несмотря на впечатляющие результаты, Янник Кильхер (Yannic Kilcher) указывает на несколько критических нюансов метода.
- Проблема избыточности классов: Если мы заставим сеть искать 20 классов там, где их всего 10 (overclustering), точность падает . Ведущий выразил удивление этим фактом, так как теоретически более мелкое деление при «мягкой» оценке должно было бы давать больше шансов на попадание в верную категорию .
- Хрупкость порогов: Третий этап (саморазметка) сильно зависит от порога уверенности. Если установить его слишком низким, сеть начнет обучаться на ошибочных метках, что приведет к деградации модели .
- Неявное использование меток: Ведущий подчеркивает: хотя алгоритм не видит меток во время обучения, сами исследователи используют метки, чтобы подбирать гиперпараметры (архитектуру, типы аугментации, коэффициенты регуляризации) . Янник Кильхер (Yannic Kilcher) считает сомнительным утверждение, что метод будет работать так же эффективно в ситуации «полного неведения», когда у нас нет тестового набора для проверки качества подбора параметров .
Тем не менее, автор признает работу «очень крутой», так как она успешно объединяет инструменты самообучения и кластеризации, наглядно показывая, что семантику объектов можно извлечь из визуальных данных без прямого участия человека .