Обратное распространение ошибки
Обратное распространение ошибки — алгоритм вычисления градиентов функции потерь по весам нейронной сети, используемый для её обучения методом градиентного спуска. Основан на последовательном применении правила дифференцирования сложной функции от выходного слоя к входному.
Обратное распространение ошибки (backpropagation) — алгоритм эффективного вычисления частных производных функции потерь по всем обучаемым параметрам нейронной сети. Разработан в 1970-х годах и популяризирован Румелхартом, Хинтоном и Уильямсом в статье 1986 года, после чего стал стандартным методом обучения многослойных сетей.
Алгоритм работает в два прохода. На прямом проходе (forward pass) входные данные последовательно преобразуются слоями сети, генерируя предсказание. На обратном проходе (backward pass) по правилу цепочки производная ошибки передаётся назад через каждый слой: градиент потерь по весам каждого слоя вычисляется как произведение локального градиента и поступившего сигнала ошибки. Это позволяет обновить все веса с вычислительной сложностью, линейной по числу параметров.
Backpropagation сделал практически возможным обучение глубоких сетей с миллиардами параметров. Без эффективного вычисления градиентов такие модели, как GPT-4 или LLaMA 3, не могли бы быть обучены за разумное время. Алгоритм реализован в PyTorch, TensorFlow и JAX через механизм автоматического дифференцирования (autograd), который строит граф вычислений на лету и дифференцирует его автоматически.
К 2026 году backpropagation остаётся единственным масштабируемым методом обучения глубоких нейронных сетей на практике. Исследуются альтернативы — forward-forward algorithm Хинтона (2022), методы обучения без обратного прохода для нейроморфных чипов, биологически правдоподобные локальные правила обучения — однако ни одна из них не достигла сопоставимой эффективности на больших моделях.