Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.
- то, что мы ищем: как изменится ошибка при изменении конкретного веса
- производная потерь по выходу — приходит «сверху», от следующего слоя
- производная активации: именно она затухает у сигмоиды и не затухает у ReLU
- локальная производная линейной части — это просто вход слоя
Ключевые тезисы
- Прямой проход сохраняет активации, обратный — умножает локальные производные.
- Затухающие и взрывающиеся градиенты — прямое следствие перемножения множителей.
- Автодифференцирование в PyTorch и JAX — это backprop, доведённый до общего случая.
Подробный разбор
2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Прямой и обратный проход
Что именно сохраняется в памяти и почему обучение требует больше памяти, чем инференс.
- Forward: считаем выходы слоёв и сохраняем промежуточные активации.
- Loss: сравниваем выход с ответом.
- Backward: идём справа налево, перемножая локальные производные (правило цепочки).
- Step: оптимизатор обновляет веса по полученным градиентам.
Активации всех слоёв нужны на обратном проходе — отсюда «out of memory» при большом батче. Gradient checkpointing экономит память, пересчитывая часть активаций заново.
2Затухание и взрыв градиентов
Что происходит, когда множителей становится сто.
- веса модели — то, что подбирается при обучении
- число объектов в выборке
- номер или количество: индекс шага, число соседей, кластеров или позиций
- функция потерь — то, что минимизируется при обучении
- произведение по всем элементам
- частная производная — чувствительность к одному аргументу
- Лечится: 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%
Градиентный спуск · Оптимизация обученияИтеративный шаг против градиента функции потерь — базовый алгоритм обучения.