Обсуждение:Методы оптимизации в машинном обучении

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''DeepSeek V3''' и проверена участником ~~~~}} {{TOCright}} '''Методы оптимиз...)
(Предварительные сведения и постановка задачи)
 
Строка 13: Строка 13:
В контексте [[Машинное обучение|машинного обучения]] <tex>L(\theta)</tex> представляет собой [[Эмпирический риск|эмпирический риск]] — усреднение потерь по конечному множеству объектов. Итерационный процесс обновления параметров в большинстве методов первого порядка подчиняется схеме:
В контексте [[Машинное обучение|машинного обучения]] <tex>L(\theta)</tex> представляет собой [[Эмпирический риск|эмпирический риск]] — усреднение потерь по конечному множеству объектов. Итерационный процесс обновления параметров в большинстве методов первого порядка подчиняется схеме:
::<tex>\theta_{t+1} = \theta_t - \eta_t \cdot g_t,</tex>
::<tex>\theta_{t+1} = \theta_t - \eta_t \cdot g_t,</tex>
-
где <tex>\eta_t</tex> — [[Скорость обучения|скорость обучения]] (Learning Rate), а <tex>g_t</font></tex> — вектор направления, строящийся на основе текущих и ретроспективных значений градиента функции потерь.
+
где <tex>\eta_t</tex> — [[Скорость обучения|скорость обучения]] (Learning Rate), а <tex>g_t</tex> — вектор направления, строящийся на основе текущих и ретроспективных значений градиента функции потерь.
Принципиальное отличие оптимизации в глубоком обучении от классической выпуклой оптимизации заключается в ландшафте целевой функции. В невыпуклых пространствах высокой размерности алгоритм сталкивается со следующими барьерами:
Принципиальное отличие оптимизации в глубоком обучении от классической выпуклой оптимизации заключается в ландшафте целевой функции. В невыпуклых пространствах высокой размерности алгоритм сталкивается со следующими барьерами:

Текущая версия

Статья написана с использованием LLM DeepSeek V3 и проверена участником Artyom Savov 18:21, 30 июня 2026 (MSD)


Содержание

Методы оптимизации в машинном обучении — совокупность алгоритмов, предназначенных для поиска параметров модели, минимизирующих заданную функцию потерь (Loss Function). Поскольку современные модели, особенно глубокие нейронные сети, могут содержать миллиарды параметров и обучаются на огромных наборах данных, выбор оптимизатора определяет не только скорость сходимости, но и итоговое качество обобщения.

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

Предварительные сведения и постановка задачи

Пусть параметрическое семейство функций задано вектором весов \theta \in \mathbb{R}^d. Качество аппроксимации на обучающей выборке оценивается посредством дифференцируемой функции потерь L(\theta). Задача минимизации формулируется как поиск вектора параметров:

\theta^* = \arg\min_{\theta} L(\theta).

В контексте машинного обучения L(\theta) представляет собой эмпирический риск — усреднение потерь по конечному множеству объектов. Итерационный процесс обновления параметров в большинстве методов первого порядка подчиняется схеме:

\theta_{t+1} = \theta_t - \eta_t \cdot g_t,

где \eta_tскорость обучения (Learning Rate), а g_t — вектор направления, строящийся на основе текущих и ретроспективных значений градиента функции потерь.

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

  • Плотность седловых точек и плато: В пространствах большой размерности локальные минимумы с высоким значением функции потерь встречаются редко; основной причиной замедления сходимости становятся седловые точки, окруженные областями с исчезающе малым градиентом.
  • Плохая обусловленность ландшафта: Образование «оврагов», где кривизна поверхности в разных направлениях различается на несколько порядков, приводит к осцилляциям градиента и замедлению продвижения вдоль дна оврага.
  • Затухание и взрыв градиентов: При увеличении глубины архитектур последовательное умножение матриц весов при обратном проходе может приводить к экспоненциальному убыванию или росту нормы градиента.
  • Дилемма оптимизации и обобщения: Минимизация эмпирического риска до нулевых значений на обучающей выборке не гарантирует оптимум на тестовых данных. Главной целью становится поиск широких локальных минимумов, обеспечивающих высокую обобщающую способность (Generalization).

Эволюция методов первого порядка

От пакетного спуска к стохастическому

Классический пакетный градиентный спуск (Batch Gradient Descent), восходящий к О. Коши (1847), вычислеляет точный градиент по всему объёму обучающей выборки:

\theta_{t+1} = \theta_t - \eta \nabla_\theta L(\theta_t).

При росте объёма данных этот подход становится вычислительно невозможным. Решением стал стохастический градиентный спуск (Stochastic Gradient Descent, SGD), предложенный Г. Роббинсом и С. Монро (1951), где точный градиент аппроксимируется градиентом на случайно выбранном подмножестве объектов — мини-батче:

\theta_{t+1} = \theta_t - \eta \hat{g}_t,

где \mathbb{E}[\hat{g}_t] = \nabla_\theta L(\theta_t).

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

Инерциальные методы (Momentum, NAG)

Для подавления осцилляций в овражистых ландшафтах Б. Т. Поляк (1964) предложил метод тяжелого шарика (Momentum). Алгоритм накапливает историю изменений в векторе скорости v_t:

v_t = \beta v_{t-1} + \eta \hat{g}_t, \qquad \theta_{t+1} = \theta_t - v_t,

где \beta \in [0, 1) задаёт экспоненциальное сглаживание. Инерция суммирует сонаправленные компоненты градиента и взаимно уничтожает противоположно направленные, ускоряя движение по дну оврагов.

Ю. Е. Нестеров (1983) модифицировал этот подход (Nesterov Accelerated Gradient, NAG), предложив вычислять градиент в «предсказанной» точке \theta_t - \beta v_{t-1}. Для глубокого обучения И. Суцкевером (2013) была разработана математически эквивалентная схема, адаптированная под фреймворки автоматического дифференцирования, вычисляющая градиент в текущей точке, но корректирующая шаг за счёт заглядывания вперёд:

v_t = \mu v_{t-1} + \hat{g}_t, \qquad \theta_{t+1} = \theta_t - \eta \,(\hat{g}_t + \mu v_t).

Адаптивное масштабирование шага

Потребность в индивидуальной скорости обучения для каждого параметра привела к созданию AdaGrad (Duchi et al., 2011). Метод делит базовую скорость обучения на корень из суммы квадратов прошлых градиентов:

\theta_{t+1,i} = \theta_{t,i} - \frac{\eta}{\sqrt{G_{t,ii} + \varepsilon}} \hat{g}_{t,i},

где G_{t,ii} = \sum_{\tau=1}^t \hat{g}_{\tau,i}^2.

AdaGrad эффективен при обработке разреженных признаков (например, в Word2Vec), однако монотонный рост знаменателя G_{t,ii} приводит к преждевременной остановке обучения в глубоких сетях.

Ограничение было снято в RMSProp (Hinton, 2012) и AdaDelta (Zeiler, 2012) за счёт замены бесконечной суммы экспоненциальным скользящим средним:

v_t = \beta_2 v_{t-1} + (1 - \beta_2) \hat{g}_t^2, \qquad \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{v_t + \varepsilon}} \hat{g}_t.

Объединение идеи адаптивного шага RMSProp и инерции Momentum реализовано в оптимизаторе Adam (Kingma & Ba, 2015). Он отслеживает оценки первого (m_t) и второго (v_t) моментов градиента с коррекцией смещения к нулю на начальных итерациях:

\hat{m}_t = \frac{m_t}{1-\beta_1^t}, \qquad \hat{v}_t = \frac{v_t}{1-\beta_2^t}, \qquad \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \varepsilon} \hat{m}_t.

Проблема весового распада в адаптивных методах (AdamW)

И. Лощиков и Ф. Хуттер (2019) обнаружили, что стандартная L2-регуляризация при совместном использовании с Adam работает некорректно. В классическом SGD добавление штрафа \lambda \theta к функции потерь эквивалентно математическому вычитанию доли веса (Weight Decay) на каждом шаге. В Adam градиент штрафа масштабируется делителем \sqrt{\hat{v}_t}, из-за чего параметры с большими историческими градиентами штрафуются слабее, чем параметры с малыми градиентами. Оптимизатор AdamW изолирует регуляризацию, перенося вычитание веса напрямую в финальное уравнение обновления:

\theta_{t+1} = \theta_t - \eta \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \varepsilon} + \lambda \theta_t \right).

Это исправление стабилизировало предобучение архитектур Transformer и Vision Transformer (ViT).

Экономичные знаковые методы (Lion)

С целью снижения накладных расходов по памяти при обучении сверхкрупных моделей И. Чен и др. (2023) с помощью символьного AutoML обнаружили оптимизатор Lion (EvoLved Sign Momentum). В отличие от AdamW, Lion хранит только первый момент градиента, а вместо точной величины нормированного шага использует его знак:

c_t = \beta_1 m_{t-1} + (1 - \beta_1) \hat{g}_t, \qquad \theta_{t+1} = \theta_t - \eta \cdot \mathrm{sign}(c_t),
m_t = \beta_2 m_{t-1} + (1 - \beta_2) \hat{g}_t.

Фиксированная норма обновления действует как регуляризатор, внося дополнительный шум на этапе стохастической оценки. Метод критичен к выбору расписания обучения: без использования косинусного снижения скорости (Cosine LR Schedule) знаковое обновление склонно к осцилляциям в окрестностях оптимума.

Методы второго порядка и аппроксимации кривизны

Использование матрицы вторых производных (гессиана H) позволяет учитывать кривизну ландшафта и совершать шаг Ньютона:

\theta_{t+1} = \theta_t - H_t^{-1} g_t.

В классической выпуклой оптимизации квазиньютоновский метод L-BFGS (Liu & Nocedal, 1989) аппроксимирует обратный гессиан по истории изменений градиентов, требуя O(md) памяти. Однако в глубоком обучении в стохастическом режиме L-BFGS разрушается: шум разности градиентов на последовательных мини-батчах нарушает уравнение секущих (H_{t+1}s_t = y_t), делая оценку кривизны нестабильной.

Hessian-Free оптимизация

Мостом к масштабируемым методам второго порядка в нейросетях стал Hessian-Free подход (Martens, 2010). Алгоритм не формирует матрицу H явно, а использует численный метод произведения гессиана на вектор (техника Перлмуттера):

H v = \left. \frac{\partial}{\partial \alpha} \nabla_\theta L(\theta + \alpha v) \right|_{\alpha=0}.

Это позволяет находить направление шага из квадратичной подзадачи с помощью метода сопряжённых градиентов во внутреннем цикле оптимизации.

Структурные аппроксимации (K-FAC, Shampoo)

Современные методы аппроксимируют кривизну, опираясь на структуру самой сети:

  • K-FAC (Kronecker-factored Approximate Curvature): Martens & Grosse (2015) предложили аппроксимировать матрицу Фишера (выступающую как замена гессиана) для каждого слоя в виде Кронекерова произведения двух матриц меньшей размерности, построенных на основе ковариации активаций и градиентов активаций. Это делает операцию обращения вычислительно доступной.
  • Shampoo: Gupta et al. (2018) обобщили идеи адаптации на тензорную структуру весов слоёв. Вместо независимого масштабирования каждого параметра Shampoo вычисляет левую и правую матрицы вторых моментов для тензора весов, сохраняя пространственные корреляции между градиентами.

Sophia: адаптация второго порядка для языковых моделей

Разработанный Х. Лю и др. (2024) оптимизатор Sophia решает проблему вычислительной сложности за счёт редкого (раз в k шагов) вычисления диагонали матрицы Гаусса-Ньютона (или эмпирической информационной матрицы Фишера). Sophia учитывает локальную кривизну, предотвращая замедление в оврагах, но ограничивает максимальный шаг с помощью операции клиппинга:

\theta_{t+1} = \theta_t - \eta \cdot \mathrm{clip}\left( \frac{m_t}{\max(\hat{h}_t, \varepsilon)} , \rho \right),

где \hat{h}_t — экспоненциально сглаженная диагональная оценка кривизны.

Мета-оптимизация: Lookahead и двухуровневые схемы

Оптимизатор Lookahead (Zhang et al., 2019) предлагает мета-структуру «два шага вперёд, один шаг назад», которая может быть развёрнута над любым базовым оптимизатором (SGD, AdamW). Lookahead синхронизирует два множества весов — «быстрые» (\theta) и «медленные» (\phi).

Быстрые веса обновляются базовым оптимизатором на протяжении k итераций, после чего медленные веса линейно интерполируются в направлении быстрых, а быстрые веса сбрасываются к новому состоянию:

\phi_{t+1} = \phi_t + \alpha (\theta_{t+k} - \phi_t), \qquad \theta_{t+k+1} = \phi_{t+1}.

Такая схема эффективно снижает дисперсию стохастических шагов, стабилизирует траекторию в невыпуклых ландшафтах и ослабляет чувствительность к ручному подбору расписания Learning Rate.

Оптимизация с учётом геометрии ландшафта (SAM)

Принципиальным сдвигом в парадигме оптимизации глубоких сетей стало появление метода SAM (Sharpness-Aware Minimization, Foret et al., 2021). Классические методы ищут точку с минимальным значением эмпирического риска, что часто приводит к попаданию в узкие, крутые минимумы, чувствительные к сдвигу распределения на тестовых данных. SAM максимизирует обобщающую способность, решая минимаксную задачу — поиск окрестности параметров, в которой вся область имеет низкое значение потерь:

\min_{\theta} L^{\mathrm{SAM}}(\theta) = \min_{\theta} \max_{\|\epsilon\|_2 \le \rho} L(\theta + \epsilon).

Для решения этой задачи на каждой итерации SAM выполняет два шага:

  1. Поиск худшего возмущения: С помощью линейной аппроксимации первого порядка находится вектор \epsilon^*(\theta), максимизирующий локальные потери в пределах сферы радиуса \rho:
    \epsilon^*(\theta) \approx \rho \frac{\nabla_\theta L(\theta)}{\|\nabla_\theta L(\theta)\|_2}.
  2. Градиентный шаг: Вычисляется финальный градиент в возмущённой точке, и исходный вектор параметров обновляется:
    g^{\mathrm{SAM}} = \nabla_\theta L(\theta + \epsilon^*(\theta)), \qquad \theta_{t+1} = \theta_t - \eta g^{\mathrm{SAM}}.

SAM удваивает вычислительную стоимость одной итерации (требуется два прохода — прямой и обратный — для вычисления \nabla_\theta L(\theta) и \nabla_\theta L(\theta + \epsilon^*)), однако гарантирует сходимость к плоским минимумам, что напрямую транслируется в устойчивость к шуму в данных.

Оптимизация в минимаксных задачах

В задачах состязательного обучения, таких как GAN, целевой ландшафт имеет седловую природу. Алгоритм ищет точку равновесия Нэша — минимум по параметрам генератора \theta_G и максимум по параметрам дискриминатора \theta_D:

\min_{\theta_G} \max_{\theta_D} L(\theta_G, \theta_D).

Прямое применение одновременного градиентного спуска-подъёма (Simultaneous GDA) часто приводит к расходимости. Если обозначить объединённый вектор параметров как \phi = [\theta_G, \theta_D]^\top, а векторное поле градиентов как V(\phi) = [\nabla_{\theta_G} L, -\nabla_{\theta_D} L]^\top, то шаг GDA записывается так:

\phi_{t+1} = \phi_t - \eta V(\phi_t).

На седловых поверхностях векторное поле V имеет сильную вращательную компоненту, из-за которой траектории GDA экспоненциально раскручиваются наружу (феномен схлопывания моды).

Для стабилизации динамики применяются специализированные методы, модифицирующие вычисление градиента:

  • Экстраградиентный метод (Extragradient, EG): Делает промежуточный шаг («заглядывание вперёд») для оценки градиента, после чего выполняет основное обновление из исходной точки. Это компенсирует вращение векторного поля:
\phi_{t+1/2} = \phi_t - \eta V(\phi_t), \qquad \phi_{t+1} = \phi_t - \eta V(\phi_{t+1/2}).
  • Оптимистичный шаг (Optimistic GDA / Optimistic Adam): Аппроксимирует экстраградиент, используя градиент с предыдущего шага как предсказание. Экономит один прямой проход сети:
\phi_{t+1} = \phi_t - \eta \big( 2V(\phi_t) - V(\phi_{t-1}) \big).
  • Разномасштабные шаги (TTUR, Two Time-Scale Update Rules): Дискриминатор и генератор обучаются с разными скоростями (\eta_D > \eta_G). Это позволяет максимизирующему игроку быстрее адаптироваться к изменениям, стабилизируя минимизацию функции ценности игры:
\theta_{G, t+1} = \theta_{G, t} - \eta_G \nabla_{\theta_G} L, \qquad \theta_{D, t+1} = \theta_{D, t} + \eta_D \nabla_{\theta_D} L.

Использование стандартных адаптивных методов (Adam, Lion) в минимаксных задачах без этих модификаций усугубляет нестабильность. Накопленный в них момент первого порядка сохраняет устаревшую информацию о вращении, заставляя алгоритм систематически проскакивать седловые точки.

Сводная таблица рекомендаций

Оптимизатор Порядок Расход памяти на параметр Ключевое свойство Основная область применимости
SGD + Momentum 1-й 1 \times \theta Инерционное сглаживание осцилляций Классическое компьютерное зрение (ResNet)
Adam 1-й 2 \times \theta Адаптивный шаг для каждого параметра Прототипирование, GAN
AdamW 1-й 2 \times \theta Изолированное затухание весов Архитектуры Transformer, LLM, диффузионные модели
Lion 1-й 1 \times \theta Знаковое обновление, экономия памяти Масштабирование больших моделей (ViT, LLM)
Lookahead Мета Зависит от базового Двухуровневая интерполяция весов Стабилизация нестабильных процессов обучения
SAM Ландшафт 1 \times \theta (+2x вычисления) Минимизация кривизны (поиск плоских минимумов) Борьба с переобучением, робастное обобщение
K-FAC Аппрокс. 2-й Слоистые матрицы Фишера Кронекерова факторизация кривизны Ускорение сходимости по числу итераций
Sophia Аппрокс. 2-й 2 \times \theta (редкое обновление) Диагональная оценка матрицы Гаусса-Ньютона Предобучение больших языковых моделей

Заключение и перспективы

Эволюция методов оптимизации в машинном обучении следует по пути от простых градиентных спусков к сложным адаптивным и квазиньютоновским алгоритмам, которые одновременно учитывают инерцию, индивидуальную кривизну параметров и ограничения по памяти. Выбор конкретного оптимизатора сегодня — это баланс между скоростью сходимости, качеством обобщения и вычислительным бюджетом. Актуальные исследования сосредоточены на методах, которые извлекают пользу из информации второго порядка (Sophia, Shampoo) или автоматически найденных правил обновления (Lion), а также на теоретическом осмыслении связи оптимизации и обобщения в глубоких сетях.

Литература

  • Robbins, H., Monro, S. (1951). A Stochastic Approximation Method. Annals of Mathematical Statistics.
  • Polyak, B.T. (1964). Some methods of speeding up the convergence of iteration methods. USSR Computational Mathematics and Mathematical Physics.
  • Nesterov, Y. (1983). A method of solving a convex programming problem with convergence rate <texO(1/k^2)</tex>. Soviet Mathematics Doklady.
  • Sutskever, I., Martens, J., Dahl, G., Hinton, G. (2013). On the importance of initialization and momentum in deep learning. ICML.
  • Duchi, J., Hazan, E., Singer, Y. (2011). Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. JMLR.
  • Kingma, D.P., Ba, J. (2015). Adam: A Method for Stochastic Optimization. ICLR.
  • Loshchilov, I., Hutter, F. (2019). Decoupled Weight Decay Regularization. ICLR.
  • Chen, X., et al. (2023). Symbolic Discovery of Optimization Algorithms. NeurIPS.
  • Martens, J. (2010). Deep learning via Hessian-free optimization. ICML.
  • Martens, J., Grosse, R. (2015). Optimizing neural networks with Kronecker-factored approximate curvature. ICML.
  • Liu, H., et al. (2024). Sophia: A Scalable Stochastic Second-order Optimizer for Language Model Pre-training. ICLR.
  • Zhang, M., et al. (2019). Lookahead Optimizer: k steps forward, 1 step back. NeurIPS.
  • Foret, P., Kleiner, O., Mobahi, H., Neyshabur, B. (2021). Sharpness-Aware Minimization for Efficiently Improving Generalization. ICLR.