В области компьютерного зрения долгое время доминировало обучение с учителем (supervised learning), требующее огромных размеченных датасетов. Однако группа исследователей (Вутер Ван Гансбеке, Симон Ван Дамм и др.) предложила метод SCAN, который позволяет классифицировать изображения, вообще не используя метки в процессе обучения. В своем видео Янник Килчер подробно разбирает статью «Learning To Classify Images Without Labels», объясняя, как комбинация самообучения, кластеризации и саморазмечивания позволяет достичь точности, сопоставимой с классическими методами.
🧠 Суть проблемы: как классифицировать то, что не названо? 2:20
Основной вопрос, который задают авторы исследования: можно ли автоматически классифицировать изображения без использования эталонных аннотаций (ground truth) и даже без предварительного знания самих классов .
Янник поясняет, что с чисто технической точки зрения «классификация без меток» эквивалентна задаче кластеризации. Если алгоритм сможет сгруппировать все фотографии собак в один кластер, а кошек — в другой, то отсутствие текстовых названий («собака», «кошка») не мешает оценке точности. При тестировании исследователи используют максимально «щедрый» подход: они сопоставляют полученные кластеры с реальными метками так, чтобы получить наивысший возможный балл точности . Если разделение данных алгоритмом совпадает с разделением, задуманным создателями датасета, метод считается успешным.
🛠 Трехэтапный алгоритм: от пикселей к семантике 1:06
Авторы статьи предлагают отойти от существующих методов (например, DeepCluster) и использовать трехступенчатый процесс, в котором обучение признаков и кластеризация разделены :
- Самоуправляемое обучение (Self-Supervised Learning): получение качественных представлений (embeddings).
- Семантическая кластеризация: использование метода ближайших соседей.
- Тонкая настройка через саморазметку (Self-labeling): уточнение результатов.
Этап 1: Борьба с «низкоуровневыми» ловушками 9:01
Предыдущие попытки классификации без учителя часто проваливались, потому что нейросети фокусировались на низкоуровневых признаках. По словам Янника, если в углу двух разных картинок есть синий пиксель неба, сеть может ошибочно объединить их в один класс, игнорируя то, что на одной изображен самолет, а на другой — дельфин .
Чтобы этого избежать, используется Self-Supervised Learning. Суть проста:
- Берется исходное изображение и его трансформированная версия (обрезанная, повернутая или измененная в цвете) .
- Нейросеть обучается минимизировать расстояние между ними в векторном пространстве.
- Цель — заставить сеть «игнорировать» конкретное положение пикселей и фокусироваться на высокоуровневых объектах. К моменту завершения этого этапа сеть уже умеет выделять важные признаки, не зная имен объектов .
Этап 2: Поиск «соседей» и кластеризация SCAN 13:39
Вместо того чтобы просто запустить стандартный алгоритм k-means поверх полученных векторов, авторы обучают новую сеть (SCAN). Для каждого изображения находятся 5 ближайших соседей в пространстве признаков, полученном на первом этапе .
Основная идея этого этапа: если два изображения являются «соседями» (похожи по признакам), они должны получить одинаковую метку класса . В функцию потерь (loss function) закладываются два условия:
- Консистентность: предсказания для изображения и его соседа должны максимально совпадать.
- Энтропия: распределение по классам должно быть равномерным по всему датасету. Это нужно, чтобы сеть не свалилась в тривиальное решение, назначив все картинки в один единственный кластер .
Янник признается, что во время разбора формул он сначала усомнился в утверждении авторов о том, что такая функция заставляет сеть выдавать «уверенные» (one-hot) предсказания. Однако после недолгих расчетов в прямом эфире он подтвердил правоту исследователей: из-за специфики нормализации векторов (L1-норма), максимизация скалярного произведения действительно поощряет сеть выбирать один конкретный класс, а не распределять вероятности между несколькими .
Этап 3: Саморазметка (Self-labeling) 28:04
На последнем этапе сеть начинает «учиться у самой себя». Она берет изображения, в классификации которых наиболее уверена (используется порог уверенности, например, 0.7), и использует эти предсказания как твердые метки для дальнейшего дообучения . Это позволяет уточнить границы между кластерами и отсеять «шумные» примеры.
📊 Результаты экспериментов: ImageNet и CIFAR-10 32:11
Результаты оказались впечатляющими, особенно на классических наборах данных:
- CIFAR-10: Метод SCAN достиг точности 83.5% и выше, вообще не видя меток . Для сравнения, простая кластеризация k-means дает лишь около 35%.
- ImageNet: На подмножестве из 50 классов точность составила 81% (supervised-базовый уровень для той же архитектуры — 86%). На 200 классах результат упал до 69%, что все равно остается высоким показателем для обучения без учителя .
Интересное наблюдение: визуализация кластеров показала, что сеть успешно группирует изображения по семантическим блокам. Например, она выделяет «собак», «насекомых» или «людей с рыбой» в отдельные группы без подсказок со стороны человека .
⚠️ Критика и «подводные камни» 44:11
Несмотря на восторг от технологического прорыва, Янник Kilcher указывает на важный нюанс — проблему выбора гиперпараметров.
По мнению ведущего, утверждение о «полном отсутствии меток» несколько лукаво. Исследователи подбирали архитектуру нейросети, типы аугментации данных (повороты, обрезки), количество соседей (K=5) и пороги уверенности, опираясь на итоговую точность .
«Все выборы гиперпараметров алгоритма были продиктованы знанием меток. Остается неясным, как этот метод покажет себя в реальной ситуации, когда меток нет совсем и выбирать параметры придется вслепую», — утверждает Янник .
Также обсуждалась проблема «избыточной кластеризации». Если заставить алгоритм искать 20 классов там, где их всего 10, точность падает, хотя теоретически должна расти из-за большей «щедрости» системы оценки. Это указывает на некоторую хрупкость предложенного подхода при масштабировании на неизвестное количество категорий .