Полный градиент точно усредняет все строки, но один шаг может стоить миллионы вычислений. SGD заменяет его шумной оценкой по мини-батчу. Шум ускоряет дешёвые обновления, помогает исследовать ландшафт и одновременно мешает точному финишу.
Миллион примеров ради одного шага
Эмпирический риск имеет вид
Полный градиент
требует прохода по всей выборке. Если , параметры обновятся только после чтения ста миллионов объектов. Mini-batch размера даёт
При равномерной независимой выборке . Направление шумно, но в среднем верно.
Чёрная стрелка — точный . Цветные стрелки — оценки по случайным батчам; их центр совпадает с чёрной, а разброс уменьшается при росте . Один батч может вести в сторону, но серия сохраняет общий дрейф.
Цена и шум батча
Дисперсия среднего независимых градиентов примерно убывает как . Удвоение батча уменьшает стандартный шум лишь в раз, зато почти удваивает вычисление шага до насыщения устройства. Слишком малый батч даёт дешёвые, но хаотичные шаги; слишком большой — точные, но редкие.
Эпоха — обработка примерно примеров. При батче в эпохе около обновлений. Сравнивать два режима только по числу шагов нечестно: один мог прочитать в сто раз больше данных.
Ландшафт и траектория
На квадратичной чаше полный градиент идёт предсказуемо. В узкой долине большой шаг перескакивает поперёк, малый медленно движется вдоль. SGD добавляет колебания, которые иногда выводят из плоского седла или узкого локального режима, но не гарантируют глобального минимума.
Контуры показывают одинаковые уровни loss. Полный градиент идёт регулярным зигзагом, SGD — неровнее и иногда поднимается по loss на отдельном шаге. Обе траектории имеют общий дрейф к минимуму; сглаженная кривая важнее одного скачка.
Learning rate задаёт масштаб доверия
Слишком большой вызывает расходимость или устойчивые колебания. Слишком малый делает обучение медленным и может застрять в плато. Для гладкой выпуклой функции с Lipschitz-градиентом шаг меньше порядка обеспечивает убывание при полном градиенте; для SGD нужен учёт шума.
Классические условия сходимости используют убывающие шаги:
Первая сумма не даёт остановиться слишком рано, конечность второй ограничивает накопленный шум. На практике применяют warmup, ступенчатое уменьшение, cosine decay или one-cycle schedule.
Лаборатория траекторий
Сравните малый и большой батч при одинаковом числе просмотренных примеров. Затем увеличивайте learning rate до появления колебаний. Наконец добавьте шум меток и следите за train и validation: после некоторого момента train продолжит падать, а validation развернётся.
Ранняя остановка как регуляризация
В линейной модели градиентный спуск сначала восстанавливает направления с большими сингулярными числами, где сигнал виден хорошо. Малые направления, часто несущие шум, обучаются медленнее. Остановка до полной сходимости подавляет их подобно ridge.
Для нейросети ранние эпохи часто учат простые общие закономерности, поздние способны запоминать редкие ошибки меток. Это связано с double descent, но не является универсальным расписанием.
Checkpoint выбирают по validation, а не по train. Если смотреть validation каждые десять шагов и выбирать лучший из тысяч, появляется цена адаптивного выбора; независимый test остаётся необходим.
Train loss монотонно падает. Validation сначала улучшается, затем растёт. Вертикаль отмечает сохранённый checkpoint, серая область — эпохи, где модель улучшает подгонку train, но ухудшает будущий риск.
Shuffle, sampling и редкие классы
Если данные отсортированы по классу или времени, последовательные батчи смещены и градиент долго смотрит на один режим. Shuffle делает оценки ближе к равномерным. Но для временных зависимостей бездумное перемешивание может разрушить содержательный порядок оценки.
Oversampling редкого класса меняет ожидаемый градиент: SGD теперь оптимизирует перевзвешенный риск. Это допустимо, если цель задана соответствующими весами, но выходные вероятности требуют коррекции prior и калибровки, как в уроке 54.
Hard example mining тоже меняет распределение батча. Чтобы градиент оставался оценкой исходного риска, нужны importance weights. Без них алгоритм целенаправленно решает другую задачу — возможно полезную, но её следует назвать.
CIFAR-10: что измерять
Для изображений эпоха содержит тысячи батчей. В журнале нужны train loss, validation loss, accuracy, learning rate, норма градиента и время. Резкий скачок нормы может сигнализировать нестабильность; нулевая норма при высокой loss — насыщение или ошибка кода.
Перед долгим запуском градиент проверяют на малой гладкой модели конечными разностями:
Слишком большое даёт ошибку аппроксимации, слишком малое — округление. Такой тест ловит неверный знак и пропущенное слагаемое, но не оценивает скорость SGD.
Data augmentation создаёт новые варианты изображения на лету. Тогда «одна эпоха» больше не означает повтор тех же данных. Augmentation меняет оптимизируемое распределение и кодирует инвариантность.
Нужно также различать gradient accumulation и настоящий большой batch. Несколько микробатчей можно просуммировать до одного обновления, экономя память; при неизменных параметрах это воспроизводит большой batch. Но BatchNorm, случайная augmentation и clipping способны сделать результаты неэквивалентными. В журнале указывают microbatch, effective batch и число устройств, иначе learning-rate recipe невозможно перенести.
Шум как неявная регуляризация
Малый батч чаще покидает узкие минимумы, где loss резко растёт при малом сдвиге. Есть гипотеза, что более плоские области обобщают лучше, но плоскость зависит от параметризации: масштабирование слоёв может изменить кривизну без изменения функции. Поэтому связь не следует считать теоремой качества.
Практически batch size, learning rate и schedule образуют систему. Увеличение батча часто сопровождают увеличением шага и warmup. Рецепт нужно проверять по эмпирическому риску, времени и устойчивости на нескольких seeds.
Следующий шаг
SGD использует текущий шумный градиент. Momentum накапливает направление, AdaGrad и Adam меняют масштаб по координатам. Их геометрия — тема урока 62. Общая дисциплина сохраняется: сравнивать равный вычислительный бюджет, показывать schedule и отделять скорость train от качества validation.
Редкая группа внутри мини-батча
Пусть объектов дают средний градиент , а редкие — . Полный градиент равен
Для batch size вероятность не увидеть ни одного редкого объекта равна . Примерно каждый пятый шаг тогда направлен почти только по первой координате. Это не ошибка SGD: в среднем оценка остаётся верной, но variance по второй координате велика.
Стратифицированный батч с хотя бы двумя редкими объектами уменьшит разброс, если доли затем правильно взвесить. Простое принудительное равенство групп изменит objective и может быть осмысленным, но это уже другой выбор риска. Нужно записать его явно.
В федеративном обучении роль мини-батча иногда играет набор доступных устройств. Если редкий тип клиента редко выходит на связь, усреднение обновлений получает похожий перекос, усиленный неодинаковыми локальными распределениями. Диагностика должна показывать частоту попадания групп в раунд, а не только шум общей нормы градиента.