Краткий обзор

Что такое градиент?

Градиент относится к градиенту функции потерь по отношению к весам. Мы вычисляем градиент во время обратного распространения в рекуррентных нейронных сетях. Эти градиенты используются для обновления весов, чтобы минимизировать функцию потерь.

С обратным распространением мы можем столкнуться в основном с двумя проблемами:

  • Исчезающий градиент
  • Взрывающийся градиент

Исчезающий градиент:

Исчезающий градиент возникает, когда градиент становится очень маленьким.

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

Ухудшение значения градиента пропорционально глубине сети. Чем глубже сеть, тем меньше вероятность получить градиент к концу обратного распространения.

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

Взрывной градиент:

Взрывной градиент возникает, когда градиент становится очень большим.

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

Проблема взрывающегося градиента возникает из-за большого веса.

Проблема взрывающегося градиента может быть решена следующими способами:

  1. Используя сети с долгосрочной краткосрочной памятью (LSTM)
  2. Использование градиентной обрезки (путем установки порога)
  3. Использование регуляризации веса
  4. Переконструируйте модель с меньшим количеством слоев