Gauss–Newtons metod

Anpassning av en brusig kurva med en asymmetrisk modell för topparna med Gauss-Newton-algoritmen med variabel dämpningsfaktor α.

Överst: Rådata och modell.

Nederst: Utveckling av den normaliserade kvadratsumman av felen.

Gauss-Newtons metod används för att lösa icke-linjära minsta kvadrat-problem. Dessa uppstår till exempel vid icke-linjär regression, där parametrar i en modell söks så att modellen stämmer väl överens med tillgängliga observationer.

Det är en variant av Newtons metod för att hitta ett minimum av en funktion. Till skillnad från Newtons metod kan Gauss-Newton-algoritmen endast användas för att minimera summan av kvadrerade funktionsvärden, men den har fördelen att andraderivator, som kan vara svåra att beräkna, inte krävs.[1]

Metoden är uppkallad efter matematikerna Carl Friedrich Gauss och Isaac Newton och presenterades först i Gauss verk från 1809 Theoria motus corporum coelestium in sectionibus conicis solem ambientum.[2]

Beskrivning

Givna m {\displaystyle m} funktioner r = ( r 1 , , r m ) {\displaystyle {\textbf {r}}=(r_{1},\ldots ,r_{m})} (ofta kallade rester) av n {\displaystyle n} variabler β = ( β 1 , β n ) , {\displaystyle {\boldsymbol {\beta }}=(\beta _{1},\ldots \beta _{n}),} med m n , {\displaystyle m\geq n,} [a] hittar Gauss-Newton-algoritmen iterativt värdet av variablerna som minimerar kvadratsumman [3]

S ( β ) = i = 1 m r i ( β ) 2 . {\displaystyle S({\boldsymbol {\beta }})=\sum _{i=1}^{m}r_{i}({\boldsymbol {\beta }})^{2}.}

Man börjar med en första gissning β ( 0 ) {\displaystyle {\boldsymbol {\beta }}^{(0)}} och fortsätter iterativt

β ( s + 1 ) = β ( s ) ( J r T J r ) 1 J r T r ( β ( s ) ) , {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}-\left(\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {J_{r}} \right)^{-1}\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {r} \left({\boldsymbol {\beta }}^{(s)}\right),}

där elementen i jakobianen är

( J r ) i j = r i ( β ( s ) ) β j , {\displaystyle \left(\mathbf {J_{r}} \right)_{ij}={\frac {\partial r_{i}\left({\boldsymbol {\beta }}^{(s)}\right)}{\partial \beta _{j}}},}

r och β är kolumnvektorer och symbolen T {\displaystyle ^{\mathsf {T}}} betecknar matristransponering.

Beräkningar

Vid varje iteration, kan uppdateringen Δ = β ( s + 1 ) β ( s ) {\displaystyle \Delta ={\boldsymbol {\beta }}^{(s+1)}-{\boldsymbol {\beta }}^{(s)}} hittas genom att ordna om föregående ekvation i följande två steg:

Δ = ( J r T J r ) 1 J r T r ( β ( s ) ) {\displaystyle \Delta =-\left(\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {J_{r}} \right)^{-1}\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {r} \left({\boldsymbol {\beta }}^{(s)}\right)}

J r T J r Δ = J r T r ( β ( s ) ) {\textstyle \mathbf {J_{r}} ^{\mathsf {T}}\mathbf {J_{r}} \Delta =-\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {r} \left({\boldsymbol {\beta }}^{(s)}\right)}

Med beteckningarna A = J r T J r {\textstyle A=\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {J_{r}} } , b = J r T r ( β ( s ) ) {\displaystyle \mathbf {b} =-\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {r} \left({\boldsymbol {\beta }}^{(s)}\right)} , och x = Δ {\displaystyle {\mathbf {x}}=\Delta } , förvandlas detta till den vanliga matrisekvationen A x = b {\displaystyle A{\mathbf {x}}={\mathbf {b}}} , som sedan kan lösas på en mängd olika metoder (se anmärkningar ).

När r {\displaystyle \mathbf {r} } är komplex r : C n C {\displaystyle \mathbf {r} :\mathbb {C} ^{n}\rightarrow \mathbb {C} } den konjugerade formen ska användas: ( J r ¯ T J r ) 1 J r ¯ T {\displaystyle \left({\overline {\mathbf {J_{r}} }}^{\mathsf {T}}\mathbf {J_{r}} \right)^{-1}{\overline {\mathbf {J_{r}} }}^{\mathsf {T}}} . Om m = n, kan iterationen förenklas till

β ( s + 1 ) = β ( s ) ( J r ) 1 r ( β ( s ) ) , {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}-\left(\mathbf {J_{r}} \right)^{-1}\mathbf {r} \left({\boldsymbol {\beta }}^{(s)}\right),}

vilket är en direkt generalisering av Newtons metod i en dimension.

Normalekvationerna är n samtidiga linjära ekvationer i okända steg Δ {\displaystyle \Delta } . De kan lösas i ett steg, med hjälp av Choleskyuppdelning, eller, bättre, QR-faktorisering av J r {\displaystyle \mathbf {J_{r}} } .[4] För stora system kan en iterativ metod, såsom konjugatgradientmetoden, vara mer effektiv. Om det finns ett linjärt beroende mellan kolumner i J r kommer iterationerna att misslyckas, då J r T J r {\displaystyle \mathbf {J_{r}} ^{T}\mathbf {J_{r}} } blir singular.

Beräkningar för dataanpassning

Inom dataanpassning, där målet är att hitta parametrarna β {\displaystyle {\boldsymbol {\beta }}} så att en given modell fungerar f ( x , β ) {\displaystyle \mathbf {f} (\mathbf {x} ,{\boldsymbol {\beta }})} passar bäst på vissa datapunkter ( x i , y i ) {\displaystyle (x_{i},y_{i})} , är funktionerna r i {\displaystyle r_{i}} är residualerna :

r i ( β ) = y i f ( x i , β ) . {\displaystyle r_{i}({\boldsymbol {\beta }})=y_{i}-f\left(x_{i},{\boldsymbol {\beta }}\right).}

Sedan kan Gauss-Newton-metoden uttryckas i termer av jakobianen J f {\displaystyle \mathbf {J_{f}} } av funktionen f {\displaystyle \mathbf {f} } som

β ( s + 1 ) = β ( s ) ( J f T J f ) 1 J f T r ( β ( s ) ) . {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}-\left(\mathbf {J_{f}} ^{\mathsf {T}}\mathbf {J_{f}} \right)^{-1}\mathbf {J_{f}} ^{\mathsf {T}}\mathbf {r} \left({\boldsymbol {\beta }}^{(s)}\right).}

Observera att ( J f T J f ) 1 J f T {\displaystyle \left(\mathbf {J_{f}} ^{\mathsf {T}}\mathbf {J_{f}} \right)^{-1}\mathbf {J_{f}} ^{\mathsf {T}}} är den vänstra pseudoinversen av J f {\displaystyle \mathbf {J_{f}} } .

Exempel

Beräknad kurva erhållen med β ^ 1 = 0 , 362 {\displaystyle {\hat {\beta }}_{1}=0,362} och β ^ 2 = 0 , 556 {\displaystyle {\hat {\beta }}_{2}=0,556} (i blått) kontra observerade data (i rött).

I det här exemplet kommer Gauss-Newton-metoden att användas för att anpassa en modell till vissa data genom att minimera summan av kvadrater av fel mellan data och modellens förutsägelser.

I ett biologiskt experiment som studerade sambandet mellan substratkoncentration [S] och reaktionshastighet V i en enzymmedierad reaktion, erhölls data i följande tabell.

Det är önskvärt att hitta en kurva (modellfunktion) av formen

V = V max [ S ] K M + [ S ] {\displaystyle V={\frac {V_{\text{max}}\cdot [S]}{K_{M}+[S]}}}

som bäst passar data i minsta kvadrat-mening. Då bestäms parametrarna V max {\displaystyle V_{\text{max}}} och K M {\displaystyle K_{M}} .

Beteckna med x i {\displaystyle x_{i}} och y i {\displaystyle y_{i}} värdena för [S] (koncentration) och V (hastighet) för i = 1 , , 7 {\displaystyle i=1,\dots ,7} . Låt β 1 = V max {\displaystyle \beta _{1}=V_{\text{max}}} och β 2 = K M {\displaystyle \beta _{2}=K_{M}} och hitta β 1 {\displaystyle \beta _{1}} och β 2 {\displaystyle \beta _{2}} så att summan av kvadraterna av residualerna

r i = y i β 1 x i β 2 + x i , ( i = 1 , , 7 ) {\displaystyle r_{i}=y_{i}-{\frac {\beta _{1}x_{i}}{\beta _{2}+x_{i}}},\quad (i=1,\dots ,7)}

minimeras.

Jakobianen J r {\displaystyle \mathbf {J_{r}} } av vektorn av residualerna r i {\displaystyle r_{i}} med hänsyn till de okända β j {\displaystyle \beta _{j}} är en 7 × 2 {\displaystyle 7\times 2} -matrismed där den i {\displaystyle i} :te raden har elementen

r i β 1 = x i β 2 + x i ; r i β 2 = β 1 x i ( β 2 + x i ) 2 . {\displaystyle {\frac {\partial r_{i}}{\partial \beta _{1}}}=-{\frac {x_{i}}{\beta _{2}+x_{i}}};{\frac {\partial r_{i}}{\partial \beta _{2}}}={\frac {\beta _{1}\cdot x_{i}}{\left(\beta _{2}+x_{i}\right)^{2}}}.}

Man börjar med de första uppskattningarna β 1 = 0 , 9 {\displaystyle \beta _{1}=0,9} och β 2 = 0 , 2 {\displaystyle \beta _{2}=0,2} och efter fem iterationer av Gauss-Newton-metoden erhålls de optimala värdena β ^ 1 = 0 , 362 {\displaystyle {\hat {\beta }}_{1}=0,362} och β ^ 2 = 0 , 556 {\displaystyle {\hat {\beta }}_{2}=0,556} erhålls. Summan av kvadraterna på residualerna minskade från initialvärdet 1,445 till 0,00784 efter den femte iterationen. Figuren till höger visar kurvan som bestäms av modellen för de optimala parametrarna med de observerade data.

Härledning från Newtons metod

I det följande kommer Gauss–Newton-metoden att härledas från Newtons metod för funktionsoptimering via en approximation. Som en konsekvens kan konvergenshastigheten för Gauss-Newton-metoden vara kvadratisk under vissa regularitetsförhållanden. I allmänhet (under svagare förhållanden) är konvergenshastigheten linjär.[5]

Iterationsekvationen för Newtons metod för att minimera en funktion S av parametrarna β {\displaystyle {\boldsymbol {\beta }}} är

β ( s + 1 ) = β ( s ) H 1 g , {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}-\mathbf {H} ^{-1}\mathbf {g} ,}

där g betecknar gradientvektorn för S och H betecknar den hessianen för S .

Eftersom S = i = 1 m r i 2 {\displaystyle S=\sum _{i=1}^{m}r_{i}^{2}} , ges gradienten av

g j = 2 i = 1 m r i r i β j . {\displaystyle g_{j}=2\sum _{i=1}^{m}r_{i}{\frac {\partial r_{i}}{\partial \beta _{j}}}.}

Hessianens element beräknas genom att derivera gradientelementen, g j {\displaystyle g_{j}} , med avseende på β k {\displaystyle \beta _{k}}  :

H j k = 2 i = 1 m ( r i β j r i β k + r i 2 r i β j β k ) . {\displaystyle H_{jk}=2\sum _{i=1}^{m}\left({\frac {\partial r_{i}}{\partial \beta _{j}}}{\frac {\partial r_{i}}{\partial \beta _{k}}}+r_{i}{\frac {\partial ^{2}r_{i}}{\partial \beta _{j}\partial \beta _{k}}}\right).}

Gauss-Newton-metoden erhålls genom att försumma andra ordningens derivator (den andra termen i summanderna). Det vill säga, hessianen approximeras av

H j k 2 i = 1 m J i j J i k , {\displaystyle H_{jk}\approx 2\sum _{i=1}^{m}J_{ij}J_{ik},}

där J i j = r i β j {\displaystyle J_{ij}={\frac {\partial r_{i}}{\partial \beta _{j}}}} är element i jakobianen J r. Gradienten och den ungefärliga hessianen kan skrivas i matrisnotation som

g = 2 J r T r , H 2 J r T J r . {\displaystyle \mathbf {g} =2{\mathbf {J} _{\mathbf {r} }}^{\mathsf {T}}\mathbf {r} ,\quad \mathbf {H} \approx 2{\mathbf {J} _{\mathbf {r} }}^{\mathsf {T}}\mathbf {J_{r}} .}

Dessa uttryck ersätts i iterationsekvationen ovan för att erhålla ekvationerna

β ( s + 1 ) = β ( s ) + Δ ; Δ = ( J r T J r ) 1 J r T r . {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}+\Delta ;\quad \Delta =-\left(\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {J_{r}} \right)^{-1}\mathbf {J_{r}} ^{\mathsf {T}}\mathbf {r} .}

Konvergens av Gauss-Newton-metoden garanteras inte i alla fall. Uppskattningen

| r i 2 r i β j β k | | r i β j r i β k | {\displaystyle \left|r_{i}{\frac {\partial ^{2}r_{i}}{\partial \beta _{j}\partial \beta _{k}}}\right|\ll \left|{\frac {\partial r_{i}}{\partial \beta _{j}}}{\frac {\partial r_{i}}{\partial \beta _{k}}}\right|}

behöver gälla för att kunna försumma andra ordningens derivator. Det kan ske i två fall och då förväntas konvergens: [6]

  1. Funktionsvärdena r i {\displaystyle r_{i}} är små i storleksordningen, åtminstone runt minimum.
  2. Funktionerna är bara "milt" olinjära, så att 2 r i β j β k {\displaystyle {\frac {\partial ^{2}r_{i}}{\partial \beta _{j}\partial \beta _{k}}}} är relativt liten i omfattning.

Anmärkningar

  1. ^ Antagandet m ≥ n i algoritm är nödvändigt, då annars är matrisen J r T J r {\displaystyle \mathbf {J_{r}} ^{T}\mathbf {J_{r}} } inte inverterbar och normalekvationerna kan inte lösas (åtminstone inte entydigt).

Referenser

Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia.

Noter

  1. ^ Mittelhammer, Ron C.; Miller, Douglas J.; Judge, George G. (2000). Econometric Foundations. Cambridge: Cambridge University Press. sid. 197–198. ISBN 0-521-62394-4. https://books.google.com/books?id=fycmsfkK6RQC&pg=PA197 
  2. ^ Floudas, Christodoulos A.; Pardalos, Panos M. (2008). Encyclopedia of Optimization. Springer. sid. 1130. ISBN 9780387747583 
  3. ^ Björck 1996.
  4. ^ Ramsin 1976, s. 152.
  5. ^ S. Gratton, A.S. Lawless och N.K. Nichols. ”Approximate Gauss-Newton methods for nonlinear least squares problems”. The University of Reading. Arkiverad från originalet den 4 augusti 2016. https://web.archive.org/web/20160804022151/http://www.henley.ac.uk/web/FILES/maths/09-04.pdf. Läst 18 december 2022. 
  6. ^ Nocedal 1999, s. 259.

Källor

  • Björck, Åke (1996). Numerical methods for least squares problems. Philadelphia, Pa: SIAM, Society for Industrial and Applied Mathematics. ISBN 0898713609 
  • Fletcher, Roger (1987). Practical methods of optimization (2nd). New York: John Wiley & Sons. ISBN 978-0-471-91547-8. https://archive.org/details/practicalmethods0000flet 
  • Nocedal, Jorge; Wright, Stephen (1999). Numerical optimization. New York: Springer. ISBN 0-387-98793-2 
  • Ramsin, Håkan (1976). Ickelinjär optimering. Lund: Liber läromedel. ISBN 91-40-04288-X