Gauss-Newton algoritm

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 januari 2021; verifiering kräver 1 redigering .

Gauss-Newton-algoritmen används för att lösa problem med den olinjära minsta kvadratmetoden . Algoritmen är en modifiering av Newtons metod för att hitta minimum av funktionen . Till skillnad från Newtonmetoden kan Gauss-Newton-algoritmen endast användas för att minimera summan av kvadrater, men dess fördel är att metoden inte kräver beräkning av andraderivator, vilket kan vara en betydande svårighet.

Problem för vilka den icke-linjära minsta kvadratmetoden tillämpas uppstår till exempel vid icke-linjär regression , där man söker efter modellparametrar som är mest överensstämmande med de observerade värdena.

Metoden är uppkallad efter matematikerna Carl Friedrich Gauss och Isaac Newton .

Beskrivning

Givet m funktioner r = ( r 1 , …, r m ) (ofta kallade residualer) av n variabler β  = ( β 1 , …, β n ), för m  ≥  n . Gauss-Newton-algoritmen hittar iterativt värdena för variabler som minimerar summan av kvadrater [1]

Med utgångspunkt från en initial uppskattning upprepas metoden

Här, om vi betraktar r och β som kolumnvektorer, är elementen i den jakobiska matrisen

och symbolen betyder matristransponering .

Om m  =  n förenklas iterationerna till

,

vilket är en direkt generalisering av Newtons endimensionella metod .

Vid anpassning av data, där målet är att hitta parametrar β så att en given modell av funktioner y  =  f ( x , β ) bäst approximerar datapunkter ( x i , y i ), är funktionerna r i restfel [

Då kan Gauss-Newton-metoden uttryckas i termer av Jacobian J f för funktionen f

Observera att det är en pseudo -invers matris till .

Anteckningar

Kravet m  ≥  n i algoritmen är nödvändigt, eftersom matrisen J r T J r annars inte har någon invers och normalekvationerna inte kan lösas (åtminstone entydigt).

Gauss - Newton-algoritmen kan erhållas genom att använda en linjär approximation av funktionsvektorn ri . Med hjälp av Taylors teorem kan vi skriva för varje iteration:

,

var . Problemet med att hitta Δ minimera summan av kvadrater på höger sida, dvs.

,

är ett linjärt minsta kvadratproblem som kan lösas explicit, vilket ger normala ekvationer.

Normalekvationer är m linjära ekvationer i okända steg Δ. Ekvationerna kan lösas i ett steg med hjälp av Cholesky-sönderdelningen , eller bättre, QR-sönderdelningen av matrisen Jr. För stora system kan den iterativa metoden vara effektivare om metoder som konjugatgradientmetoden används . Om det finns ett linjärt beroende av kolumnerna i matrisen Jr , misslyckas iterationsmetoden eftersom JrTJr blir degenererad .

Exempel

Det här exemplet använder Gauss-Newton-algoritmen för att bygga en datamodell genom att minimera summan av de kvadrerade avvikelserna för data och modellen.

Inom experimentell biologi, studiet av sambandet mellan koncentrationen av substratet [ S ] och reaktionshastigheten i enzymmoduleringsreaktionen, erhölls följande data.

i ett 2 3 fyra 5 6 7
[ S ] 0,038 0,194 0,425 0,626 1,253 2 500 3,740
fart 0,050 0,127 0,094 0,2122 0,2729 0,2665 0,3317

Det är nödvändigt att hitta en kurva (funktionsmodell) av formen

hastighet ,

som bäst approximerar data i betydelsen minsta kvadrater med parametrarna och som ska hittas.

Beteckna med och värdena för [ S ] och hastigheten från tabellen, . Låt och . Vi kommer att leta efter och , så att summan av de kvadratiska avvikelserna

minimal.

Jacobian för vektorn av residualer över okända är en matris där den -th raden har elementen

Från den initiala approximationen och efter fem iterationer ger Gauss-Newton-algoritmen de optimala värdena för och . Summan av kvadrerade residualer minskar från startvärdet 1,445 till 0,00784 med den femte iterationen. Grafen till höger visar kurvan med optimala parametrar.

Konvergens

Det kan visas [2] att riktningen för ökande Δ är riktningen för fallande för S , och om algoritmen konvergerar kommer gränsen att vara den stationära punkten för S . Konvergens är dock inte garanterad även när utgångspunkten är nära lösningen , vilket sker i Newtonmetoden eller BFGS- metoden under normala Volfe-förhållanden [3] .

Konvergenshastigheten för Gauss-Newton-algoritmen är nära kvadratisk [4] . Algoritmen kan konvergera långsammare eller inte alls om den initiala gissningen är långt ifrån minimum, eller om matrisen är dåligt konditionerad . Föreställ dig till exempel ett problem med ekvationer och en variabel

Den resulterande optimala lösningen är . (Det verkliga optimum är för , eftersom , medan .) Om , då är problemet i själva verket linjärt och metoden hittar en lösning i en iteration. Om |λ| < 1, då konvergerar metoden linjärt och felet minskar med en hastighet av |λ| vid varje iteration. Men om |λ| > 1, då konvergerar metoden inte ens lokalt [5] .

Algoritm baserad på Newtons metod

Följande antar att Gauss-Newton-algoritmen är baserad på Newtons metod för funktionsminimering genom approximation. Som en konsekvens kan konvergenshastigheten för Gauss-Newton-algoritmen vara kvadratisk om vissa villkor är uppfyllda. I det allmänna fallet (under svagare förhållanden) kan konvergenshastigheten vara linjär [6] .

Återkommande relation för Newtons metod för att minimera funktionen S för parametrar

där g betecknar gradientvektorn för funktionen S och H betecknar hessian för funktionen S . Eftersom , gradienten ges av jämlikheten

De hessiska elementen beräknas genom att differentiera gradientelementen med avseende på

Gauss-Newton-metoden erhålls genom att kassera den andra derivatan (den andra termen i uttrycket). Det vill säga, hessian är ungefärlig

,

var finns element av Jacobian J r . Gradienten och den ungefärliga Hessian kan skrivas i matrisnotation

Dessa uttryck ersätts i rekursionsrelationen ovan för att erhålla driftsekvationerna

Konvergensen av Gauss-Newton-metoden är i allmänhet inte garanterad. Approximation

,

som måste hålla för att kunna kassera termer med den andra derivatan, kan erhållas i två fall för vilka konvergens förväntas [7]

  1. Funktionsvärdena är små i storleksordningen, åtminstone nära minimum.
  2. Funktionerna är bara "något" icke-linjära, det vill säga relativt små till storleken.

Förbättrade versioner

I Gauss-Newton-metoder kanske summan av kvadratiska rester S inte minskar vid varje iteration. Men eftersom Δ är riktad i riktning mot att minska funktionen, om det inte är en stationär punkt, gäller olikheten för tillräckligt liten . Således, om en divergens hittas, kan man använda bråkdelen av inkrementvektorn Δ i uppdateringsformeln:

.

Inkrementvektorn är med andra ord för lång, men den indikerar riktningen för "nedstigningen", så om du bara går en del av vägen kan du minska värdet på S -funktionen . Det optimala värdet kan hittas med en endimensionell sökalgoritm , det vill säga värdet bestäms genom att hitta värdet som minimerar S med en endimensionell sökning på intervallet .

I de fall där den optimala fraktionen är nära noll i inkrementvektorns riktning, är en alternativ metod för att räkna ut divergensen att använda Levenberg-Marquardt-algoritmen , även känd som "konfidensregionmetoden" [1] . Normalekvationer modifierade så att nedstigningsvektorn roterar i riktningen för den brantaste nedstigningen ,

,

där D är en positiv diagonal matris. Observera att om D är identitetsmatrisen för E och , då . Således riktningen Δ approximerar riktningen för den negativa gradienten .

Den så kallade Marquardt-parametern kan också optimeras genom linjär sökning, men det är inte så meningsfullt, eftersom skiftvektorn måste räknas om varje gång den ändras . En mer effektiv strategi är detta. Om en avvikelse hittas, öka Marquardt-parametern när S minskar. Sedan behåller vi värdet mellan iterationerna, men minskar det, om möjligt, tills vi når ett värde där Marquardt-parametern inte kan nollställas. Minimeringen av S blir då standard Gauss-Newton-minimeringen.

Optimering av stora uppgifter

För storstorleksoptimeringar är Gauss-Newton-metoden särskilt intressant eftersom matrisen ofta (men absolut inte alltid) är gles än den ungefärliga Hessian . I sådana fall kräver själva beräkningssteget vanligtvis användning av en iterativ approximationsmetod, såsom den konjugerade gradientmetoden .

För att detta tillvägagångssätt ska fungera behöver du åtminstone en effektiv metod för att beräkna produkten

för någon vektor p . För att lagra en gles matris är det praktiskt att lagra matrisens rader i komprimerad form (dvs utan nollelement), vilket gör den direkta beräkningen av ovanstående produkt (på grund av transponering) svår. Men om c i definieras som rad i i matrisen gäller följande relation:

så vilken rad som helst bidrar additivt och oberoende till produkten. Dessutom är detta uttryck väl studerat för tillämpningen av parallell beräkning . Observera att varje rad c i är gradienten för motsvarande rest r i . Med hänsyn till denna omständighet understryker formeln ovan det faktum att restprodukter bidrar till resultatet oberoende av varandra.

Relaterade algoritmer

I kvasi-newtonska metoder , såsom metoderna av Davidon, Fletcher och Powell eller Broyden-Fletcher-Goldfarb-Shanno ( BFGSh-metoden ), konstrueras den fullständiga hessiska approximationen med hjälp av de första derivatorna så att metoden efter n förfinningar är i prestanda nära Newtonmetoden. Observera att kvasi-newtonska metoder kan minimera verkliga funktioner av en allmän form, medan metoderna för Gauss-Newton, Levenberg-Marquardt, etc. är endast tillämpliga på icke-linjära minsta kvadraters problem.

En annan metod för att lösa minimeringsproblem med endast förstaderivator är metoden för gradientnedstigning . Denna metod tar dock inte hänsyn till andraderivator, inte ens ungefärliga sådana. Som ett resultat är metoden extremt ineffektiv för många funktioner, speciellt vid stark ömsesidig påverkan av parametrar.

Anteckningar

  1. 1 2 Björk, 1996 .
  2. Björck, 1996 , sid. 260.
  3. Mascarenhas, 2013 , sid. 253–276.
  4. Björck, 1996 , sid. 341, 342.
  5. Fletcher, 1987 , sid. 113.
  6. Gratton, Lawless, Nichols .
  7. Nocedal, Wright, 1999 , sid. 259-262.

Litteratur

Länkar

Implementeringar