МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
____________________________
Кафедра ____________________________
РЕФЕРАТ
на тему: «Методы градиентного спуска в обучении нейросетей»
Выполнил(а): ____________________________
Группа: ____________________________
Проверил(а): ____________________________
2026
Содержание
- 3
- 6
- 8
- 10
1. Градиентный спуск: базовые принципы
Обучение нейронной сети сводится к подбору такого набора весов, при котором модель минимально ошибается на обучающих данных. Мерой этой ошибки служит функция потерь. Задача оптимизации заключается в том, чтобы найти её глобальный минимум, и именно здесь на сцену выходит градиентный спуск.
Этот метод работает по простой логике. Представьте, что функция потерь, это холмистая местность, а вы находитесь в точке случайного старта. Ваша цель, спуститься в самую глубокую низину. На каждом шаге вы определяете направление самого крутого спуска, то есть направление, противоположное градиенту, и делаете шаг в эту сторону. Градиент показывает вектор, указывающий на наибольшее возрастание функции, поэтому антиградиент указывает туда, где функция убывает быстрее всего. Повторяя эту процедуру итеративно, мы постепенно приближаемся к минимуму.
Формально обновление параметров записывается как \( \theta_{t+1} = \theta_t - \eta abla L(\theta_t) \), где \( \theta \), вектор весов, \( L \), функция потерь, а \( abla L \), её градиент. Ключевую величину \( \eta \) называют скоростью обучения (learning rate). Она определяет размер шага. Если \( \eta \) слишком мала, алгоритм будет продвигаться к минимуму черепашьими темпами, требуя огромного количества итераций. Если же она чрезмерно велика, шаги станут настолько большими, что алгоритм начнет перепрыгивать через минимум, расходиться или бесконечно колебаться вокруг него. В классической работе Яна ЛеКуна и его коллег по эффективному обратному распространению ошибки, опубликованной ещё в 1998 году, подчёркивалось, что выбор скорости обучения является одним из самых критичных решений при настройке сети, часто более важным, чем выбор начальной инициализации весов.
Однако на практике всё усложняется тем, что функция потерь в нейронных сетях, это не гладкая парабола, а сложная невыпуклая поверхность. Она усеяна локальными минимумами, седловыми точками и плато. Локальный минимум, это область, где функция ниже, чем во всех соседних точках, но выше глобального минимума. Седловая точка, это область, где градиент равен нулю, но при этом она не является ни минимумом, ни максимумом. В многомерных пространствах, характерных для глубокого обучения, седловые точки встречаются гораздо чаще, чем локальные минимумы, и они представляют собой серьёзную проблему: в них градиент обращается в ноль, и алгоритм застревает, не в силах найти дальнейшее направление движения. Эта проблема подробно исследована в работах Янна Дауна и его соавторов, которые показали, что для многих архитектур большинство критических точек являются именно седловыми.
Чтобы вычислить градиент функции потерь по всем весам сети, используется алгоритм обратного распространения ошибки (backpropagation). Он был популяризирован Дэвидом Румельхартом, Джеффри Хинтоном и Рональдом Уильямсом в их знаменитой статье 1986 года. Суть алгоритма элегантна: сначала выполняется прямой проход, в ходе которого входные данные пропускаются через сеть, и вычисляется значение функции потерь. Затем, используя правило цепочки дифференцирования, градиент ошибки распространяется от выходного слоя назад к входному, слой за слоем. Это позволяет эффективно вычислить вклад каждого отдельного веса в общую ошибку. Без этого алгоритма обучение глубоких сетей было бы невозможно, так как вычисление градиента аналитически для тысяч и миллионов параметров является нереальной задачей.
Таким образом, градиентный спуск, оснащённый механизмом обратного распространения, формирует базовый двигатель обучения нейронных сетей. Понимание его математической сути и ограничений, связанных с формой поверхности функции потерь и выбором скорости обучения, является
необходимым фундаментом для изучения более продвинутых вариаций этого метода, таких как стохастические или адаптивные подходы.
2. Стохастический и пакетный градиентный спуск
Вычисление градиента по всей обучающей выборке выглядит естественным. Функция потерь определена на всём датасете, значит, и её производная должна учитывать каждый пример. Так работает пакетный градиентный спуск (BGD). На каждом шаге алгоритм суммирует градиенты, полученные для всех объектов, и только после этого обновляет веса. Оценка получается точной, а направление движения математически корректным для текущего состояния модели. Однако цена такой точности высока: один шаг требует полного прохода по данным. Если выборка содержит миллион изображений, каждый шаг, это миллион прямых и обратных распространений ошибки. Для больших нейросетей это часто физически невозможно: вся выборка и промежуточные активации должны поместиться в памяти. Поэтому BGD остаётся инструментом для небольших задач или теоретического анализа, а не для обучения современных моделей.
Противоположный подход, стохастический градиентный спуск (SGD). Вместо всей выборки берётся один случайный пример, по нему вычисляется градиент, и веса обновляются немедленно. Такое обновление происходит в разы быстрее: один шаг стоит дешевле, чем в BGD, на несколько порядков. Но есть и плата, высокая дисперсия градиента. Один пример даёт лишь шумную аппроксимацию истинного градиента, и направление шага может сильно отклоняться от оптимального. Траектория движения напоминает пьяную походку: много колебаний, много случайных отклонений. Впрочем, в этой случайности есть скрытое преимущество. Шум позволяет алгоритму выскакивать из локальных минимумов и седловых точек, где градиент близок к нулю и BGD застревает навсегда. Седловые точки, кстати, в многомерных пространствах встречаются гораздо чаще, чем минимумы, что делает свойство SGD особенно ценным.
Однако, чтобы SGD не разошёлся, его приходится стабилизировать. Два приёма стали стандартом де-факто. Первый, перемешивание данных перед каждой эпохой. Если
подавать примеры в фиксированном порядке, модель может выучить последовательность как закономерность и начать подстраиваться под неё. Случайный порядок разрушает эту корреляцию. Второй приём, постепенное уменьшение скорости обучения. На ранних этапах большие шаги позволяют быстро исследовать пространство параметров, а к концу обучения маленькие шаги нужны для точной настройки. Без этого SGD будет вечно колебаться вокруг минимума, так и не достигая его. Типичная практика: уменьшать скорость обучения в несколько раз каждые N эпох или по экспоненциальному закону.
Разница в поведении методов хорошо видна на выпуклых функциях. Для BGD доказана монотонная сходимость: функция потерь на каждом шаге гарантированно уменьшается. Это свойство следует из того, что точный градиент всегда указывает в направлении наискорейшего спуска. У SGD такой гарантии нет. Из-за шума функция потерь может скакать вверх и вниз от шага к шагу. Сходимость здесь понимается в статистическом смысле: в среднем алгоритм приближается к минимуму, но отдельные шаги могут быть неудачными. На практике для невыпуклых функций нейросетей эта разница стирается: там BGD тоже не даёт монотонного убывания, а его сходимость к глобальному минимуму не гарантирована. Зато стохастический шум, как показали работы Ботту и его коллег, часто помогает находить более плоские минимумы, которые лучше обобщаются на новых данных.
3. Мини-пакетный градиентный спуск и его преимущества
Между крайностями пакетного и стохастического подходов существует прагматичный компромисс: мини-пакетный градиентный спуск (MBGD). Вместо того чтобы вычислять градиент по всему датасету или по одному примеру, MBGD разбивает выборку на подмножества фиксированного размера, называемые мини-пакетами. На каждой итерации веса обновляются на основе градиента, усредненного по такому подмножеству.
Размер мини-пакета, это гиперпараметр, который напрямую управляет соотношением между точностью оценки градиента и вычислительной скоростью. На практике типичные значения лежат в диапазоне от 32 до 256, хотя для очень больших моделей могут использоваться и меньшие значения. Маленький пакет вносит больше шума в оценку градиента, что делает траекторию движения по функции потерь извилистой, но позволяет быстрее реагировать на изменения ландшафта. Большой пакет дает более сглаженную и точную оценку, приближаясь к поведению BGD, но требует больше памяти и замедляет итерации.
Ключевое практическое преимущество MBGD проявляется при использовании графических процессоров (GPU). Архитектура GPU ориентирована на параллельные вычисления, и операции над матрицами, из которых состоят градиенты мини-пакета, выполняются векторно. Один пакет из 128 примеров обрабатывается на GPU почти с той же скоростью, что и один пример, поскольку аппаратное обеспечение эффективно распараллеливает матричные умножения. Таким образом, достигается высокая пропускная способность без необходимости загружать в память всю выборку целиком.
Уровень шума в оценке градиента, определяемый размером пакета, имеет еще одно важное следствие. Исследования, например работа Нихила Кешари и его коллег, опубликованная в 2016 году,
показали, что этот шум может действовать как регуляризатор. Стохастический характер обновлений не дает модели застревать в острых локальных минимумах и часто приводит к лучшей обобщающей способности на тестовых данных, чем обучение с большими пакетами. Однако слишком малый размер пакета, например 1 или 2, делает сходимость нестабильной, требуя тщательной настройки скорости обучения. Поэтому выбор размера мини-пакета, это балансировка между скоростью вычислений, стабильностью процесса обучения и итоговым качеством модели.
4. Влияние методов на сходимость и качество
Сравнение методов из предыдущих глав не сводится к одной лишь скорости вычислений. Разница между BGD, SGD и MBGD заметна по двум характеристикам: как быстро сходится алгоритм и насколько качественной получается итоговая модель. Пакетный градиентный спуск движется к минимуму по самому прямому пути, но каждый его шаг требует обработки всего датасета. Из-за этого итерации становятся крайне медленными, особенно когда обучающая выборка насчитывает миллионы примеров. Зато траектория выходит гладкой, без резких скачков, и функция потерь уменьшается монотонно.
Стохастический метод работает иначе: веса обновляются на каждом отдельном примере. Градиент, вычисленный по одному образцу, содержит значительный шум. Траектория движения из-за этого напоминает броуновское движение, однако именно этот шум позволяет быстро выходить из зон локальных минимумов и седловых точек. Обучение ускоряется в десятки раз, но функция потерь колеблется, и для стабилизации приходится снижать скорость обучения. Мини-пакетный подход занимает промежуточное положение: он усредняет градиенты по подмножеству из 32-256 примеров. Такой метод сохраняет скорость стохастического, но сглаживает его колебания, и в итоге получается баланс между стабильностью и динамикой.
Качество обучения принято оценивать не по ошибке на тренировочных данных, а по точности на отложенном валидационном наборе. Здесь проявляется неожиданный эффект: шум, который мешает сходимости, работает на пользу обобщающей способности. Нейросети, обученные с помощью SGD и MBGD, как правило, показывают лучшие результаты на новых данных, чем модели, обученные пакетным методом. Причина в том, что шумные обновления не позволяют сети идеально запомнить обучающую выборку, действуя как форма регуляризации. BGD же сходится к более острым минимумам, которые плохо переносятся на валидацию. Этот
феномен описан в работах исследователей из Стэнфорда: они показали, что широкие плоские минимумы, достигаемые шумными методами, дают более устойчивые предсказания.
Практический выбор метода всегда определяется ресурсами и задачей. Если набор данных помещается в оперативную память целиком, а точность важнее скорости, можно использовать BGD. Для больших датасетов, особенно для изображений или текстов, где выборка не помещается в память, SGD или MBGD становятся единственным вариантом. При этом размер мини-пакета превращается в гиперпараметр, который приходится подбирать экспериментально: слишком маленький пакет даёт много шума, слишком большой замедляет обучение и снижает обобщение.
Наконец, на практике редко используют какой-либо метод в чистом виде. Стандартная стратегия состоит в комбинации MBGD с расписанием уменьшения скорости обучения. На начальных этапах, когда мы далеко от минимума, скорость обучения держат высокой, позволяя сети быстро исследовать пространство параметров. По мере приближения к оптимуму шаг уменьшают, чтобы сгладить колебания и точно попасть в минимум. Такое расписание (например, линейное или экспоненциальное затухание) напрямую влияет на финальную точность. Без него даже правильно выбранный метод может не сойтись или переобучиться, поэтому контроль гиперпараметров остаётся ключевым навыком при обучении нейросетей.
Нужна такая же работа по своей теме? Соберём структуру, текст и источники в этом же оформлении.