ML Fundamentals

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-сервер