Что такое Gradient Descent (градиентный спуск)
Подробнее
Представьте слепого человека на холмистой местности, который хочет спуститься в долину. Он не видит карту, но может определить наклон почвы под ногами. Делает шаг в сторону наибольшего спуска — повторяет пока не остановится в самой низкой точке. Это и есть gradient descent: 'низкая точка' — это минимальная ошибка модели на тренировочных данных.
В 2026 году все большие нейросети (GPT-5, Claude Opus, Gemini) обучаются вариациями gradient descent. Самые популярные: SGD (Stochastic Gradient Descent — обучение на случайной подвыборке), Adam (Adaptive Moment Estimation — учитывает момент и адаптирует скорость по каждому параметру), AdamW (Adam с weight decay для регуляризации).
Ключевой гиперпараметр — learning rate (скорость обучения). Слишком большая — модель 'прыгает' через минимум и не сходится. Слишком маленькая — обучение занимает в 10-100 раз больше времени. Современные оптимизаторы используют adaptive learning rate: уменьшают скорость к концу обучения. Это называется learning rate schedule.
Практически: разработчик не пишет gradient descent вручную — это делают фреймворки PyTorch, JAX, TensorFlow. Но понимание помогает дебажить проблемы (модель не учится → проверьте learning rate, gradient clipping, batch size).
Примеры
- PyTorch torch.optim.Adam — самый популярный оптимизатор
- AdamW — Adam с weight decay (для трансформеров)
- SGD with momentum — классический подход
- Learning rate schedules — Cosine, Linear, Warmup
- Gradient clipping — защита от взрывающихся градиентов
Частые вопросы
Зачем нужен градиентный спуск?
Это способ автоматически настроить миллиарды параметров нейросети так, чтобы она правильно отвечала. Без него обучение современных моделей было бы невозможно — никто не смог бы вручную подобрать 175 млрд параметров GPT-3.
Что такое learning rate?
Скорость обучения — насколько большой шаг делает модель к минимуму ошибки на каждом шаге. Типичные значения: 1e-3 для Adam, 1e-5 для fine-tuning больших моделей. Слишком большая — модель не сходится, слишком маленькая — обучение бесконечно долгое.
Что такое SGD vs Adam?
SGD — простой, делает одинаковые шаги для всех параметров. Adam — умный, адаптирует скорость для каждого параметра отдельно (нужно меньше hyperparameter tuning). В 2026 для трансформеров стандарт — AdamW.
Почему модель иногда 'не учится'?
Несколько причин: слишком большой learning rate (расходится), слишком маленький (не двигается), плохая инициализация весов, vanishing gradients (градиенты стремятся к нулю в глубоких сетях). Решения — gradient clipping, layer normalization, residual connections.