Broyden-Fletcher-Goldfarb-Shanno-algoritm

Broyden  -Fletcher-Goldfarb-Shanno-algoritmen (BFGS) är en iterativ numerisk optimeringsmetod utformad för att hitta det lokala max/minimum för en icke-linjär funktion utan begränsningar.

BFGS är en av de mest använda kvasi-newtonska metoderna . I kvasi-newtonska metoder beräknas inte funktionens hessian direkt . Istället uppskattas hessian ungefär, baserat på de steg som hittills tagits. Det finns också en minnesbegränsad modifiering av denna metod ( L-BFGS ), som är utformad för att lösa icke-linjära problem med ett stort antal okända, samt en minnesbegränsad modifiering i en flerdimensionell kub ( L-BFGS-B ) .

Denna metod finner minimum av en två gånger kontinuerligt differentierbar konvex funktion. Trots dessa teoretiska begränsningar har erfarenheten visat att BFGS även hanterar icke-konvexa funktioner väl.

Beskrivning

Låt uppgiften att optimera det funktionella lösas:

Andra ordningens metoder löser detta problem iterativt genom att expandera funktionen till ett polynom av andra graden:

var  är hessian för det funktionella vid punkten . Ofta är beräkningen av hessian mödosam, så BFGS-algoritmen i stället för det verkliga värdet beräknar det ungefärliga värdet av , varefter den hittar minimum av det resulterande kvadratiska problemet:

Som regel, efter detta, utförs en sökning längs en given riktning efter en punkt för vilken Wolfe-villkoren är uppfyllda .

Vilken icke degenererad, välkonditionerad matris som helst kan tas som den initiala approximationen av Hessian. Ofta tas identitetsmatrisen . Det ungefärliga värdet av hessian i nästa steg beräknas med formeln:

var  är identitetsmatrisen,  är steget för algoritmen per iteration,  är förändringen i gradienten per iteration.

Eftersom det är beräkningsmässigt svårt att beräkna den inversa matrisen , uppdateras den inversa matrisen istället för att beräkna :

var .

Algoritm

givet initialisera medan     find direction     compute , uppfyller Wolfes villkor     designate och     beräkna slut







   

Litteratur

  1. Nocedal, George; Wright, Stephen J. Numerisk optimering. — 2:a upplagan. — USA: Springer, 2006. — ISBN 978-0-387-30303-1 .
  2. Avriel, Mordokai. Icke-linjär programmering: Analys och metoder. - Dover Publishing, 2003. - ISBN 0-486-43227-0 .