Algoritmus Broyden – Fletcher – Goldfarb – Shanno - Broyden–Fletcher–Goldfarb–Shanno algorithm
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
v numerické optimalizace, Broyden – Fletcher – Goldfarb – Shanno (BFGS) algoritmus je iterační metoda pro neomezené řešení nelineární optimalizace problémy.[1]
Metoda BFGS patří kvazi-Newtonovy metody, třída optimalizace horolezectví techniky, které hledají a stacionární bod funkce (nejlépe dvakrát spojitě diferencovatelné). Pro takové problémy, a nezbytná podmínka pro optimálnost je to spád být nula. Newtonova metoda a není zaručeno, že konvergují metody BFGS, pokud funkce nemá kvadratický Taylorova expanze poblíž optimální. BFGS však může mít přijatelný výkon i pro instance plynulé optimalizace.[2]
v Kvazi-Newtonovy metody, Hesenská matice sekundy deriváty není vypočítán. Namísto toho je pytlovina matice aproximována pomocí aktualizací určených pomocí vyhodnocení gradientu (nebo přibližného vyhodnocení gradientu). Kvazi-Newtonovy metody jsou zobecnění sekansová metoda najít kořen první derivace pro vícerozměrné problémy. Ve vícerozměrných problémech sečanská rovnice neurčuje jedinečné řešení a kvazi-Newtonovy metody se liší v tom, jak omezují řešení. Metoda BFGS je jedním z nejpopulárnějších členů této třídy.[3] Také se běžně používá L-BFGS, což je verze BFGS s omezenou pamětí, která je zvláště vhodná pro problémy s velmi velkým počtem proměnných (např.> 1000). Varianta BFGS-B zpracovává jednoduchá omezení polí.[4]
Algoritmus je pojmenován po Charles George Broyden, Roger Fletcher, Donald Goldfarb a David Shanno.[5][6][7][8]
Odůvodnění
Problém optimalizace je minimalizovat , kde je vektor v , a je diferencovatelná skalární funkce. Na hodnoty, které existují, neexistují žádná omezení můžu vzít.
Algoritmus začíná počátečním odhadem optimální hodnoty a postupuje iterativně, aby získal lepší odhad v každé fázi.
Směr hledání pk ve fázi k je dáno řešením analogu Newtonovy rovnice:
kde je přiblížení k Hesenská matice, který je iterativně aktualizován v každé fázi, a je gradient funkce vyhodnocené na Xk. A vyhledávání linek ve směru pk se poté použije k nalezení dalšího bodu Xk+1 minimalizací přes skalární
Kvazi-Newtonova podmínka uložená na aktualizaci je
Nechat a , pak splňuje , což je sekánová rovnice. Stav zakřivení by měl být spokojen být kladně definitivní, což lze ověřit předběžným vynásobením secanské rovnice . Pokud funkce není silně konvexní, musí být podmínka vynucena explicitně.
Místo toho, abychom v tomto bodě vyžadovali úplnou hesenskou matici být vypočítán jako , přibližný Hessian ve fázi k je aktualizován přidáním dvou matic:
Oba a jsou symetrické matice první řady, ale jejich součet je aktualizační matice druhé řady. BFGS a DFP aktualizační matice se od svého předchůdce liší maticí druhé úrovně. Další jednodušší metoda pořadí je známá jako symetrická hodnost jedna metoda, která nezaručuje pozitivní definitivnost. Aby byla zachována symetrie a pozitivní definitivita , lze zvolit aktualizační formulář jako . Ukládání sekančního stavu, . Výběr a , můžeme získat:[9]
Nakonec dosadíme a do a získejte rovnici aktualizace :
Algoritmus
Z počátečního odhadu a přibližná hesenská matice následující kroky se opakují jako konverguje k řešení:
- Získejte směr řešením .
- Proveďte jednorozměrnou optimalizaci (vyhledávání linek ) najít přijatelnou velikost kroku ve směru nalezeném v prvním kroku. Pokud je provedeno přesné vyhledávání řádků, pak . V praxi obvykle postačuje nepřesné vyhledávání řádků, které je přijatelné uspokojující Wolfe podmínky.
- Soubor a aktualizovat .
- .
- .
označuje objektivní funkci, která má být minimalizována. Konvergenci lze zkontrolovat pozorováním normy gradientu, . Li je inicializováno pomocí , první krok bude ekvivalentní a klesání, ale další kroky jsou čím dál rafinovanější , aproximace pytloviny.
První krok algoritmu se provádí pomocí inverze matice , které lze efektivně získat použitím Sherman – Morrisonův vzorec do kroku 5 algoritmu, dávat
To lze vypočítat efektivně bez dočasných matic, což si uvědomujeme je symetrický, a to a jsou skaláry, používající expanzi jako
Při problémech se statistickým odhadem (např maximální pravděpodobnost nebo Bayesiánský závěr), důvěryhodné intervaly nebo intervaly spolehlivosti pro řešení lze odhadnout z inverzní konečné hesenské matice. Tyto veličiny jsou však technicky definovány skutečnou hesiánskou maticí a aproximace BFGS nemusí konvergovat ke skutečné hesenské matici.[10]
Pozoruhodné implementace
- Velký nelineární optimalizační software Artelys Knitro implementuje mimo jiné algoritmy BFGS a L-BFGS.
- The GSL implementuje BFGS jako gsl_multimin_fdfminimizer_vector_bfgs2.[11]
- V MATLABu Optimalizace nástrojů, funkce fminunc[12] používá BFGS s kubickým vyhledávání linek když je velikost problému nastavena na „střední měřítko“.[13]
- v R, je algoritmus BFGS (a verze L-BFGS-B, která umožňuje omezení polí) implementován jako možnost základní funkce optim ().[14]
- v SciPy, funkce scipy.optimize.fmin_bfgs implementuje BFGS.[15] Je také možné spustit BFGS pomocí kteréhokoli z L-BFGS algoritmy nastavením parametru L na velmi velké číslo.
Viz také
Reference
- ^ Fletcher, Roger (1987), Praktické metody optimalizace (2. vyd.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
- ^ Curtis, Frank E .; Que, Xiaocun (2015), „Quasi-Newton Algorithm for Nonconvex, Nonsmooth Optimization with Global Convergence Guarantees“, Výpočet matematického programování, 7 (4): 399–428, doi:10.1007 / s12532-015-0086-2
- ^ Nocedal & Wright (2006), strana 24
- ^ Byrd, Richard H .; Lu, Peihuang; Nocedal, Jorge; Zhu, Ciyou (1995), „Algoritmus omezené paměti pro optimalizaci vázaných vazeb“, SIAM Journal on Scientific Computing, 16 (5): 1190–1208, CiteSeerX 10.1.1.645.5814, doi:10.1137/0916069
- ^ Broyden, C. G. (1970), „Konvergence třídy algoritmů minimalizace dvou řad“, Časopis Ústavu matematiky a jeho aplikací, 6: 76–90, doi:10.1093 / imamat / 6.1.76
- ^ Fletcher, R. (1970), „Nový přístup k variabilním metrickým algoritmům“, Počítačový deník, 13 (3): 317–322, doi:10.1093 / comjnl / 13.3.317
- ^ Goldfarb, D. (1970), "Rodina variabilních metrických aktualizací odvozených z variačních prostředků", Matematika výpočtu, 24 (109): 23–26, doi:10.1090 / S0025-5718-1970-0258249-6
- ^ Shanno, David F. (červenec 1970), „Úprava kvazi-Newtonových metod pro minimalizaci funkcí“, Matematika výpočtu, 24 (111): 647–656, doi:10.1090 / S0025-5718-1970-0274029-X, PAN 0274029
- ^ Fletcher, Roger (1987), Praktické metody optimalizace (2. vyd.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
- ^ Ge, Ren-pu; Powell, M. J. D. (1983). "Konvergence proměnných metrických matic v neomezené optimalizaci". Matematické programování. 27. 123. doi:10.1007 / BF02591941.
- ^ „Vědecká knihovna GNU - dokumentace GSL 2.6“. www.gnu.org. Citováno 2020-11-22.
- ^ "Najít minimum neomezené funkce více proměnných - MATLAB fminunc". www.mathworks.com. Citováno 2020-11-22.
- ^ „Neomezená nelineární optimalizace :: Optimalizační algoritmy a příklady (Optimization Toolbox ™)“. web.archive.org. 2010-10-28. Citováno 2020-11-22.
- ^ „R: Univerzální optimalizace“. stat.ethz.ch. Citováno 2020-11-22.
- ^ "scipy.optimize.fmin_bfgs - SciPy v1.5.4 referenční příručka". docs.scipy.org. Citováno 2020-11-22.
Další čtení
- Avriel, Mordechaj (2003), Nelineární programování: Analýza a metody, Dover Publishing, ISBN 978-0-486-43227-4
- Bonnans, J. Frédéric; Gilbert, J. Charles; Lemaréchal, Claude; Sagastizábal, Claudia A. (2006), „Newtonovské metody“, Numerická optimalizace: teoretické a praktické aspekty (Second ed.), Berlin: Springer, str. 51–66, ISBN 3-540-35445-X
- Dennis, J. E., Jr.; Schnabel, Robert B. (1983), „Secant Methods for Unconstrained Minimization“, Numerické metody pro neomezenou optimalizaci a nelineární rovnice, Englewood Cliffs, NJ: Prentice-Hall, str. 194–215, ISBN 0-13-627216-9
- Fletcher, Roger (1987), Praktické metody optimalizace (2. vyd.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
- Luenberger, David G.; Ye, Yinyu (2008), Lineární a nelineární programováníMezinárodní série v oblasti operačního výzkumu a managementu, 116 (Třetí vydání), New York: Springer, str. Xiv + 546, ISBN 978-0-387-74502-2, PAN 2423726
- Kelley, C. T. (1999), Iterativní metody pro optimalizaci, Philadelphia: Society for Industrial and Applied Mathematics, str. 71–86, ISBN 0-89871-433-8
- Nocedal, Jorge; Wright, Stephen J. (2006), Numerická optimalizace (2. vyd.), Berlín, New York: Springer-Verlag, ISBN 978-0-387-30303-1