Оптимизация
Ландшафты потерь нейронных сетей
Вы обучаете нейросеть - loss падает, accuracy растёт. Но почему одна модель обобщается, а другая переобучается, хотя обе достигают нулевого train loss? Почему ResNets учатся стабильнее ванильных сетей? Ответ скрыт в **форме поверхности потерь** - геометрии, которую почти невозможно увидеть в 100M измерениях.
- **Архитектурный дизайн**: skip connections в ResNet, нормализация в трансформерах - всё это улучшает геометрию ландшафта, делая его более гладким и легче оптимизируемым
- **Model merging**: знание о mode connectivity позволяет «сливать» несколько обученных моделей в одну без потери качества (Model Soup, SLERP для LLM)
- **SAM в production**: Google использует SAM для обучения Vision Transformers - явная минимизация резкости даёт +1-2% на ImageNet без изменения архитектуры
Предварительные знания
Геометрия ландшафта потерь
Функция потерь нейронной сети - это поверхность в пространстве миллионов параметров. Интуиция из 3D («гора», «долина», «овраг») переносится с трудом, но геометрические концепции остаются: **локальные минимумы**, **максимумы**, **седловые точки**, **плато** и **острые ущелья**.
**Dauphin et al. (2014)** показали: в высоких размерностях «плохих» локальных минимумов (далёких от глобального) практически нет. Большинство критических точек с высоким значением потерь - седловые точки, а не минимумы. Это хорошая новость: SGD и его варианты случайным образом выходят из седловых точек (шум минибатчей добавляет случайное возмущение). Плохих локальных минимумов, в которых застрянет обучение, практически нет - в отличие от представлений 1990-х годов.
Однако **хорошие** (глубокие) локальные минимумы бывают разной формы: острые и плоские. Форма минимума критически важна для **обобщающей способности** модели - это открытие стало одним из центральных в современном понимании deep learning.
Почему в глубоких нейронных сетях с миллионами параметров локальные минимумы встречаются редко?
Седловые точки и побег из них
**Седловая точка** - критическая точка, в которой градиент равен нулю, но которая не является ни минимумом, ни максимумом. Функция убывает в одних направлениях и возрастает в других. Именно с ними - а не с локальными минимумами - реально борются оптимизаторы.
**Детерминированный gradient descent** может застрять на седле на длительное время: градиент мал, шаг мал, выход медленный (зависит от размера собственного значения). **SGD с мини-батчем**: шум аппроксимации градиента добавляет случайное возмущение. Если оно имеет ненулевую проекцию на «отрицательное» направление Hessian - модель начинает «скатываться» вниз. **Теорема (Jin et al., 2017)**: Perturbed SGD сходится к строгим седловым точкам за O(1/ε⁴) шагов в полиномиальное время.
Почему мини-батч SGD быстрее покидает седловые точки, чем полный (batch) gradient descent?
Острые vs плоские минимумы и обобщаемость
Когда оптимизатор находит минимум, важна его **форма**: острый (sharp) минимум - узкая «игла», плоский (flat) минимум - широкая «долина». Эта разница критична для **обобщающей способности** (generalization) модели.
**SAM** (Foret et al., 2021) - оптимизатор, явно минимизирующий резкость минимума. Вместо минимизации f(θ) он минимизирует: `max_{||ε||≤ρ} f(θ + ε)` - наихудшее значение в ρ-шаре вокруг θ Два шага на каждую итерацию: 1. Шаг 1: θ̃ = θ + ρ · ∇f(θ)/||∇f(θ)|| (сдвиг к «наихудшей точке» в окрестности) 2. Шаг 2: θ = θ - α · ∇f(θ̃) (шаг градиента в наихудшей точке) Результат: SAM+SGD стабильно превосходит SGD на ImageNet (+1-2%) и особенно хорош при малых датасетах.
Почему плоский минимум функции потерь обычно лучше обобщается, чем острый?
Визуализация ландшафтов потерь
Как исследователи изучают форму ландшафта в пространстве миллионов параметров? **Li et al. (2018)** предложили метод визуализации через проекцию на два направления с **filter normalization**, позволяющий корректно сравнивать сети разного масштаба.
Открытие **Garipov et al. (2018)** и **Draxler et al. (2018)**: два разных минимума нейросети соединены **кривой нулевых потерь** в пространстве параметров (loss barrier ≈ 0). Метод **Mode Connectivity**: найти кривую c(t) между θ₁ и θ₂ такую, что L(c(t)) ≈ const (низкое) для всех t ∈ [0,1]. Это означает: разные «решения», найденные нейросетью при разных random seed, не такие разные - они соединены в пространстве параметров без больших барьеров.
Зачем в методе визуализации ландшафта потерь (Li et al.) применяется filter normalization?
Ключевые идеи
- **Геометрия**: в высоких размерностях локальные минимумы редки - доминируют седловые точки; шум SGD помогает их покидать
- **Резкость**: sharpness = λ_max(∇²f), острые минимумы → плохая обобщаемость, плоские минимумы → хорошая
- **SAM**: минимизирует max_{||ε||≤ρ} f(θ+ε) - явный поиск плоских минимумов, +1-2% generalization
- **Визуализация**: filter normalization от Li et al. позволяет сравнивать форму ландшафтов разных архитектур
Связанные темы
Геометрия ландшафта потерь объясняет, почему работают конкретные методы:
- Адаптивные методы оптимизации — Adam и SGD по-разному навигируют ландшафт - понимание геометрии объясняет их разную обобщаемость
- Оптимизация при обучении LLM — Warmup, gradient clipping, learning rate schedule - инструменты для навигации по сложному ландшафту потерь LLM
- Оптимизация в ML — Теоретические основы оптимизации: выпуклость, критические точки, условия Кюна-Таккера
Вопросы для размышления
- Если бы функция потерь была выпуклой, как бы изменилось обучение нейросетей? Что бы мы потеряли?
- Почему batch normalization и layer normalization улучшают обучение - можно ли объяснить это через геометрию ландшафта?
- Mode connectivity показывает, что разные минимумы «соединены». Что это значит для ensembling и model merging?