Ускоренный градиент Нестерова
Материал из MachineLearning.
| (3 промежуточные версии не показаны) | |||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM | + | {{well|Статья написана с использованием LLM и проверена участником [[Участник:Arina Pakalova|Arina Pakalova]] 14:54, 25 июня 2026 (MSD)}} |
| + | '''Ускоренный градиент Нестерова''' (англ. ''Nesterov accelerated gradient'', NAG) — семейство оптимальных по порядку итеративных методов первого порядка для решения задач [[Выпуклая оптимизация|выпуклой оптимизации]]. Метод обеспечивает достижение нижней оценки сложности для класса гладких выпуклых задач, равной <tex>O(1/k^2)</tex>, где <tex>k</tex> — номер итерации<ref name="Nesterov1983">Нестеров Ю. Е. Метод решения задачи выпуклого программирования со скоростью сходимости <tex>O(1/k^2)</tex> // Доклады Академии Наук. — 1983. — Т. 269, № 3. — С. 543–547.</ref>. | ||
| - | + | == Определение и актуальность в теории оптимизации == | |
| + | В середине 1980-х годов Ю. Е. Нестеровым была доказана нижняя оценка скорости сходимости для класса гладких выпуклых задач минимизации, показывающая, что ни один метод первого порядка не может гарантировать скорость сходимости быстрее, чем <tex>O(1/k^2)</tex>. До этой работы стандартный [[Градиентный спуск|градиентный спуск]] обеспечивал лишь скорость <tex>O(1/k)</tex>. | ||
| - | + | Ускоренный градиент Нестерова является первым алгоритмом, достигающим этой теоретической нижней границы, что делает его '''оптимальным''' в смысле теории вычислительной сложности черного ящика (first-order black-box optimization)<ref name="Bubeck2015">Bubeck S. Convex Optimization: Algorithms and Complexity. // Foundations and Trends in Machine Learning. — 2015. — Vol. 8, No. 3-4. — P. 231–357.</ref>. В дальнейшем концепция «ускорения» была обобщена на широкий класс невыпуклых, вариационных и стохастических задач, став фундаментальным строительным блоком современных алгоритмов машинного обучения (например, алгоритма FISTA)<ref name="FISTA">Beck A., Teboulle M. A fast iterative shrinkage-thresholding algorithm for linear inverse problems // SIAM Journal on Imaging Sciences. — 2009. — Vol. 2, no. 1. — P. 183–202.</ref>. | |
| - | == | + | == Постановка задачи == |
| + | Рассмотрим задачу безусловной минимизации: | ||
| + | <tex> | ||
| + | \min_{x \in \mathbb{R}^n} f(x), | ||
| + | </tex> | ||
| + | где целевая функция <tex>f: \mathbb{R}^n \to \mathbb{R}</tex> удовлетворяет следующим условиям: | ||
| - | + | # '''[[Выпуклая функция|Выпуклость]]''': для любых <tex>x, y \in \mathbb{R}^n</tex> выполняется <tex>f(y) \ge f(x) + \langle \nabla f(x), y - x \rangle</tex>. | |
| - | <tex>\ | + | # '''[[Условие Липшица|Гладкость]]''': градиент функции является [[Липшицева непрерывность|липшицевым]] с константой <tex>L > 0</tex>, то есть для любых <tex>x, y \in \mathbb{R}^n</tex>: |
| - | + | <tex> | |
| + | \|\nabla f(x) - \nabla f(y)\| \le L \|x - y\|. | ||
| + | </tex> | ||
| + | Эквивалентное условие гладкости: | ||
| + | <tex> | ||
| + | f(y) \le f(x) + \langle \nabla f(x), y - x \rangle + \frac{L}{2} \|x - y\|^2. | ||
| + | </tex> | ||
| - | = | + | Пусть <tex>x^*</tex> — точка минимума функции <tex>f(x)</tex>, а <tex>f^* = f(x^*)</tex> — глобальное минимальное значение. |
| - | + | == Описание метода == | |
| + | Классический вариант метода (1983 г.) генерирует две последовательности: основную точку <tex>x_k</tex> и вспомогательную (экстраполированную) точку <tex>y_k</tex>. | ||
| - | + | '''Алгоритм:''' | |
| - | + | * '''Инициализация:''' <tex>y_0 = x_0 \in \mathbb{R}^n</tex>. | |
| - | + | * '''Итерация''' <tex>k = 0, 1, 2, \dots</tex>: | |
| - | * ''' | + | <tex> |
| - | * ''' | + | \begin{cases} |
| + | x_{k+1} = y_k - \frac{1}{L} \nabla f(y_k), \\ | ||
| + | y_{k+1} = x_{k+1} + \frac{k}{k+3} (x_{k+1} - x_k). | ||
| + | \end{cases} | ||
| + | </tex> | ||
| + | В данном выражении коэффициент <tex>\frac{k}{k+3}</tex> является частным случаем последовательности <tex>\alpha_k = \frac{2}{k+3}</tex>. Существуют эквивалентные формы записи через трехточечный рекуррентный процесс, однако приведенная форма наиболее наглядно демонстрирует механизм «заглядывания вперед» (look-ahead), когда градиент вычисляется не в текущей аппроксимации <tex>x_k</tex>, а в экстраполированной точке <tex>y_k</tex>. | ||
| - | === | + | == Теоретические свойства и скорость сходимости == |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Основной теоретический результат для метода формулируется с помощью техники '''оценивающих последовательностей''' (estimate sequences)<ref name="Nesterov2004">Nesterov Y. Introductory Lectures on Convex Optimization: A Basic Course. — Springer Science & Business Media, 2004. — (См. Главу 2).</ref>. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | '''Определение.''' Последовательность функций <tex>\phi_k: \mathbb{R}^n \to \mathbb{R}</tex> называется оценивающей последовательностью для функции <tex>f</tex>, если выполняются два условия: | |
| - | + | # <tex>\phi_k(x) \le f(x)</tex> для всех <tex>x \in \mathbb{R}^n</tex> и всех <tex>k \ge 0</tex>. | |
| - | + | # Существует такая последовательность <tex>\{y_k\}</tex>, что <tex>f(y_k) \le \phi_k(x^*)</tex> для всех <tex>k \ge 0</tex>. | |
| - | + | ||
| - | + | ||
| - | == | + | === Теорема (О скорости сходимости для гладких выпуклых функций) === |
| + | Пусть функция <tex>f</tex> выпукла и имеет липшицев градиент с константой <tex>L</tex>. Тогда для последовательности <tex>\{y_k\}</tex>, генерируемой ускоренным градиентом Нестерова, выполняется: | ||
| + | <tex> | ||
| + | f(y_k) - f^* \le \frac{2L \|x_0 - x^*\|^2}{(k+1)^2}. | ||
| + | </tex> | ||
| - | + | '''Доказательство.''' | |
| - | + | Рассмотрим оценивающую последовательность вида: | |
| - | * ''' | + | <tex> |
| - | + | \phi_{k+1}(x) = (1 - \alpha_{k+1})\phi_k(x) + \alpha_{k+1} \left[ f(x_{k+1}) + \langle \nabla f(x_{k+1}), x - x_{k+1} \rangle + \frac{L}{2}\|x - x_{k+1}\|^2 \right], | |
| + | </tex> | ||
| + | где <tex>\alpha_0 = 1</tex> и <tex>\alpha_{k+1} = \frac{2}{k+3}</tex>. | ||
| + | В качестве начальной функции выберем <tex>\phi_0(x) = f(x_0) + \langle \nabla f(x_0), x - x_0 \rangle + \frac{L}{2}\|x - x_0\|^2</tex>. | ||
| + | |||
| + | Утверждение 1: <tex>\phi_k(x) \le f(x)</tex> для всех <tex>x</tex>. Докажем по индукции. | ||
| + | * База: <tex>\phi_0(x)</tex> является глобальной верхней оценкой для <tex>f(x)</tex> в силу условия гладкости. | ||
| + | * Шаг индукции: Пусть <tex>\phi_k(x) \le f(x)</tex>. По условию гладкости, выражение в квадратных скобках также является верхней оценкой <tex>f(x)</tex>. Так как <tex>(1-\alpha_{k+1}) \ge 0</tex> и <tex>\alpha_{k+1} \ge 0</tex>, их выпуклая комбинация <tex>\phi_{k+1}(x)</tex> также не превышает <tex>f(x)</tex>. | ||
| + | |||
| + | Утверждение 2: Выполнение условия <tex>f(y_k) \le \phi_k(x^*)</tex>. | ||
| + | Найдем минимум правой части выражения для <tex>\phi_{k+1}(x)</tex>. Точка минимума квадратичной функции в скобках есть <tex>x_{k+1}</tex>. Значение в этой точке равно <tex>f(x_{k+1})</tex>. Следовательно, минимальное значение <tex>\phi_{k+1}(x)</tex> достигается в точке: | ||
| + | <tex> | ||
| + | y_{k+1} = \arg\min_{x} \phi_{k+1}(x) = (1-\alpha_{k+1})y_k + \alpha_{k+1} x_{k+1}. | ||
| + | </tex> | ||
| + | Подставляя <tex>x_{k+1} = y_k - \frac{1}{L}\nabla f(y_k)</tex> и выражение для <tex>\alpha_{k+1}</tex>, после алгебраических преобразований получаем рекуррентное соотношение <tex>y_{k+1} = x_{k+1} + \frac{k}{k+3}(x_{k+1} - x_k)</tex>, что в точности совпадает с алгоритмом. | ||
| + | Оценим значение: | ||
| + | <tex> | ||
| + | \phi_{k+1}(y_{k+1}) = (1-\alpha_{k+1})\phi_k(y_{k+1}) + \alpha_{k+1} f(x_{k+1}) \le (1-\alpha_{k+1})\phi_k(x^*) + \alpha_{k+1} \left[ f(y_k) - \frac{1}{2L}\|\nabla f(y_k)\|^2 \right]. | ||
| + | </tex> | ||
| + | Используя предположение индукции <tex>f(y_k) \le \phi_k(x^*)</tex> и неравенство Коши-Буняковского-Шварца для градиента, можно показать, что <tex>\phi_{k+1}(y_{k+1}) \le \phi_k(x^*) - \frac{\alpha_{k+1}}{2L}\|\nabla f(y_k)\|^2 \le \phi_k(x^*)</tex>. Отсюда <tex>f(y_{k+1}) \le \phi_{k+1}(x^*)</tex>. | ||
| + | |||
| + | Утверждение 3: Оценка скорости. | ||
| + | Введем вспомогательную последовательность <tex>A_k = \alpha_k \prod_{i=1}^{k-1} (1-\alpha_i)</tex>. Можно показать, что <tex>A_k = \frac{2}{(k+1)(k+2)}</tex>. | ||
| + | Из разложения оценивающей последовательности в точке <tex>x^*</tex> следует: | ||
| + | <tex> | ||
| + | A_{k+1} (f(y_{k+1}) - f^*) \le \phi_0(x^*) - f^* \le \frac{L}{2}\|x_0 - x^*\|^2. | ||
| + | </tex> | ||
| + | Подставляя явный вид <tex>A_{k+1}</tex>, получаем искомую оценку <tex>f(y_k) - f^* \le \frac{2L \|x_0 - x^*\|^2}{(k+1)^2}</tex>. <tex>\blacksquare</tex> | ||
| + | |||
| + | === Теорема (О скорости сходимости для сильно выпуклых функций) === | ||
| + | Если функция <tex>f</tex> является [[Сильно выпуклая функция|сильно выпуклой]] с параметром <tex>\mu > 0</tex>, то метод модифицируется путем замены коэффициента экстраполяции на константу: | ||
| + | <tex> | ||
| + | \beta = \frac{\sqrt{L} - \sqrt{\mu}}{\sqrt{L} + \sqrt{\mu}}. | ||
| + | </tex> | ||
| + | Тогда скорость сходимости становится линейной: | ||
| + | <tex> | ||
| + | f(y_k) - f^* \le \left( \frac{\sqrt{L} - \sqrt{\mu}}{\sqrt{L} + \sqrt{\mu}} \right)^{2k} (f(y_0) - f^*). | ||
| + | </tex> | ||
| + | |||
| + | === Свойства метода === | ||
| + | # '''Оптимальность''': Метод достигает теоретической нижней границы <tex>O(1/k^2)</tex> для класса гладких выпуклых задач. Изменение константы шага или коэффициента экстраполяции не может улучшить асимптотику по порядку. | ||
| + | # '''Немонотонность''': В отличие от классического градиентного спуска, последовательность значений целевой функции <tex>\{f(y_k)\}</tex> не является монотонно убывающей. Допускаются локальные возрастания функции на отдельных итерациях. | ||
| + | # '''Чувствительность к шуму''': Метод критически зависит от точности вычисления градиента. При добавлении стохастического шума (в SGD) ускорение может быть утрачено без применения специальных техник стабилизации (например, variance reduction). | ||
| + | # '''Зависимость от константы Липшица''': Практическое применение метода требует знания или оценки константы <tex>L</tex>. Слишком завышенная оценка приводит к замедлению сходимости, заниженная — к расходимости алгоритма. | ||
== Литература == | == Литература == | ||
<references /> | <references /> | ||
| + | |||
| + | == См. также == | ||
| + | * [[Метод инерции Поляка]] | ||
| + | * [[Диагональный метод Левенберга-Марквардта]] | ||
| + | * [[Метод наискорейшего спуска]] - | ||
| + | * [http://www.machinelearning.ru/wiki/images/3/34/Rodomanov-fast-gradient-methods.pdf Быстрый градиентный метод] | ||
| + | * [http://www.machinelearning.ru/wiki/images/0/03/Rodomanov_FGM.pdf Анализ быстрого градиентного метода нестерова для задач машинного обучения с L1-регуляризацией] | ||
| + | * [[Метод сопряжённых градиентов]] | ||
Текущая версия
| | Статья написана с использованием LLM и проверена участником Arina Pakalova 14:54, 25 июня 2026 (MSD) |
Ускоренный градиент Нестерова (англ. Nesterov accelerated gradient, NAG) — семейство оптимальных по порядку итеративных методов первого порядка для решения задач выпуклой оптимизации. Метод обеспечивает достижение нижней оценки сложности для класса гладких выпуклых задач, равной , где
— номер итерации[1].
Содержание |
Определение и актуальность в теории оптимизации
В середине 1980-х годов Ю. Е. Нестеровым была доказана нижняя оценка скорости сходимости для класса гладких выпуклых задач минимизации, показывающая, что ни один метод первого порядка не может гарантировать скорость сходимости быстрее, чем . До этой работы стандартный градиентный спуск обеспечивал лишь скорость
.
Ускоренный градиент Нестерова является первым алгоритмом, достигающим этой теоретической нижней границы, что делает его оптимальным в смысле теории вычислительной сложности черного ящика (first-order black-box optimization)[1]. В дальнейшем концепция «ускорения» была обобщена на широкий класс невыпуклых, вариационных и стохастических задач, став фундаментальным строительным блоком современных алгоритмов машинного обучения (например, алгоритма FISTA)[1].
Постановка задачи
Рассмотрим задачу безусловной минимизации:
где целевая функция
удовлетворяет следующим условиям:
- Выпуклость: для любых
выполняется
.
- Гладкость: градиент функции является липшицевым с константой
, то есть для любых
:
Эквивалентное условие гладкости:
Пусть — точка минимума функции
, а
— глобальное минимальное значение.
Описание метода
Классический вариант метода (1983 г.) генерирует две последовательности: основную точку и вспомогательную (экстраполированную) точку
.
Алгоритм:
- Инициализация:
.
- Итерация
:
В данном выражении коэффициент
является частным случаем последовательности
. Существуют эквивалентные формы записи через трехточечный рекуррентный процесс, однако приведенная форма наиболее наглядно демонстрирует механизм «заглядывания вперед» (look-ahead), когда градиент вычисляется не в текущей аппроксимации
, а в экстраполированной точке
.
Теоретические свойства и скорость сходимости
Основной теоретический результат для метода формулируется с помощью техники оценивающих последовательностей (estimate sequences)[1].
Определение. Последовательность функций называется оценивающей последовательностью для функции
, если выполняются два условия:
-
для всех
и всех
.
- Существует такая последовательность
, что
для всех
.
Теорема (О скорости сходимости для гладких выпуклых функций)
Пусть функция выпукла и имеет липшицев градиент с константой
. Тогда для последовательности
, генерируемой ускоренным градиентом Нестерова, выполняется:
Доказательство.
Рассмотрим оценивающую последовательность вида:
где
и
.
В качестве начальной функции выберем
.
Утверждение 1: для всех
. Докажем по индукции.
- База:
является глобальной верхней оценкой для
в силу условия гладкости.
- Шаг индукции: Пусть
. По условию гладкости, выражение в квадратных скобках также является верхней оценкой
. Так как
и
, их выпуклая комбинация
также не превышает
.
Утверждение 2: Выполнение условия .
Найдем минимум правой части выражения для
. Точка минимума квадратичной функции в скобках есть
. Значение в этой точке равно
. Следовательно, минимальное значение
достигается в точке:
Подставляя
и выражение для
, после алгебраических преобразований получаем рекуррентное соотношение
, что в точности совпадает с алгоритмом.
Оценим значение:
Используя предположение индукции
и неравенство Коши-Буняковского-Шварца для градиента, можно показать, что
. Отсюда
.
Утверждение 3: Оценка скорости.
Введем вспомогательную последовательность . Можно показать, что
.
Из разложения оценивающей последовательности в точке
следует:
Подставляя явный вид
, получаем искомую оценку
.
Теорема (О скорости сходимости для сильно выпуклых функций)
Если функция является сильно выпуклой с параметром
, то метод модифицируется путем замены коэффициента экстраполяции на константу:
Тогда скорость сходимости становится линейной:
Свойства метода
- Оптимальность: Метод достигает теоретической нижней границы
для класса гладких выпуклых задач. Изменение константы шага или коэффициента экстраполяции не может улучшить асимптотику по порядку.
- Немонотонность: В отличие от классического градиентного спуска, последовательность значений целевой функции
не является монотонно убывающей. Допускаются локальные возрастания функции на отдельных итерациях.
- Чувствительность к шуму: Метод критически зависит от точности вычисления градиента. При добавлении стохастического шума (в SGD) ускорение может быть утрачено без применения специальных техник стабилизации (например, variance reduction).
- Зависимость от константы Липшица: Практическое применение метода требует знания или оценки константы
. Слишком завышенная оценка приводит к замедлению сходимости, заниженная — к расходимости алгоритма.
Литература

