Jump to content

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

(Перенаправлено с BFGS )

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

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

Алгоритм назван в честь Чарльза Джорджа Бройдена , Роджера Флетчера , Дональда Голдфарба и Дэвида Шенно . [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] ), которые изменяют и/или чтобы получить более надежное обновление.

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

[ редактировать ]

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

  • ALGLIB реализует BFGS и его версию с ограниченной памятью на C++ и C#.
  • GNU Octave использует разновидность BFGS в своей fsolve функция с расширениями доверительного региона .
  • GSL . реализует BFGS как gsl_multimin_fdfminimizer_vector_bfgs2 [12]
  • В R алгоритм BFGS (и версия L-BFGS-B, допускающая ограничения блоков) реализован как опция базовой функции optim(). [13]
  • В SciPy функция scipy.optimize.fmin_bfgs реализует BFGS. [14] Также возможно запустить BFGS с использованием любого из алгоритмов L-BFGS , установив для параметра L очень большое число.
  • В Julia пакет Optim.jl . реализует BFGS и L-BFGS в качестве опции решателя для функцииоптимизации() (среди других опций) [15]

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

  • Программное обеспечение для крупномасштабной нелинейной оптимизации Artelys Knitro реализует, среди прочего, алгоритмы BFGS и L-BFGS.
  • В MATLAB Optimization Toolbox функция fminunc использует BFGS с поиском кубической линии, когда размер проблемы установлен на «средний масштаб».
  • Mathematica включает BFGS.
  • LS-DYNA также использует BFGS для решения неявных проблем.

См. также

[ редактировать ]
  1. ^ Флетчер, Роджер (1987), Практические методы оптимизации (2-е изд.), Нью-Йорк: John Wiley & Sons , ISBN  978-0-471-91547-8
  2. ^ Деннис, Дж. Э. младший ; Шнабель, Роберт Б. (1983), «Методы секущих для неограниченной минимизации» , Численные методы для неограниченной оптимизации и нелинейных уравнений , Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, стр. 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), «Семейство обновлений переменных метрик, полученных вариационными средствами», Mathematics of Computing , 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. ^ Гэ, Рен-пу; Пауэлл, MJD (1983). «Сходимость матриц переменных показателей при безусловной оптимизации». Математическое программирование . 27 (2). 123. дои : 10.1007/BF02591941 . S2CID   8113073 .
  11. ^ Хорхе Носедал; Стивен Дж. Райт (2006), Численная оптимизация
  12. ^ «Научная библиотека GNU — документация GSL 2.6» . www.gnu.org . Проверено 22 ноября 2020 г.
  13. ^ «R: Универсальная оптимизация» . stat.ethz.ch. ​Проверено 22 ноября 2020 г.
  14. ^ «scipy.optimize.fmin_bfgs — Справочное руководство SciPy v1.5.4» . docs.scipy.org . Проверено 22 ноября 2020 г.
  15. ^ «Настраиваемые параметры Optim.jl» . Джулианлсолверс .

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

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 87ee6361967c02a614dc2d8e2190248f__1721200800
URL1:https://arc.ask3.ru/arc/aa/87/8f/87ee6361967c02a614dc2d8e2190248f.html
Заголовок, (Title) документа по адресу, URL1:
Broyden–Fletcher–Goldfarb–Shanno algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)