Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Exploding Gradient

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

Взрывной рост градиента — это сбой обучения, при котором градиенты, вычисляемые с помощью обратного распространения ошибки, экспоненциально увеличиваются при прохождении назад по глубокой или рекуррентной нейронной сети. Градиентный спуск начинает применять огромные обновления к весам модели, функция потерь резко возрастает или становится NaN либо inf, и обучение расходится. Это противоположность проблеме затухающего градиента. Паскану, Миколов и Бенжио изучили обе проблемы в рекуррентных нейронных сетях и предложили для борьбы со взрывным ростом градиента ограничивать его норму. Этот прием и сегодня остается стандартной мерой защиты при обучении моделей глубокого обучения.

Почему градиенты растут#

По правилу цепочки градиент, достигающий раннего слоя, представляет собой произведение множителей для каждого последующего слоя или шага времени в рекуррентной сети. Если эти множители стабильно больше 1, произведение экспоненциально растет с глубиной: множитель 1.5, повторенный на 30 слоях, увеличивает сигнал примерно в 190,000 раз. Среди распространенных причин — неудачная инициализация весов, слишком высокая скорость обучения, ненормализованные входные данные, длинные последовательности в рекуррентных моделях и переполнение при обучении с смешанной точностью, когда значения FP16 выше 65,504 превращаются в inf. Признаки проблемы — внезапный скачок функции потерь или ее превращение в NaN, увеличение логируемой нормы градиента на несколько порядков между шагами и веса, которые становятся NaN.

Предотвращение и устранение проблемы#

В большинстве современных конвейеров обучения сочетаются несколько таких мер защиты.

  • Ограничение градиента: если общая L2-норма всех градиентов превышает порог, каждый градиент масштабируется одним и тем же коэффициентом. Направление обновления сохраняется, ограничивается только его длина.
  • Пакетная нормализация: пакетная нормализация и нормализация по слою масштабируют активации на каждом слое. Это стабилизирует масштаб сигналов между слоями и сглаживает поверхность функции потерь.
  • Тщательная инициализация: инициализации Xavier (Glorot) и He масштабируют начальные веса так, чтобы дисперсия активаций оставалась примерно постоянной от слоя к слою.
  • Остаточные соединения: пропускающие соединения создают для градиентов путь тождества в обход каждого блока, поэтому сигнал обратного прохода представляет собой сумму путей, а не одно длинное произведение.
  • Разогрев скорости обучения: если начать с небольшой скорости обучения и постепенно увеличивать ее на первых шагах, можно избежать огромных начальных обновлений, пока веса и статистики оптимизатора еще не стабилизировались.

Приведенный ниже фрагмент кода создает стек из 30 слоев, каждый из которых усиливает входной сигнал в 1.5 раза, а затем ограничивает получившийся градиент с помощью PyTorch:

import torch
from torch import nn

torch.manual_seed(0)

# 30 stacked linear layers, each initialized to amplify its input by 1.5x
layers = [nn.Linear(64, 64, bias=False) for _ in range(30)]
for layer in layers:
    nn.init.orthogonal_(layer.weight, gain=1.5)
model = nn.Sequential(*layers)

loss = model(torch.randn(8, 64)).pow(2).mean()
loss.backward()

# clip_grad_norm_ rescales all gradients in place and returns their norm before clipping
norm_before = nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
norm_after = nn.utils.get_total_norm([p.grad for p in model.parameters()])
print(f"Gradient norm before clipping: {norm_before:.2e}, after: {norm_after:.2f}")

Норма исходного градиента составляет 9.90e+10, а после ограничения — 1.00, поэтому следующий шаг оптимизатора остается ограниченным независимо от величины исходного градиента.

При обучении Ultralytics YOLO26 эта мера защиты применяется на каждом шаге: тренер отменяет масштабирование градиентов смешанной точности, ограничивает их общую норму значением 10.0 и позволяет масштабировщику градиента пропустить любое обновление, которое все еще содержит значения inf или NaN. В пользовательском тренере можно изменить порог, например снизить его до 0.1 для RT-DETR.

Взрывной и затухающий градиенты#

Обе проблемы возникают из-за одного и того же произведения множителей для каждого слоя при обратном распространении ошибки. Множители больше 1 вызывают взрывной рост градиентов, нестабильные обновления, числовое переполнение и расходимость; обычно помогает ограничение градиента. Множители меньше 1 заставляют градиенты стремиться к нулю, из-за чего ранние слои перестают обучаться. Обычно помогают несатурирующие функции активации, такие как ReLU, остаточные соединения и рекуррентные блоки с вентильным механизмом, например LSTM. Нормализация и тщательная инициализация помогают справиться с обеими проблемами.

Примеры применения в реальных условиях#

Большие языковые модели обучают сотни тысяч шагов на длинных текстовых последовательностях, где внезапные скачки функции потерь — известная проблема. Поэтому в рецептах обучения таких моделей предусмотрено ограничение градиентов: GPT-3 обучали с Adam и ограничением общей нормы градиента до 1.0.

В компьютерном зрении глубокие сети обнаружения объектов обучаются на наборах данных масштаба COCO с высокой скоростью обучения и смешанной точностью. Ограничение градиентов и масштабирование функции потерь не дают редкому экстремальному пакету повредить веса. Детекторы на базе Transformer чувствительнее, поскольку градиенты в декодере через перекрестное внимание могут резко возрастать. Поэтому для моделей семейства DETR, таких как RT-DETR и DINO, обычно устанавливают максимальную норму 0.1.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

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

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

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

Компьютерное зрение в здравоохранении

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

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения