stringtranslate.com

Алгоритм Бройдена–Флетчера–Гольдфарба–Шанно

В числовой оптимизации алгоритм Бройдена–Флетчера–Гольдфарба–Шанно ( BFGS ) является итеративным методом решения задач нелинейной оптимизации без ограничений. [1] Как и связанный с ним метод Дэвидона–Флетчера–Пауэлла , BFGS определяет направление спуска , предварительно обуславливая градиент информацией о кривизне. Он делает это путем постепенного улучшения приближения к матрице Гессе функции потерь , полученной только из оценок градиента (или приближенных оценок градиента) с помощью обобщенного метода секущих . [2]

Поскольку обновления матрицы кривизны BFGS не требуют обращения матрицы , ее вычислительная сложность составляет всего , по сравнению с методом Ньютона . Также широко используется L-BFGS , который является версией BFGS с ограниченной памятью, которая особенно подходит для задач с очень большим количеством переменных (например, >1000). Вариант BFGS-B обрабатывает простые ограничения ящика. [3] . Матрица BFGS также допускает компактное представление , что делает ее более подходящей для больших задач с ограничениями.

Алгоритм назван в честь Чарльза Джорджа Бройдена , Роджера Флетчера , Дональда Голдфарба и Дэвида Шенно . [4] [5] [6] [7]

Обоснование

Задача оптимизации заключается в минимизации , где — вектор в , а — дифференцируемая скалярная функция. Нет ограничений на значения, которые могут принимать.

Алгоритм начинается с начальной оценки оптимального значения и продолжается итеративно для получения более точной оценки на каждом этапе.

Направление поиска p k на этапе k задается решением аналога уравнения Ньютона:

где — приближение к матрице Гессе в , которая обновляется итеративно на каждом этапе, а — градиент функции, вычисленной в x k . Затем используется линейный поиск в направлении p k для нахождения следующей точки x k +1 путем минимизации по скаляру

Квази-Ньютоновское условие, налагаемое на обновление, равно

Пусть и , тогда удовлетворяет

,

что является уравнением секанса.

Условие кривизны должно быть выполнено для того, чтобы быть положительно определенным, что можно проверить, предварительно умножив уравнение секущей на . Если функция не является сильно выпуклой , то условие должно быть выполнено явно, например, путем нахождения точки x k +1 , удовлетворяющей условиям Вульфа , которые влекут за собой условие кривизны, с помощью линейного поиска.

Вместо того чтобы требовать вычисления полной матрицы Гессе в точке как , приближенный Гессиан на этапе k обновляется путем добавления двух матриц:

Оба и являются симметричными матрицами ранга один, но их сумма является матрицей обновления ранга два. Матрицы обновления BFGS и DFP отличаются от своего предшественника матрицей ранга два. Другой более простой метод ранга один известен как симметричный метод ранга один, который не гарантирует положительной определенности . Чтобы сохранить симметрию и положительную определенность , форму обновления можно выбрать как . Налагая условие секущей, . Выбирая и , мы можем получить: [8]

Наконец, подставляем и и получаем уравнение обновления :

Алгоритм

Рассмотрим следующую задачу безусловной оптимизации, где — нелинейная целевая функция.

Из начального предположения и начального предположения матрицы Гессе следующие шаги повторяются по мере сходимости к решению:

  1. Получите направление, решив .
  2. Выполнить одномерную оптимизацию ( поиск по линии ) для нахождения приемлемого размера шага в направлении, найденном на первом шаге. Если выполняется точный поиск по линии, то . На практике обычно достаточно неточного поиска по линии с приемлемым удовлетворяющим условиям Вульфа .
  3. Установить и обновить .
  4. .
  5. .

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

Первый шаг алгоритма выполняется с использованием обратной матрицы , которую можно эффективно получить, применив формулу Шермана–Моррисона к шагу 5 алгоритма, что дает

Это можно эффективно вычислить без временных матриц, распознавая, что является симметричным, и что и являются скалярами, используя такое расширение, как

Поэтому, чтобы избежать инверсии матрицы, можно аппроксимировать обратную матрицу Гессе вместо самой матрицы Гессе: [9]

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

  1. Получите направление, решив .
  2. Выполнить одномерную оптимизацию ( поиск по линии ) для нахождения приемлемого размера шага в направлении, найденном на первом шаге. Если выполняется точный поиск по линии, то . На практике обычно достаточно неточного поиска по линии с приемлемым удовлетворяющим условиям Вульфа .
  3. Установить и обновить .
  4. .
  5. .

В задачах статистической оценки (таких как максимальное правдоподобие или байесовский вывод) достоверные интервалы или доверительные интервалы для решения могут быть оценены из обратной конечной матрицы Гессе [ требуется ссылка ] . Однако эти величины технически определяются истинной матрицей Гессе, и приближение BFGS может не сходиться к истинной матрице Гессе. [10]

Дальнейшее развитие событий

Формула обновления BFGS в значительной степени опирается на то, что кривизна строго положительна и отделена от нуля. Это условие выполняется, когда мы выполняем линейный поиск с условиями Вульфа на выпуклой цели. Однако некоторые реальные приложения (например, методы последовательного квадратичного программирования) регулярно выдают отрицательные или почти нулевые кривизны. Это может произойти при оптимизации невыпуклой цели или при использовании подхода доверительной области вместо линейного поиска. Также возможно получение ложных значений из-за шума в цели.

В таких случаях можно использовать одно из так называемых затухающих обновлений BFGS (см. [11] ), которые модифицируют и/или для получения более надежного обновления.

Известные реализации

Известные реализации с открытым исходным кодом:

Известные фирменные реализации включают в себя:

Смотрите также

Ссылки

  1. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN 978-0-471-91547-8
  2. ^ Деннис, Дж. Э. младший ; Шнабель, Роберт Б. (1983), «Методы секущих для безусловной минимизации», Численные методы безусловной оптимизации и нелинейные уравнения , Энглвуд Клиффс, Нью-Джерси: Prentice-Hall, стр. 194–215, ISBN 0-13-627216-9
  3. ^ Берд, Ричард Х.; Лу, Пэйхуан; Нокедаль, Хорхе; Чжу, Цию (1995), «Алгоритм с ограниченной памятью для оптимизации с ограниченными ограничениями», SIAM Journal on Scientific Computing , 16 (5): 1190–1208, CiteSeerX 10.1.1.645.5814 , doi : 10.1137/0916069 
  4. ^ Бройден, К. Г. (1970), «Сходимость класса алгоритмов минимизации двойного ранга», Журнал Института математики и ее приложений , 6 : 76–90, doi : 10.1093/imamat/6.1.76
  5. ^ Флетчер, Р. (1970), «Новый подход к алгоритмам с переменной метрикой», Computer Journal , 13 (3): 317–322, doi : 10.1093/comjnl/13.3.317
  6. ^ Голдфарб, Д. (1970), «Семейство переменных метрических обновлений, полученных с помощью вариационных средних», Математика вычислений , 24 (109): 23–26, doi : 10.1090/S0025-5718-1970-0258249-6
  7. ^ Шэнно, Дэвид Ф. (июль 1970 г.), «Обусловленность квазиньютоновских методов минимизации функций», Mathematics of Computation , 24 (111): 647–656, doi : 10.1090/S0025-5718-1970-0274029-X , MR  0274029
  8. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN 978-0-471-91547-8
  9. ^ Нокедаль, Хорхе; Райт, Стивен Дж. (2006), Численная оптимизация (2-е изд.), Берлин, Нью-Йорк: Springer-Verlag , ISBN 978-0-387-30303-1
  10. ^ Ge, Ren-pu; Powell, MJD (1983). "Сходимость матриц переменной метрики в неограниченной оптимизации". Математическое программирование . 27 (2). 123. doi :10.1007/BF02591941. S2CID  8113073.
  11. ^ Хорхе Нокедаль; Стивен Дж. Райт (2006), Численная оптимизация
  12. ^ "GNU Scientific Library — документация GSL 2.6". www.gnu.org . Получено 22.11.2020 .
  13. ^ "R: Универсальная оптимизация". stat.ethz.ch . Получено 22.11.2020 .
  14. ^ "scipy.optimize.fmin_bfgs — Справочное руководство SciPy v1.5.4". docs.scipy.org . Получено 22.11.2020 .
  15. ^ "Optim.jl Настраиваемые параметры". julianlsolvers .

Дальнейшее чтение