В численном анализе квазиньютоновский метод — это итеративный численный метод, используемый либо для поиска нулей , либо для поиска локальных максимумов и минимумов функций с помощью итеративной рекуррентной формулы, во многом похожей на формулу для метода Ньютона , за исключением использования приближений производных функций вместо точных производных. Метод Ньютона требует матрицу Якоби всех частных производных многомерной функции при использовании для поиска нулей или матрицу Гессе при использовании для поиска экстремумов . Квазиньютоновские методы, с другой стороны, могут использоваться, когда матрицы Якоби или Гессе недоступны или нецелесообразно вычислять на каждой итерации.
Некоторые итерационные методы , сводящиеся к методу Ньютона, такие как последовательное квадратичное программирование , также можно считать квазиньютоновскими методами.
Метод Ньютона для нахождения нулей функции нескольких переменных задается формулой , где — левая обратная матрица Якоби для , вычисленная для .
Строго говоря, любой метод, который заменяет точный якобиан приближением, является квазиньютоновским методом. [1] Например, хордовый метод (где заменяется на для всех итераций) является простым примером. Методы, приведенные ниже для оптимизации, относятся к важному подклассу квазиньютоновских методов, методам секущих . [2]
Использование методов, разработанных для поиска экстремумов, для поиска нулей не всегда является хорошей идеей, поскольку большинство методов, используемых для поиска экстремумов, требуют, чтобы используемая матрица была симметричной. Хотя это справедливо в контексте поиска экстремумов, это редко справедливо при поиске нулей. «Хороший» и «плохой» методы Бройдена — это два метода, которые обычно используются для поиска экстремумов, которые также можно применять для поиска нулей. Другие методы, которые можно использовать, — это метод обновления столбцов, метод обратного обновления столбцов, метод наименьших квадратов квазиньютона и метод обратных наименьших квадратов квазиньютона.
Совсем недавно квазиньютоновские методы были применены для поиска решения множественных связанных систем уравнений (например, задач взаимодействия жидкости и конструкции или задач взаимодействия в физике). Они позволяют найти решение, решая каждую составляющую систему отдельно (что проще глобальной системы) циклическим, итеративным способом, пока не будет найдено решение глобальной системы. [2] [3]
Поиск минимума или максимума скалярной функции тесно связан с поиском нулей градиента этой функции. Поэтому квазиньютоновские методы можно легко применять для поиска экстремумов функции. Другими словами, если — градиент , то поиск нулей векторной функции соответствует поиску экстремумов скалярной функции ; якобиан теперь становится гессианом . Главное отличие состоит в том, что матрица Гессе является симметричной матрицей , в отличие от якобиана при поиске нулей. Большинство квазиньютоновских методов, используемых в оптимизации, используют эту симметрию.
В оптимизации квазиньютоновские методы (частный случай методов переменной метрики ) представляют собой алгоритмы для поиска локальных максимумов и минимумов функций . Квазиньютоновские методы для оптимизации основаны на методе Ньютона для поиска стационарных точек функции, точек, где градиент равен 0. Метод Ньютона предполагает, что функция может быть локально аппроксимирована как квадратичная в области вокруг оптимума, и использует первую и вторую производные для поиска стационарной точки . В более высоких измерениях метод Ньютона использует градиент и матрицу Гессе вторых производных минимизируемой функции.
В квазиньютоновских методах матрицу Гессе не нужно вычислять. Вместо этого Гессеан обновляется путем анализа последовательных векторов градиента. Квазиньютоновские методы являются обобщением метода секущей для нахождения корня первой производной для многомерных задач. В многомерных задачах уравнение секущей недоопределено , и квазиньютоновские методы отличаются тем, как они ограничивают решение, обычно добавляя простое обновление низкого ранга к текущей оценке Гессеана.
Первый квазиньютоновский алгоритм был предложен Уильямом С. Дэвидоном , физиком, работавшим в Аргоннской национальной лаборатории . Он разработал первый квазиньютоновский алгоритм в 1959 году: формулу обновления DFP , которая позже была популяризирована Флетчером и Пауэллом в 1963 году, но редко используется сегодня. Наиболее распространенными квазиньютоновскими алгоритмами в настоящее время являются формула SR1 (для «симметричного ранга один»), метод BHHH , широко распространенный метод BFGS (предложенный независимо Бройденом, Флетчером, Гольдфарбом и Шенно в 1970 году) и его расширение с низким объемом памяти L-BFGS . Класс Бройдена представляет собой линейную комбинацию методов DFP и BFGS.
Формула SR1 не гарантирует, что матрица обновления будет сохранять положительную определенность , и может использоваться для неопределенных задач. Метод Бройдена не требует, чтобы матрица обновления была симметричной, и используется для нахождения корня общей системы уравнений (а не градиента) путем обновления якобиана (а не гессиана).
Одним из главных преимуществ квазиньютоновских методов по сравнению с методом Ньютона является то, что матрица Гессе (или, в случае квазиньютоновских методов, ее аппроксимация) не нуждается в инвертировании. Метод Ньютона и его производные, такие как методы внутренней точки , требуют инвертирования Гессе, что обычно реализуется путем решения системы линейных уравнений и часто является довольно затратным. Напротив, квазиньютоновские методы обычно генерируют оценку напрямую.
Как и в методе Ньютона , используется приближение второго порядка для нахождения минимума функции . Ряд Тейлора вокруг итерации равен
где ( ) — градиент , а приближение к матрице Гессе . [4] Градиент этого приближения (по отношению к ) равен
и установка этого градиента на ноль (что является целью оптимизации) обеспечивает шаг Ньютона:
Аппроксимация Гессе выбрана для удовлетворения
которое называется уравнением секущей (рядом Тейлора самого градиента). В более чем одном измерении недоопределено . В одном измерении решение и применение шага Ньютона с обновленным значением эквивалентно методу секущей . Различные квазиньютоновские методы отличаются выбором решения уравнения секущей (в одном измерении все варианты эквивалентны). Большинство методов (но с исключениями, такими как метод Бройдена ) ищут симметричное решение ( ); кроме того, перечисленные ниже варианты могут быть мотивированы нахождением обновления , которое максимально близко к в некоторой норме ; то есть, , где — некоторая положительно определенная матрица , определяющая норму. Приближенного начального значения часто достаточно для достижения быстрой сходимости, хотя нет общей стратегии для выбора . [5] Обратите внимание, что должно быть положительно определенным. Неизвестное обновляется с применением шага Ньютона, рассчитанного с использованием текущей приближенной матрицы Гессе :
используется для обновления приближенного гессиана или непосредственно его обратного с использованием формулы Шермана–Моррисона .
Наиболее популярные формулы обновления:
Другие методы — это метод Пирсона, метод Маккормика, метод Пауэлла-симметричного Бройдена (PSB) и метод Гринштадта. [2] Эти рекурсивные обновления матриц низкого ранга также могут быть представлены как начальная матрица плюс коррекция низкого ранга. Это компактное квазиньютоновское представление , которое особенно эффективно для ограниченных и/или больших задач.
Когда — выпуклая квадратичная функция с положительно определенным гессианом , можно было бы ожидать, что матрицы, сгенерированные методом квазиньютона, будут сходиться к обратному гессиану . Это действительно так для класса методов квазиньютона, основанных на обновлениях с наименьшими изменениями. [6]
Реализации квазиньютоновских методов доступны во многих языках программирования.
Известные реализации с открытым исходным кодом включают в себя:
fsolve
использует в своей работе разновидность BFGS с расширениями доверенных областей .optim
оптимизаторная процедура R использует метод BFGS с помощью method="BFGS"
. [7]scipy.optimize.minimize
включает, среди прочих методов, реализацию BFGS . [8]Известные фирменные реализации включают в себя:
fminunc
использует (помимо других методов) квазиньютоновский метод BFGS . [12] Многие из ограниченных методов Optimization toolbox используют BFGS и вариант L-BFGS . [13]