Обратное распространение ошибки — наиболее распространенный алгоритм обучения нейронных сетей. Это делает градиентный спуск возможным для многослойных нейронных сетей. Многие библиотеки кода машинного обучения (например, Keras ) автоматически обрабатывают обратное распространение ошибки, поэтому вам не нужно самостоятельно выполнять какие-либо базовые вычисления. Посмотрите следующее видео, чтобы получить концептуальный обзор того, как работает обратное распространение ошибки:
Нейронные сети: обучение с использованием обратного распространения ошибки
Лучшие практики обучения нейронных сетей
В этом разделе объясняются случаи сбоя обратного распространения ошибки и наиболее распространенный способ регуляризации нейронной сети.
Исчезающие градиенты
Градиенты для нижних слоев нейронной сети (ближе к входному слою) могут стать очень маленькими. В глубоких сетях (сетях с более чем одним скрытым слоем) вычисление этих градиентов может включать в себя произведение множества небольших членов.
Когда значения градиента приближаются к 0 для нижних слоев, говорят, что градиенты «исчезают». Слои с исчезающими градиентами обучаются очень медленно или не обучаются вообще.
Функция активации ReLU может помочь предотвратить исчезновение градиентов.
Взрывные градиенты
Если веса в сети очень велики, то градиенты для нижних слоев включают в себя произведения многих больших членов. В этом случае у вас могут быть взрывающиеся градиенты: градиенты, которые становятся слишком большими, чтобы сходиться.
Пакетная нормализация может помочь предотвратить взрывной градиент градиентов, а также снизить скорость обучения.
Мертвые юниты ReLU
Как только взвешенная сумма для единицы ReLU упадет ниже 0, единица ReLU может зависнуть. Он выводит 0, ничего не внося в выходные данные сети, и градиенты больше не могут проходить через него во время обратного распространения ошибки. Если источник градиентов отключен, входные данные ReLU могут никогда не измениться настолько, чтобы вернуть взвешенную сумму выше 0.
Снижение скорости обучения может помочь предотвратить смерть модулей ReLU.
Регуляризация отсева
Еще одна форма регуляризации, называемая регуляризацией отсева , полезна для нейронных сетей. Он работает путем случайного «выпадения» активаций юнитов в сети для одного шага градиента. Чем больше вы отпадаете, тем сильнее регуляризация:
- 0,0 = нет регуляризации отсева.
- 1.0 = Отбросить все узлы. Модель ничему не учится.
- Значения от 0,0 до 1,0 = более полезно.