Алгоритм Бройдена – Флетчера – Гольдфарба – Шенно - Broyden–Fletcher–Goldfarb–Shanno algorithm

В числовой оптимизация, то Бройден – Флетчер – Гольдфарб – Шанно (BFGS) алгоритм является итерационный метод для решения неограниченных нелинейная оптимизация проблемы.[1]

Метод BFGS относится к квазиньютоновские методы, класс оптимизация восхождения методы, которые ищут стационарный пункт функции (желательно дважды непрерывно дифференцируемой). Для таких проблем необходимое условие оптимальности это то градиент быть нулевым. Метод Ньютона и методы BFGS не гарантируют сходимость, если функция не имеет квадратичного Расширение Тейлора рядом с оптимальный. Однако BFGS может иметь приемлемую производительность даже для экземпляров неплавной оптимизации.[2]

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

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

Обоснование

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

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

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

куда является приближением к Матрица Гессе, который обновляется итеративно на каждом этапе, и - градиент функции, вычисленной при Иксk. А линейный поиск в направлении пk затем используется для поиска следующей точки Иксk+1 минимизируя над скаляром

Квазиньютоновское условие на обновление является

Позволять и , тогда удовлетворяет , которое является секущим уравнением. Условие кривизны должен быть доволен быть положительно определенным, что можно проверить, предварительно умножив секущее уравнение на . Если функция не является сильно выпуклой, то условие должно выполняться явно.

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

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

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

Алгоритм

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

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

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

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

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

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

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

  • Программное обеспечение для крупномасштабной нелинейной оптимизации Artelys Knitro реализует, среди прочего, алгоритмы BFGS и L-BFGS.
  • В GSL реализует BFGS как gsl_multimin_fdfminimizer_vector_bfgs2.[11]
  • В MATLAB Панель инструментов оптимизации, функция fminunc[12] использует BFGS с кубической линейный поиск когда размер задачи установлен на «средний масштаб».[13]
  • В р, алгоритм BFGS (и версия L-BFGS-B, которая допускает ограничения блока) реализована как опция базовой функции optim ().[14]
  • В SciPy, функция scipy.optimize.fmin_bfgs реализует BFGS.[15] Также можно запустить BFGS с помощью любого из L-BFGS алгоритмы, задав для параметра L очень большое число.

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

Рекомендации

  1. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: Джон Уайли и сыновья, ISBN  978-0-471-91547-8
  2. ^ Curtis, Frank E .; Цюэ, Сяоцунь (2015), «Квазиньютоновский алгоритм невыпуклой негладкой оптимизации с глобальными гарантиями сходимости», Математическое программирование вычислений, 7 (4): 399–428, Дои:10.1007 / s12532-015-0086-2
  3. ^ Нокедал и Райт (2006), стр.24
  4. ^ Берд, Ричард Х .; Лу, Пейхуан; Нокедаль, Хорхе; Чжу, Цию (1995), «Алгоритм с ограниченной памятью для оптимизации с ограничениями», Журнал SIAM по научным вычислениям, 16 (5): 1190–1208, CiteSeerX  10.1.1.645.5814, Дои:10.1137/0916069
  5. ^ Бройден, К. Г. (1970), "Сходимость одного класса алгоритмов двухранговой минимизации", Журнал Института математики и его приложений, 6: 76–90, Дои:10.1093 / imamat / 6.1.76
  6. ^ Флетчер Р. (1970), "Новый подход к алгоритмам с переменной метрикой", Компьютерный журнал, 13 (3): 317–322, Дои:10.1093 / comjnl / 13.3.317
  7. ^ Гольдфарб, Д. (1970), «Семейство обновлений переменных показателей, полученных с помощью вариационных средств», Математика вычислений, 24 (109): 23–26, Дои:10.1090 / S0025-5718-1970-0258249-6
  8. ^ Шанно, Дэвид Ф. (июль 1970 г.), "Обусловленность квазиньютоновских методов для минимизации функций", Математика вычислений, 24 (111): 647–656, Дои:10.1090 / S0025-5718-1970-0274029-X, МИСТЕР  0274029
  9. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: Джон Уайли и сыновья, ISBN  978-0-471-91547-8
  10. ^ Ге, Рен-пу; Пауэлл, М. Дж. Д. (1983). «Сходимость переменных метрических матриц при неограниченной оптимизации». Математическое программирование. 27. 123. Дои:10.1007 / BF02591941.
  11. ^ "Научная библиотека GNU - документация GSL 2.6". www.gnu.org. Получено 2020-11-22.
  12. ^ «Найти минимум неограниченной функции многих переменных - MATLAB fminunc». www.mathworks.com. Получено 2020-11-22.
  13. ^ «Неограниченная нелинейная оптимизация :: алгоритмы и примеры оптимизации (Optimization Toolbox ™)». web.archive.org. 2010-10-28. Получено 2020-11-22.
  14. ^ «R: Оптимизация общего назначения». stat.ethz.ch. Получено 2020-11-22.
  15. ^ "scipy.optimize.fmin_bfgs - Справочное руководство SciPy v1.5.4". docs.scipy.org. Получено 2020-11-22.

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