Толковый словарь по нейросетям и искусственному интеллекту

Обрезка градиента

Gradient Clipping

Категория термина


Обрезка градиента (Gradient Clipping) — это метод стабилизации процесса обучения нейросетей, при котором градиенты, превышающие заданный порог, обрезаются (ограничиваются) до этого значения. Это помогает предотвратить взрыв градиентов (exploding gradients) — ситуацию, когда значения градиентов становятся слишком большими, что приводит к нестабильности, резким скачкам потерь (loss) и даже выходу модели за пределы числового диапазона.

Градиент — это частная производная функции потерь по параметрам модели. Во время обучения с помощью метода обратного распространения (backpropagation) происходит вычисление градиентов, и они используются для обновления весов. Но если градиенты становятся чрезмерно большими, это может привести к тому, что веса начнут "скакать" и обучение не сойдётся.


⚙️ Как работает:

Существует два основных способа обрезки градиента:

  1. Clipping по L2-норме (norm clipping):
    Если сумма квадратов градиентов (L2-норма) превышает пороговое значение, то весь вектор градиента масштабируется пропорционально, чтобы его норма не превышала заданный предел.
  2. Clipping по значению (value clipping):
    Каждый компонент градиента, превышающий порог, заменяется на максимальное допустимое значение.

📌 Формула:

Если ∥g∥\|g\| — норма градиента, а tt — порог:

если ∥g∥>t,g:=g⋅t∥g∥\text{если } \|g\| > t, \quad g := g \cdot \frac{t}{\|g\|}

📍 Применение:

  • Рекуррентные нейронные сети (RNN, LSTM, GRU) — особенно чувствительны к взрыву градиентов из-за длинных последовательностей.
  • Трансформеры, при работе с большим числом параметров.
  • Глубокие нейросети с десятками и сотнями слоёв.
  • Ускорение сходимости при нестабильных функциях потерь.

🧪 Пример:

В PyTorch:

torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

В TensorFlow:

optimizer = tf.keras.optimizers.Adam(clipnorm=1.0)

🧭 Преимущества:

  • Повышает стабильность обучения
  • Защищает от взрыва градиентов
  • Позволяет использовать более агрессивные learning rate
  • Упрощает отладку глубоких сетей

⚠️ Ограничения:

  • Не решает проблему затухающих градиентов (vanishing gradients)
  • Если порог слишком мал, модель может учиться слишком медленно
  • Требует подбора гиперпараметров

🧾 Заключение:

Gradient Clipping — это простой, но мощный инструмент в арсенале инженера машинного обучения, особенно важный при работе с глубокими или рекуррентными сетями. Он обеспечивает контроль над динамикой обучения и предотвращает нестабильное поведение, улучшая сходимость и надёжность модели.

🤔 Остались вопросы? Спросите ИИ

Используйте в запросе не более 500 символов.

📌 Последние запросы

  • Почему нет синусной меры сходства? 4 дня назад
  • Почему нет минусной перв сходства? 4 дня назад
  • Здравствуйте можно создать видео танцуешь из фото 7 дней назад

📥 Скачать список терминов (646)

Форматы: TXT (список) | CSV (Excel) | JSON (код) | XML (данные) | MD (Markdown)