Обратное распространение ошибки О

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

English Backpropagation, back-propagation, error backpropagation
Синонимы Backprop, BP, метод обратного распространения, обратное распространение, retropropagation

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

Как это работает

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

В обратном проходе вычисляется градиент функции потерь по каждому весу с помощью правила цепочки. Ошибка «распространяется» назад: сначала корректируются веса выходного слоя, затем — скрытых слоёв, вплоть до первого. Каждый вес обновляется в направлении, противоположном градиенту, с шагом, заданным скоростью обучения (learning rate).

Зачем это нужно

Без обратного распространения многослойные сети не могли бы обучаться: не было бы способа понять, какой именно вес внёс вклад в ошибку. Алгоритм сделал возможным обучение глубоких сетей — от распознавания рукописных цифр до языковых моделей GPT. Именно backpropagation лежит в основе практически всех современных нейросетей, включая трансформеры и свёрточные архитектуры.

Примеры

  • Распознавание цифр MNIST. Сеть из двух скрытых слоёв после нескольких эпох обратного распространения достигает точности выше 98% на тестовой выборке.
  • Языковая модель. GPT обучается на огромном корпусе текстов: ошибка предсказания следующего токена распространяется назад через десятки слоёв, корректируя миллиарды параметров.
  • Свёрточная сеть для изображений. В ResNet-50 градиенты проходят через skip-connection, что смягчает проблему затухания градиента при обратном распространении.

Формула или метрика

Обновление веса по правилу градиентного спуска:

w_new = w_old − η · ∂L/∂w

где η — скорость обучения, L — функция потерь, ∂L/∂w — градиент, вычисленный обратным распространением.

Типичные ошибки

  • Слишком высокая скорость обучения. Веса «перескакивают» минимум, и ошибка не уменьшается, а колеблется или растёт.
  • Игнорирование затухания градиента. В глубоких сетях без нормализации градиенты становятся близки к нулю, и нижние слои почти не обучаются.
  • Отсутствие валидации. Сеть запоминает обучающую выборку (переобучение), а на новых данных показывает плохой результат.
  • Неправильная инициализация весов. Если веса инициализированы нулями или слишком большими числами, обратное распространение работает неэффективно.

Как улучшить

  • Используйте адаптивные оптимизаторы (Adam, RMSProp), которые автоматически подбирают скорость обучения для каждого параметра.
  • Применяйте нормализацию (BatchNorm, LayerNorm) между слоями — это стабилизирует градиенты.
  • Добавляйте dropout для борьбы с переобучением.
  • Экспериментируйте с архитектурой: residual-связи помогают градиенту проходить через глубокие сети.
  • Мониторьте кривые обучения: если ошибка на валидации растёт, а на обучении падает — это сигнал о переобучении.

Источники

Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323(6088), 533–536. DOI: 10.1038/323533a0

Werbos, P. J. (1974). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University

Хайкин, С. (2006). Нейронные сети: полный курс. 2-е изд. — М.: Вильямс. (Гл. 4: Алгоритм обратного распространения)

Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (Гл. 6: Deep Feedforward Networks)