# Янник Кильчер: «Weight Standardization станет новым стандартом для больших нейросетей»

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

---

В новом видео Янник Кильчер (Yannic Kilcher) разбирает научную работу, посвященную Weight Standardization — методу нормализации весов, который в сочетании с Group Normalization позволяет эффективно обучать нейросети даже на сверхмалых батчах. Этот подход решает давнюю проблему Batch Normalization, эффективность которой резко падает, если в распоряжении исследователя ограниченный объем памяти GPU.

## 🧠 Проблема Batch Norm и потребность в новом подходе
[[JUMP:0:00]]

На протяжении долгого времени Batch Normalization (BN) считался «золотым стандартом» в глубоком обучении [3:43]. Суть метода заключается в центрировании и стандартизации данных после каждого слоя нейросети, что значительно улучшает сходимость модели. Однако, как отмечает Янник Кильчер, у Batch Norm есть критический недостаток: метод крайне зависим от размера батча (количества изображений, обрабатываемых за один шаг) [3:56].

Основные тезисы автора о текущем состоянии нормализации:

*   В режиме больших батчей Batch Norm остается «королем» и показывает лучшие результаты [4:11].
*   При переходе к малым батчам (например, 1–2 изображения на GPU) точность BN резко снижается [1:36].
*   Group Normalization (GN) была предложена как альтернатива, не зависящая от размера батча, но в стандартных сценариях она часто уступает BN по итоговой точности [4:23].
*   Современные архитектуры, такие как Mask R-CNN или очень глубокие модели, часто требуют столько памяти, что исследователь вынужден использовать малые батчи, что делает проблему актуальной [2:05].

Weight Standardization (WS) предлагается как надстройка, которая делает Group Normalization конкурентоспособной и даже превосходящей Batch Norm во всех режимах работы [5:04].

## 🛠️ Механика Weight Standardization: нормализация весов вместо данных
[[JUMP:7:18]]

Янник Кильчер подробно объясняет принципиальное различие между WS и предыдущими методами. Если BN, Layer Norm и Group Norm работают в «пространстве данных» (нормализуют активации между слоями), то Weight Standardization работает непосредственно с ядрами (кернелами) свертки [9:03].

В сверточном слое ядро характеризуется четырьмя параметрами: высотой и шириной фильтра, количеством входных и выходных каналов [9:45]. Процесс Weight Standardization выглядит следующим образом:

1.  Берется один выходной канал.
2.  Рассматриваются все веса фильтров, которые участвуют в формировании этого канала [11:34].
3.  Эти веса центрируются (вычитается среднее значение) и масштабируются (делятся на стандартное отклонение) [13:25].

По мнению Янника Кильчера, это крайне важно, потому что в процессе обучения веса могут неконтролируемо расти. Это происходит из-за того, что последующие слои нормализации данных «прощают» модели слишком большие значения весов, так как всё равно приведут их к единичной дисперсии [12:14]. Однако большие веса увеличивают нестабильность градиентов и ухудшают ландшафт потерь.

## 💻 Пошаговое внедрение Weight Standardization
[[JUMP:12:56]]

В рамках **tech_tutorial** Янник описывает алгоритм реализации метода в современных фреймворках. Вместо того чтобы использовать стандартную операцию свертки $Y = X * W$, вводится промежуточный шаг вычисления стандартизированных весов $\hat{W}$.

**Этапы реализации:**

1.  **Расчет среднего веса:** Вычислите среднее значение весов для каждого выходного канала.
2.  **Центрирование:** Вычтите полученное среднее из текущих весов ($W - \mu$).
3.  **Масштабирование:** Разделите результат на стандартное отклонение весов для данного канала.
4.  **Forward Pass:** Используйте полученные веса $\hat{W}$ для операции свертки с входными данными $X$ [14:16].
5.  **Backward Pass:** Поскольку все операции детерминированы и дифференцируемы, градиенты автоматически распространяются через процесс стандартизации обратно к исходным весам $W$ [15:26].

Автор подчеркивает, что современные библиотеки (например, PyTorch или TensorFlow) позволяют легко интегрировать этот процесс, и вычислительные затраты на него практически незаметны [15:38].

## 📊 Теоретические выгоды и результаты экспериментов
[[JUMP:15:51]]

В статье исследуется влияние WS на «гладкость» обучения. Янник указывает на то, что авторы работы проанализировали константу Липшица для функции потерь и градиентов [16:16].

Результаты анализа и тестов:

*   **Гладкий ландшафт потерь:** Использование WS делает оптимизацию более стабильной, предотвращая резкие скачки градиентов [17:39].
*   **Абляция (разделение вклада):** Исследователи выяснили, что основной эффект дает именно центрирование весов (вычитание среднего), в то время как масштабирование дает лишь небольшой дополнительный прирост [16:32]. Тем не менее, Янник рекомендует использовать обе операции, так как это технически просто [17:11].
*   **ImageNet:** Модель с WS + Group Norm при обучении с батчем размером 1 превзошла Batch Norm, обученный на больших батчах [1:07].
*   **Универсальность:** Метод показал отличные результаты не только в классификации изображений, но и в задачах детекции объектов и сегментации (Mask R-CNN) [1:51].

## 🚀 Прогноз развития технологий нормализации
[[JUMP:18:21]]

Янник Кильчер выражает уверенность в том, что Weight Standardization может стать индустриальным стандартом в ближайшем будущем. По его мнению, тренд на создание всё более крупных моделей неизбежно ведет к уменьшению размера батча на каждый конкретный вычислительный узел (GPU/TPU) [18:48].

В таких условиях Batch Norm становится «обузой», требуя синхронизации между картами для корректного вычисления статистики батча, что замедляет обучение. Комбинация WS и Group Norm лишена этих недостатков. Янник заявляет, что планирует лично внедрять Weight Standardization в свои будущие проекты [18:51].