backpropagation
Алгоритм вычисления градиентов loss по всем параметрам нейросети через цепное правило дифференцирования.
Что такое backpropagation
Backpropagation (обратное распространение ошибки) — алгоритм эффективного вычисления градиентов функции потерь по всем параметрам нейросети. Основан на цепном правиле (chain rule) дифференциального исчисления: градиент составной функции равен произведению градиентов составляющих.
Loss = f(g(h(x)))
∂Loss/∂x = (∂Loss/∂f) × (∂f/∂g) × (∂g/∂h) × (∂h/∂x)
Прямой и обратный проход
Forward pass (прямой проход): вычислить предсказание модели и loss. Все промежуточные активации сохраняются в памяти — они понадобятся для обратного прохода.
Backward pass (обратный проход): вычислить градиенты loss по всем параметрам, пройдя сеть от выхода к входу. Каждый слой вычисляет градиент и передаёт его предыдущему.
Память при обратном проходе
Backward pass требует сохранения активаций прямого прохода → в 2–3 раза больше VRAM, чем для inference. Это главное ограничение при обучении больших моделей.
Gradient checkpointing — техника для уменьшения потребления памяти: сохраняется только часть активаций, остальные перевычисляются при необходимости.
Automatic differentiation
Современные фреймворки (PyTorch, JAX) реализуют backpropagation через autograd — систему автоматического дифференцирования, которая строит граф вычислений и автоматически вычисляет градиенты:
loss = model(inputs)
loss.backward() # Автоматически запускает backpropagation
optimizer.step() # Обновление параметров по градиентам
Связанные термины
- gradient — что вычисляет backpropagation
- loss — стартовая точка обратного прохода
- gradient checkpointing — экономия памяти при backprop
- mixed precision — BF16/FP16 обучение для ускорения backprop
Готовы запустить GPU-задачу?
Запустить GPU-сервер