Нейронные сети: обучение с использованием обратного распространения ошибки

Обратное распространение ошибки — наиболее распространенный алгоритм обучения нейронных сетей. Он делает возможным градиентный спуск для многослойных нейронных сетей. Многие библиотеки кода для машинного обучения (например, Keras ) обрабатывают обратное распространение ошибки автоматически, поэтому вам не нужно выполнять какие-либо вычисления самостоятельно. Посмотрите следующее видео, чтобы получить общее представление о том, как работает обратное распространение ошибки:

Рекомендации по обучению нейронных сетей.

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

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

Градиенты для нижних слоев нейронной сети (тех, что ближе к входному слою) могут стать очень малыми. В глубоких сетях (сетях с более чем одним скрытым слоем) вычисление этих градиентов может включать в себя умножение множества малых членов.

Когда значения градиентов в нижних слоях приближаются к 0, говорят, что градиенты «исчезают». Слои с исчезающими градиентами обучаются очень медленно или не обучаются вовсе.

Функция активации ReLU может помочь предотвратить исчезновение градиентов.

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

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

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

Неработающие блоки ReLU

Когда взвешенная сумма для блока ReLU падает ниже 0, блок ReLU может «застрять». Он выдает 0, ничего не внося в выход сети, и градиенты больше не могут проходить через него во время обратного распространения ошибки. При отключенном источнике градиентов входной сигнал для ReLU может никогда не измениться в достаточной степени, чтобы вернуть взвешенную сумму выше 0.

Снижение скорости обучения может помочь предотвратить выход из строя нейронов ReLU.

Регуляризация отсеивания

Ещё одна форма регуляризации, называемая дропаут-регуляризацией , полезна для нейронных сетей. Она работает за счёт случайного «удаления» активаций нейронов в сети на один шаг градиента. Чем больше удаленных активаций, тем сильнее регуляризация:

  • 0,0 = Без регуляризации методом Dropout.
  • 1.0 = Удалить все узлы. Модель ничего не обучается.
  • Значения от 0,0 до 1,0 = Более полезны.