# Янник Килчер разобрал метод Noisy Student для ImageNet

Источник: https://www.youtube.com/watch?v=q7PjrmGNx5A
Канал: Yannic Kilcher
Опубликовано: 29.07.2020

---

В новом видеоролике известный ИИ-исследователь Янник Килчер подробно разбирает фундаментальную научную работу «Self-training with Noisy Student improves ImageNet classification» (Самообучение с использованием зашумленного ученика улучшает классификацию ImageNet), авторами которой являются сотрудники Google и Университета Карнеги — Меллона. Этот подход, объединяющий идеи полуавтоматического обучения (semi-supervised learning) и дистилляции знаний, позволил значительно повысить точность классификации изображений на популярном датасете ImageNet. По мнению автора канала, исследование наглядно демонстрирует, как грамотное внедрение искусственного шума и огромных объемов неразмеченных данных способно вывести базовые модели на качественно новый уровень эффективности и устойчивости.

## 🌐 Смена парадигмы: от трансферного к полуавтоматическому обучению
[[JUMP:01:07]]

Для понимания сути предложенного метода Янник Килчер предлагает сопоставить три ключевых подхода в машинном обучении: классическое контролируемое обучение (supervised learning), полуавтоматическое обучение (semi-supervised learning) и трансферное обучение (transfer learning). В стандартном контролируемом обучении исследователь всегда имеет фиксированный набор данных, где каждому объекту (например, изображению кошки) строго сопоставлена правильная метка класса. 

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

Трансферное обучение решает немного другую задачу, когда сам целевой размеченный набор данных крайне мал, поскольку сложно получить не только метки, но и сами исходные файлы. В качестве примера ведущий приводит медицинские снимки: КТ-исследования дороги в производстве и дефицитны, поэтому модель сначала обучают на более доступных рентгеновских снимках (x-ray), а затем дообучают (fine-tune) на КТ.



Метод Noisy Student находится на стыке этих дисциплин, но переворачивает классическую логику трансферного обучения. В данном случае у исследователей уже есть полноценный, огромный и качественный размеченный датасет ImageNet. Однако авторы статьи предлагают не ограничиваться им, а подтянуть колоссальный массив совершенно случайных, неразмеченных картинок, просто скачанных из интернета. Главная цель эксперимента — понять, можно ли за счет этой хаотичной внешней массы улучшить показатели модели на исходном, чистом проверочном наборе ImageNet.

## ⚙️ Алгоритм Noisy Student: как ученик превосходит учителя
[[JUMP:05:18]]

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

1. На первом этапе берется стандартный датасет ImageNet со всеми его истинными метками, и на нем в обычном контролируемом режиме обучается базовая нейросеть, получающая статус «модели-учителя» (teacher model).
2. На втором этапе обученный учитель берет гигантский массив неразмеченных картинок из интернета и самостоятельно генерирует для них предсказания — так называемые псевдометки (pseudo-labels). Если учитель видит на случайном фото из сети кошку, он присваивает этому кадру метку «кошка», формируя огромный симулированный датасет.
3. На третьем этапе создается новая нейросеть — «модель-ученик» (student model). Она обучается с нуля на объединенном массиве: исходном ImageNet и сгенерированном учителем гигантском наборе данных.



На первый взгляд такая схема кажется парадоксальной и лишенной смысла: как ученик может превзойти учителя, если вся его обучающая выборка построена исключительно на тех знаниях, которыми учитель уже обладал? Ученик не получает никакой новой внешней истинной разметки. Тем не менее, в экспериментах Google ученик стабильно демонстрирует более высокую точность, чем его наставник.

Янник Килчер подчеркивает, что этот прорыв достигается за счет двух фундаментальных факторов:

* **Архитектурное превосходство:** модель-ученик намеренно создается более крупной, с большим числом параметров, чем учитель. Это позволяет ей вмещать в себя и обрабатывать куда более сложные скрытые закономерности.
* **Искусственный шум:** в процессе обучения ученика авторы целенаправленно и жестко искажают входные данные и внутреннюю структуру самой сети.

## 🧪 Три всадника шума: аугментация, дропаут и стохастическая глубина
[[JUMP:10:56]]

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

### 1. Продвинутая аугментация данных (RandAugment)
Входящие картинки подвергаются случайному кадрированию (random cropping), поворотам, искажению цветовой гаммы и другим деформациям. Это заставляет ученика вырабатывать инвариантность к масштабу и положению объекта. Нейросеть учится понимать, что кошка остается кошкой, даже если ее приблизили, развернули или изменили освещение вокруг нее.

### 2. Дропаут (Dropout)
В процессе обучения из структуры ученика случайным образом выключаются отдельные синаптические связи. Этот классический прием регуляризации не позволяет сети полагаться на конкретные узкие цепочки нейронов, стимулируя создание более устойчивых и обобщающих признаков.

### 3. Стохастическая глубина (Stochastic depth)
Этот метод представляет собой dropout, но примененный не к отдельным нейронам, а к целым слоям нейросети. Во время тренировочного прохода алгоритм может случайным образом полностью исключить из вычислений целый вычислительный блок. 

Янник Килчер детально поясняет механику этого процесса для современных сверточных систем, построенных на базе остаточных сетей (ResNets). Архитектура таких слоев состоит из двух параллельных путей: вычислительного блока и прямого сквозного канала (residual connection), который без изменений переносит исходный сигнал вперед. 



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

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

## 📊 Тонкости разметки: жесткие метки против мягких и фильтрация данных
[[JUMP:16:09]]

В процессе генерации псевдометок исследователи выявили несколько важных закономерностей. Самое главное — модель-учитель во время разметки интернетовского датасета должна работать в своем идеальном, абсолютно «чистом» режиме, без какого-либо внутреннего шума (без dropout и на исходных, недеформированных изображениях). Зашумление меток со стороны учителя, как показала практика, лишь вредит результату.

Сами псевдометки могут быть двух типов:

* **Жесткие (hard) метки:** когда берется только один класс с наивысшей вероятностью (например, строго индекс класса №3) — именно так размечены классические ручные выборки.
* **Мягкие (soft) метки:** когда ученику передается полное непрерывное распределение вероятностей, посчитанное учителем (например, 90% вероятности за то, что это кошка, 5% — за собаку, 5% — за птицу).

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

Кроме того, при скачивании сотен миллионов случайных изображений из сети неизбежно возникает проблема несоответствия доменов (out-of-domain). В ImageNet содержится ровно 1000 жестко заданных классов, а в интернете можно встретить абсолютно все что угодно. Чтобы очистить выборку, авторы внедрили два инженерных трюка:

* **Фильтрация по уверенности:** если учитель, выдавая предсказание для картинки, показывает низкую степень уверенности (размытое распределение вероятностей), это изображение отбраковывается как не входящее в целевой домен.
* **Балансировка классов:** поскольку в ImageNet все классы распределены равномерно, неразмеченный гигантский датасет тоже искусственно выравнивают. Если для какого-то класса картинок не хватает, их дублируют; если же их слишком много, то отбираются только те экземпляры, в которых учитель уверен сильнее всего.

## 📈 Результаты экспериментов на архитектурах EfficientNet
[[JUMP:25:29]]

Для проведения практических тестов исследователи взяли за основу современное семейство нейросетей EfficientNet. В качестве базового учителя была выбрана модель EfficientNet-B7, содержащая 66 миллионов параметров. На стандартном ImageNet она показывает точность распознавания Top-1 на уровне около 85%.

Далее ученые спроектировали огромную модель-ученика — EfficientNet-L2, которая насчитывает внушительные 480 миллионов параметров. Янник Килчер обращает внимание на показательную деталь: если просто взять эту гигантскую сеть L2 и обучить ее в стандартном режиме только на классическом ImageNet, то прирост точности составит всего 0,5%. Однако если применить к ней алгоритм Noisy Student с привлечением 300 миллионов неразмеченных изображений, то точность взлетает до 88,4% — то есть чистый выигрыш составляет более 3%.

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

При этом на каждой итерации разработчики последовательно увеличивали размер пакета данных (batch size) для неразмеченных картинок. На первом этапе размер неразмеченного батча превышал размеченный в 14 раз, а на финальном — уже в 28 раз. Каждая последующая итерация приносила свои плоды, хотя и с эффектом затухания полезного действия:

1. Первая итерация (L2 с батчем 14х) дала мощный скачок примерно на 2% относительно базовых показателей.
2. Вторая итерация (переобучение L2 с тем же размером пакета) добавила еще немного эффективности.
3. Третья итерация (L2 с батчем 28х) выжала финальные 0,3% точности.

## 🛡️ Борьба за устойчивость: искажения ImageNet-C и состязательные атаки
[[JUMP:29:55]]

Помимо сухих цифр стандартного валидационного набора, Noisy Student продемонстрировал феноменальные результаты в тестах на общую устойчивость к агрессивной внешней среде. Модель проверили на специальном бенчмарке ImageNet-C, где все изображения подвергнуты жесткому размытию, зашумлению, цифровым артефактам и геометрическим искажениям. Ведущий демонстрирует пример с детскими качелями, которые из-за наложенных шумов человеческий глаз едва способен рассмотреть. Обычные нейросети полностью пасуют перед такими тестами, тогда как зашумленный ученик с легкостью выдает верные предсказания.

Сходная картина наблюдается и при состязательных атаках (adversarial perturbations). При атаке методом FGSM (Fast Gradient Sign Method) точность стандартной модели стремительно падает практически до нуля при минимальном увеличении силы искажения (параметра эпсилон). Noisy Student удерживает планку качества несравнимо дольше.

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

Однако масштабное зашумление Noisy Student в сочетании со стохастической глубиной превращает эти точки в колоссальные, широкие сферы устойчивости. Decision boundary (граница принятия решений) отодвигается далеко в сторону, благодаря чему любые тестовые флуктуации или целенаправленные хакерские микроискажения все равно оставляют измененную точку внутри правильного сегмента.

Впрочем, под воздействием сверхмощной состязательной атаки PGD (Projected Gradient Descent) с 10 итерациями и уровнем эпсилон равным 16 магия Noisy Student тоже начинает угасать: точность падает с 1,1% до 4,4%. Как иронизирует Килчер, 1,1% — это состояние клинической смерти модели (уровень случайного угадывания), а 4,4% — лишь едва заметные признаки жизни, но в масштабах строгой математики даже четырехкратный перевес на таком дне считается весомым достижением.

## 🔍 Восемь ключевых выводов и взгляд автора на «миллиард трюков»
[[JUMP:34:29]]

В финальной части статьи авторы приводят результаты масштабного абляционного исследования (ablation study), поочередно отключая разные компоненты системы, чтобы выявить, что именно вносит наибольший вклад в успех. На основе этих тестов Янник Килчер формулирует 8 главных выводов работы:

1. **Качество учителя имеет значение:** использование максимально точной и крупной архитектуры на позиции учителя всегда гарантирует лучший старт и итоговый результат для ученика.
2. **Фактор масштаба:** для достижения реального прорыва критически необходимы действительно огромные объемы сторонних неразмеченных данных.
3. **Преимущество мягких меток:** мягкие псевдометки (вероятностные распределения) драматически превосходят жесткие маркеры, особенно при работе с объектами, выходящими за рамки исходного домена.
4. **Размер ученика:** ученик обязательно должен быть большим. В отличие от классической дистилляции знаний, где большую сеть сжимают в маленькую ради экономии ресурсов, здесь цель — расширение емкости модели.
5. **Балансировка критична для малых форм:** выравнивание распределения неразмеченных данных оказывает колоссальную помощь, если вы обучаете относительно скромные модели.
6. **Совместное обучение эффективнее конвейера:** одновременная тренировка на размеченном и неразмеченном массивах работает значительно лучше, чем классическая двухэтапная схема «сначала предобучение без учителя, затем fine-tuning».
7. **Доминирование неразмеченного батча:** гигантское соотношение размеров пакетов в пользу неразмеченных данных позволяет модели дольше удерживать фокус на общих признаках и достигать пиковой точности.
8. **Отказ от инициализации весов:** обучение ученика с нуля (from scratch) зачастую дает лучший результат, чем попытка инициализировать его веса готовыми весами учителя.

Последний пункт вызывает у Янника особый теоретический интерес. Логично предположить, что если архитектуры учителя и ученика совпадают (на 2-й или 3-й итерации), то их оптимальные точки в энергетическом ландшафте весов (weight space minima) должны находиться рядом. Казалось бы, старт из точки оптимума учителя должен сократить путь, но практика показывает, что это мешает ученику находить новые, гораздо более глубокие и устойчивые минимумы, отвечающие за общую робастность системы. Модели буквально требуется преодолеть высокий энергетический барьер, что невозможно без полной перезагрузки весов.

В заключение Килчер делится личным мнением о характере современных ИИ-публикаций. Обычно он весьма критически настроен по отношению к огромным технологическим конвейерам, которые задействуют «50 миллиардов инженерных трюков», из-за чего становится невозможно понять, за счет чего именно выросла точность. Однако данная работа корпорации Google, по его признанию, заслуживает глубокого уважения именно благодаря безупречно проведенному абляционному анализу. Авторы честно и пошагово отключили каждый винтик своей системы, наглядно доказав академическому сообществу важность и уместность абсолютно каждого внедренного элемента.