Из Википедии, бесплатной энциклопедии
  (Перенаправлено из BFGS )
Перейти к навигации Перейти к поиску

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

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

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

Обоснование [ править ]

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

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

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

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

Квазиньютоновское условие, накладываемое на обновление, есть

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

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

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

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

Алгоритм [ править ]

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

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

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

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

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

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

Известные реализации [ править ]

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

См. Также [ править ]

  • Алгоритм BHHH
  • Формула Дэвидона – Флетчера – Пауэлла
  • Градиентный спуск
  • L-BFGS
  • Алгоритм Левенберга-Марквардта
  • Метод Нелдера – Мида
  • Поиск по шаблону (оптимизация)
  • Квазиньютоновские методы
  • Симметричный ранг один

Ссылки [ править ]

  1. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN 978-0-471-91547-8
  2. ^ Деннис, JE, младший ; Шнабель, Роберт Б. (1983), "Секущие методы неограниченной минимизации" , Численные методы неограниченной оптимизации и нелинейные уравнения , Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, стр. 194–215, ISBN 0-13-627216-9
  3. ^ Берд, Ричард Х .; Лу, Пейхуан; Нокедаль, Хорхе; Чжу, Ciyou (1995), " Общество с ограниченной памятью Алгоритм Bound условной оптимизации" , SIAM журнал по научным вычислениям , 16 (5): 1190-1208, CiteSeerX 10.1.1.645.5814 , DOI : 10,1137 / 0916069 
  4. ^ Бройдена, CG (1970), «О сходимости класса алгоритмов минимизации двойного ранга», журнал Института математики и ее приложения , 6 : 76-90, DOI : 10,1093 / имамат / 6.1.76
  5. ^ Fletcher, R. (1970), "Новый подход к переменным Metric алгоритмам", 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. ^ Shanno, Дэвид Ф. (июль 1970), "обусловленность квазиньютоновских методы минимизации функций", Математика вычислений , 24 (111): 647-656, DOI : 10.1090 / S0025-5718-1970-0274029-X , Руководство по ремонту 0274029 
  8. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN 978-0-471-91547-8
  9. ^ Ге, Рен-пу; Пауэлл, MJD (1983). «Сходимость переменных метрических матриц при неограниченной оптимизации». Математическое программирование . 27 . 123. DOI : 10.1007 / BF02591941 .
  10. ^ "Научная библиотека GNU - документация GSL 2.6" . www.gnu.org . Проверено 22 ноября 2020 .
  11. ^ "Найдите минимум неограниченной функции многих переменных - MATLAB fminunc" . www.mathworks.com . Проверено 22 ноября 2020 .
  12. ^ «Неограниченная нелинейная оптимизация :: Алгоритмы и примеры оптимизации (Optimization Toolbox ™)» . web.archive.org . 2010-10-28 . Проверено 22 ноября 2020 .
  13. ^ "R: Оптимизация общего назначения" . stat.ethz.ch . Проверено 22 ноября 2020 .
  14. ^ "scipy.optimize.fmin_bfgs - Справочное руководство SciPy v1.5.4" . docs.scipy.org . Проверено 22 ноября 2020 .

Дальнейшее чтение [ править ]

  • Авриэль, Мордехай (2003), нелинейное программирование: анализ и методы , Dover Publishing, ISBN 978-0-486-43227-4
  • Боннанс, Ж. Фредерик; Гилберт, Дж. Чарльз; Лемарешаль, Клод ; Сагастизабал, Клаудиа А. (2006), «Ньютоновские методы», Численная оптимизация: теоретические и практические аспекты (второе издание), Берлин: Springer, стр. 51–66, ISBN. 3-540-35445-X
  • Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN 978-0-471-91547-8
  • Люенбергер, Дэвид Г .; Е, Инью (2008), Линейное и нелинейное программирование , Международная серия исследований операций и управления наукой, 116 (третье издание), Нью-Йорк: Springer, стр. Xiv + 546, ISBN 978-0-387-74502-2, MR  2423726
  • Келли, CT (1999), Итерационные методы оптимизации , Филадельфия: Общество промышленной и прикладной математики, стр. 71–86, ISBN 0-89871-433-8
  • Нокедаль, Хорхе; Райт, Стивен Дж. (2006), Численная оптимизация (2-е изд.), Берлин, Нью-Йорк: Springer-Verlag , ISBN 978-0-387-30303-1