Глубокое обучение

Backpropagation

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

актуальноТекущий рабочий стандарт

Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.

Что означает каждый компонент
  • то, что мы ищем: как изменится ошибка при изменении конкретного веса
  • производная потерь по выходу — приходит «сверху», от следующего слоя
  • производная активации: именно она затухает у сигмоиды и не затухает у ReLU
  • локальная производная линейной части — это просто вход слоя
Градиент — произведение множителей вдоль пути; поэтому он затухает или взрывается

Ключевые тезисы

  • Прямой проход сохраняет активации, обратный — умножает локальные производные.
  • Затухающие и взрывающиеся градиенты — прямое следствие перемножения множителей.
  • Автодифференцирование в PyTorch и JAX — это backprop, доведённый до общего случая.
Тема также относится к главам:Математический анализПрименение в ML

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Прямой и обратный проход

Что именно сохраняется в памяти и почему обучение требует больше памяти, чем инференс.

  1. Forward: считаем выходы слоёв и сохраняем промежуточные активации.
  2. Loss: сравниваем выход с ответом.
  3. Backward: идём справа налево, перемножая локальные производные (правило цепочки).
  4. Step: оптимизатор обновляет веса по полученным градиентам.
На практике

Активации всех слоёв нужны на обратном проходе — отсюда «out of memory» при большом батче. Gradient checkpointing экономит память, пересчитывая часть активаций заново.

2

Затухание и взрыв градиентов

Что происходит, когда множителей становится сто.

Обозначения
  • веса модели — то, что подбирается при обучении
  • число объектов в выборке
  • номер или количество: индекс шага, число соседей, кластеров или позиций
  • функция потерь — то, что минимизируется при обучении
  • произведение по всем элементам
  • частная производная — чувствительность к одному аргументу
Произведение множителей: если каждый ≈ 0.5, то при градиент уменьшится в миллион раз
  • Лечится: ReLU-подобные активации, нормализация (BatchNorm, LayerNorm), скип-связи.
  • Взрыв градиента лечится обрезкой нормы: .
  • Инициализация (He, Xavier) подбирает дисперсию весов так, чтобы сигнал не затухал при прохождении слоёв.

Связанные темы

Стабильность обучения нейросетей · Аппарат анализа · Нейросеть по кирпичикам · Последовательные модели · Градиенты и производные

Numerical Methods97%

Численные методы · Основы

Компьютер считает приближённо. Понимание точности float, устойчивости и обусловленности спасает от NaN и «необъяснимых» расхождений.

Calculus97%

Математический анализ · Основы

Производные показывают, как изменится ошибка при малом изменении параметра. Именно это делает возможным градиентное обучение.

Gradient97%

Градиент · Математический справочник

Вектор частных производных, указывающий направление наибыстрейшего роста функции.

Hessian97%

Гессиан · Математический справочник

Матрица вторых производных, описывающая локальную кривизну функции.

Normalization Layers85%

Слои нормализации · Глубокое обучение

BatchNorm, LayerNorm, RMSNorm: стабилизация распределения активаций, без которой глубокие сети почти не обучаются.

Gradient Clipping85%

Обрезка градиента · Оптимизация обучения

Ограничение нормы градиента перед шагом оптимизатора — простейшая защита от расходимости обучения.

Mixed Precision85%

Смешанная точность · Оптимизация обучения

Обучение в fp16 или bf16 при накоплении в fp32: двукратная экономия памяти и заметное ускорение.

Learning Rate Scheduling85%

Расписание скорости обучения · Оптимизация обучения

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

Limits and Continuity85%

Пределы и непрерывность · Математический анализ

Предел описывает, к чему стремится функция вблизи точки. На этом понятии держатся производная, интеграл и вся теория сходимости алгоритмов.

Derivative85%

Производная · Математический анализ

Скорость изменения функции: предел отношения приращения функции к приращению аргумента. Геометрически — наклон касательной.

Differentiation Rules85%

Правила дифференцирования · Математический анализ

Сумма, произведение, частное и композиция — четыре правила, которых достаточно, чтобы продифференцировать почти любую функцию потерь вручную.

Taylor Series85%

Ряд Тейлора · Математический анализ

Приближение функции многочленом по производным в точке. Инструмент, которым обосновывают почти все методы оптимизации.

Multivariable Calculus85%

Многомерный анализ · Математический анализ

Функции многих переменных: частные производные, градиент, производная по направлению и линии уровня.

Jacobian85%

Якобиан · Математический анализ

Матрица частных производных векторной функции. Описывает, как преобразование растягивает пространство локально.

Lagrange Multipliers85%

Множители Лагранжа · Математический анализ

Метод условной оптимизации: минимизировать функцию при ограничениях, не решая их подстановкой.

Convexity85%

Выпуклость · Математический анализ

Свойство функции, гарантирующее единственность минимума и сходимость градиентных методов.

Numerical Differentiation85%

Численное дифференцирование · Математический анализ

Приближение производной конечными разностями: медленно и неточно, но незаменимо для проверки аналитических градиентов.

Series and Convergence85%

Ряды и сходимость · Математический анализ

Когда бесконечная сумма имеет конечное значение и с какой скоростью алгоритм приближается к ответу.

Integral85%

Интеграл · Математический анализ

Определённый интеграл — площадь под кривой, неопределённый — обратная операция к дифференцированию. В ML интеграл почти всегда означает математическое ожидание.

Differential Equations85%

Дифференциальные уравнения · Математический анализ

Уравнения, связывающие функцию с её производными. Описывают динамику — от роста популяций до обратного процесса в диффузионных моделях.

Perceptron80%

Перцептрон · Глубокое обучение

Простейший нейрон: взвешенная сумма входов и пороговая функция. Исторический старт всей области.

MLP80%

Многослойный перцептрон · Глубокое обучение

Несколько полносвязных слоёв с нелинейностями — универсальный аппроксиматор функций.

Activation functions80%

Функции активации · Глубокое обучение

Нелинейности между слоями, без которых сеть не сложнее линейной модели.

Loss functions80%

Функции потерь · Глубокое обучение

Формализуют цель обучения. Выбор потерь важнее выбора архитектуры чаще, чем кажется.

Optimizers80%

Оптимизаторы · Глубокое обучение

Правила обновления весов по градиенту: от чистого SGD до адаптивных методов.

Logistic Regression80%

Логистическая регрессия · Классическое машинное обучение

Линейная модель классификации: сигмоида переводит линейную комбинацию признаков в вероятность класса.

RNN80%

Рекуррентные сети · Глубокое обучение

Обрабатывают последовательность шаг за шагом, перенося скрытое состояние между позициями.

LSTM80%

LSTM · Глубокое обучение

Рекуррентная ячейка с состоянием и тремя вентилями, решающая проблему долгосрочной памяти.

GRU80%

GRU · Глубокое обучение

Упрощённая LSTM: два вентиля вместо трёх и отсутствие отдельного cell state.

RNN/LSTM for NLP80%

RNN/LSTM в NLP · Обработка естественного языка

Первое поколение нейросетевых моделей языка: последовательная обработка токенов со скрытым состоянием.

Sequence-to-Sequence80%

Seq2Seq · Обработка естественного языка

Схема «энкодер сжимает вход — декодер порождает выход» для перевода, суммаризации и диалога.

RNN/LSTM80%

RNN/LSTM для рядов · Временные ряды

Нейросети, обучаемые сразу на множестве связанных рядов, улавливают общие паттерны.

Gradient Descent80%

Градиентный спуск · Оптимизация обучения

Итеративный шаг против градиента функции потерь — базовый алгоритм обучения.