Квазиньютоновский метод
Квазиньютоновские методы — это методы, используемые для поиска нулей или локальных максимумов и минимумов функций в качестве альтернативы методу Ньютона. Их можно использовать, если якобиан или гессиан недоступны или слишком дороги для вычисления на каждой итерации. «Полный» метод Ньютона требует якобиана для поиска нулей или гессиана для поиска экстремумов. Некоторые итеративные методы , сводящиеся к методу Ньютона, такие как SLSQP , можно считать квазиньютоновскими.
Поиск нулей: поиск корня
[ редактировать ]Метод Ньютона для нахождения нулей функции нескольких переменных определяется выражением , где является левой обратной Якобиана матрицей из оценено за .
Строго говоря, любой метод, заменяющий точный якобиан с приближением – это квазиньютоновский метод. [1] Например, метод аккордов (где заменяется на для всех итераций) — простой пример. Приведенные ниже методы оптимизации относятся к важному подклассу квазиньютоновских методов — секущим методам. [2]
Использование методов, разработанных для поиска экстремумов, для поиска нулей не всегда является хорошей идеей, поскольку большинство методов, используемых для поиска экстремумов, требуют, чтобы используемая матрица была симметричной. Хотя это справедливо в контексте поиска экстремумов, оно редко справедливо при поиске нулей. «Хороший» и «плохой» методы Бройдена — это два метода, обычно используемые для поиска экстремумов, которые также можно применять для поиска нулей. Другими методами, которые можно использовать, являются метод обновления столбцов , обратный метод обновления столбцов , метод квазиньютоновских наименьших квадратов и обратный метод квазиньютоновских наименьших квадратов.
Совсем недавно квазиньютоновские методы стали применяться для поиска решения нескольких связанных систем уравнений (например, задач взаимодействия жидкости и структуры или задач взаимодействия в физике). Они позволяют найти решение путем решения каждой составляющей системы отдельно (что проще, чем глобальная система) циклическим итеративным способом, пока не будет найдено решение глобальной системы. [2] [3]
Поиск экстремумов: оптимизация
[ редактировать ]Поиск минимума или максимума скалярной функции есть не что иное, как поиск нулей градиента этой функции. Следовательно, для нахождения экстремумов функции можно легко применить квазиньютоновские методы. Другими словами, если это градиент , затем ищем нули вектор-функции соответствует поиску экстремумов скалярной функции ; якобиан теперь становится гессеном . Основное отличие состоит в том, что матрица Гессе является симметричной матрицей , в отличие от якобиана при поиске нулей . Это свойство используется в большинстве квазиньютоновских методов, используемых при оптимизации.
В оптимизации квазиньютоновские методы (частный случай метрических методов ) — это алгоритмы поиска локальных максимумов и минимумов функций переменных - . Квазиньютоновские методы основаны на методе Ньютона для поиска стационарной точки функции, где градиент равен 0. Метод Ньютона предполагает, что функция может быть локально аппроксимирована как квадратичная в области вокруг оптимума, и использует первый и второй методы. производные, чтобы найти точку покоя. В более высоких измерениях метод Ньютона использует градиент и матрицу Гессе вторых производных функции, подлежащей минимизации.
В квазиньютоновских методах нет необходимости вычислять матрицу Гессе. Вместо этого гессиан обновляется путем анализа последовательных векторов градиента. Квазиньютоновские методы представляют собой обобщение метода секущего для поиска корня первой производной для многомерных задач. В многомерных измерениях секущее уравнение недостаточно определено , а квазиньютоновские методы различаются тем, как они ограничивают решение, обычно путем добавления простого обновления низкого ранга к текущей оценке гессиана.
Первый алгоритм квазиньютона был предложен Уильямом К. Дэвидоном , физиком, работающим в Аргоннской национальной лаборатории . Он разработал первый алгоритм квазиньютона в 1959 году: формулу обновления DFP , которая позже была популяризирована Флетчером и Пауэллом в 1963 году, но сегодня редко используется. Наиболее распространенными квазиньютоновскими алгоритмами в настоящее время являются формула SR1 (для «симметричного ранга один»), метод BHHH , широко распространенный метод BFGS (предложенный независимо Бройденом, Флетчером, Гольдфарбом и Шэнно в 1970 году) и его низкий уровень. -расширение памяти L-BFGS . Класс Бройдена представляет собой линейную комбинацию методов DFP и BFGS.
Формула SR1 не гарантирует сохранение положительной определенности матрицы обновления и может использоваться для неопределенных задач. не Метод Бройдена требует, чтобы матрица обновления была симметричной, и используется для поиска корня общей системы уравнений (а не градиента) путем обновления якобиана (а не гессиана).
Одним из главных преимуществ квазиньютоновских методов перед методом Ньютона является то, что матрица Гессе (или, в случае квазиньютоновских методов, ее аппроксимация) не нужно переворачивать. Метод Ньютона и его производные, такие как методы внутренней точки , требуют инвертирования гессиана, что обычно реализуется путем решения системы линейных уравнений и часто является довольно дорогостоящим. Напротив, квазиньютоновские методы обычно дают оценку напрямую.
Как и в методе Ньютона , для нахождения минимума функции используется приближение второго порядка. . Серия Тейлор вокруг итерации
где ( ) — градиент , а приближение к матрице Гессе . [4] Градиент этого приближения (по отношению к ) является
и установка этого градиента на ноль (что является целью оптимизации) обеспечивает шаг Ньютона:
Гессенское приближение выбран для удовлетворения
которое называется уравнением секущего (ряд Тейлора самого градиента). В более чем одном измерении является недоопределенным . В одном измерении решаем и применение шага Ньютона с обновленным значением эквивалентно методу секущего . Различные квазиньютоновские методы различаются выбором решения секущего уравнения (в одном измерении все варианты эквивалентны). Большинство методов (но с исключениями, такими как метод Бройдена ) ищут симметричное решение ( ); кроме того, перечисленные ниже варианты могут быть мотивированы поиском обновления это максимально близко к в некоторой норме ; то есть, , где — некоторая положительно определенная матрица , определяющая норму. Примерное начальное значение часто бывает достаточно для достижения быстрой сходимости, хотя не существует общей стратегии, которую можно было бы выбрать. . [5] Обратите внимание, что должно быть положительно-определенным. Неизвестное обновляется с применением шага Ньютона, рассчитанного с использованием текущей приближенной матрицы Гессе :
- , с выбрано для удовлетворения условий Вульфа ;
- ;
- Градиент, рассчитанный в новой точке , и
используется для обновления приблизительного гессиана , или непосредственно его инверсия используя формулу Шермана-Моррисона .
- Ключевым свойством обновлений BFGS и DFP является то, что если положительно определен, и выбирается так, чтобы удовлетворять условиям Вульфа, тогда также положительно определена.
Наиболее популярные формулы обновления:
Другими методами являются метод Пирсона, метод Маккормика, метод Пауэлла, симметричный Бройден (PSB) и метод Гринштадта. [2]
Связь с инверсией матрицы
[ редактировать ]Когда — выпуклая квадратичная функция с положительно определенным гессианом , можно было бы ожидать, что матрицы генерируется квазиньютоновским методом для сходимости к обратному гессиану . Это действительно так для класса квазиньютоновских методов, основанных на обновлениях с наименьшими изменениями. [6]
Известные реализации
[ редактировать ]Реализации квазиньютоновских методов доступны во многих языках программирования.
Известные реализации с открытым исходным кодом включают:
- GNU Octave использует разновидность BFGS в своей
fsolve
функция с расширениями доверительного региона . - Научная библиотека GNU реализует алгоритм Бройдена-Флетчера-Гольдфарба-Шанно ( BFGS ).
- ALGLIB реализует (L)BFGS на C++ и C#.
- Р 's
optim
Программа оптимизатора общего назначения использует метод BFGS, используяmethod="BFGS"
. [7] - В Scipy .optimize есть fmin_bfgs. В SciPy для Python расширении
scipy.optimize.minimize
Функция включает, среди прочего, реализацию BFGS . [8]
Известные собственные реализации включают:
- Mathematica включает квазиньютоновские решатели. [9]
- Библиотека NAG содержит несколько процедур. [10] для минимизации или максимизации функции [11] которые используют алгоритмы квазиньютона.
- В MATLAB Optimization Toolbox
fminunc
Функция использует (среди других методов) BFGS . квазиньютоновский метод [12] Многие из ограниченных методов набора инструментов оптимизации используют BFGS и вариант L-BFGS . [13]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Бройден, CG (1972). «Квазиньютоновские методы». В Мюррей, В. (ред.). Численные методы неограниченной оптимизации . Лондон: Академическая пресса. стр. 87–106. ISBN 0-12-512250-0 .
- ^ Jump up to: а б с Хелтерман, Роб (2009). «Аналитическое исследование квазиньютоновского метода наименьших квадратов для задач взаимодействия» . Кандидатская диссертация, Гентский университет . Проверено 14 августа 2014 г.
- ^ Роб Хелтерман; Дирк Ван Эстер; Даан Верлейен (2015). «Ускорение решения физической модели внутри токамака с использованием метода (обратного) обновления столбца» . Журнал вычислительной и прикладной математики . 279 : 133–144. дои : 10.1016/j.cam.2014.11.005 .
- ^ «Введение в теорему Тейлора для функций многих переменных - Math Insight» . mathinsight.org . Проверено 11 ноября 2021 г.
- ^ Носедаль, Хорхе; Райт, Стивен Дж. (2006). Численная оптимизация . Нью-Йорк: Спрингер. стр. 142 . ISBN 0-387-98793-2 .
- ^ Роберт Мэнсел Гауэр; Петр Рихтарик (2015). «Рандомизированные квазиньютоновские обновления представляют собой алгоритмы линейно сходящейся инверсии матриц». arXiv : 1602.01768 [ мат.NA ].
- ^ «Оптимальная функция — RDocumentation» . www.rdocumentation.org . Проверено 21 февраля 2022 г.
- ^ «Scipy.optimize.minimize — Руководство по SciPy v1.7.1» .
- ^ «Неограниченная оптимизация: методы локальной минимизации — документация на языке Wolfram» . ссылка.wolfram.com . Проверено 21 февраля 2022 г.
- ^ Группа числовых алгоритмов. «Указатель ключевых слов: Квази-Ньютон» . Руководство по библиотеке НАГ, Марк 23 . Проверено 9 февраля 2012 г.
- ^ Группа числовых алгоритмов. «E04 – Минимизация или максимизация функции» (PDF) . Руководство по библиотеке НАГ, Марк 23 . Проверено 9 февраля 2012 г.
- ^ «Найдите минимум неограниченной функции многих переменных — MATLAB fminunc» .
- ^ «Алгоритмы нелинейной оптимизации с ограничениями — MATLAB и Simulink» . www.mathworks.com . Проверено 21 февраля 2022 г.
Дальнейшее чтение
[ редактировать ]- Боннан, JF; Гилберт, Дж. Ч.; Лемарешаль, К. ; Сагастисабал, Калифорния (2006 г.). Численная оптимизация: теоретические и численные аспекты (второе изд.). Спрингер. ISBN 3-540-35445-Х .
- Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN. 978-0-471-91547-8 .
- Носедаль, Хорхе; Райт, Стивен Дж. (1999). «Квазиньютоновские методы» . Численная оптимизация . Нью-Йорк: Спрингер. стр. 192–221. ISBN 0-387-98793-2 .
- Пресс, WH; Теукольский, С.А.; Феттерлинг, WT; Фланнери, BP (2007). «Раздел 10.9. Квазиньютоновские методы или методы переменной метрики в многомерных измерениях» . Численные рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0-521-88068-8 .
- Весы, LE (1985). Введение в нелинейную оптимизацию . Нью-Йорк: Макмиллан. стр. 84–106. ISBN 0-333-32552-4 .