Algoritmul Gauss-Newton este folosit pentru a rezolva probleme prin metoda neliniară a celor mai mici pătrate . Algoritmul este o modificare a metodei lui Newton pentru găsirea minimului funcției . Spre deosebire de metoda Newton, algoritmul Gauss-Newton poate fi folosit doar pentru a minimiza suma pătratelor, dar avantajul său este că metoda nu necesită calculul derivatelor secunde, ceea ce poate reprezenta o dificultate semnificativă.
Problemele pentru care se aplică metoda celor mai mici pătrate neliniare apar, de exemplu, în regresia neliniară , în care sunt căutați parametrii modelului care sunt cel mai în concordanță cu valorile observate.
Metoda poartă numele matematicienilor Carl Friedrich Gauss și Isaac Newton .
Având în vedere m funcții r = ( r 1 , …, r m ) (deseori numite reziduuri) a n variabile β = ( β 1 , …, β n ), pentru m ≥ n . Algoritmul Gauss-Newton găsește iterativ valorile variabilelor care minimizează suma pătratelor [1]
Pornind de la o aproximare inițială , metoda iterează
Aici, dacă considerăm r și β ca vectori coloană, elementele matricei jacobiene sunt
iar simbolul înseamnă transpunerea matricei .
Dacă m = n , iterațiile sunt simplificate la
,care este o generalizare directă a metodei unidimensionale a lui Newton .
La ajustarea datelor, unde scopul este de a găsi parametrii β astfel încât un model dat de funcții y = f ( x , β ) să aproximeze cel mai bine punctele de date ( x i , y i ), funcțiile r i sunt erori reziduale
Atunci metoda Gauss-Newton poate fi exprimată în termenii jacobian J f al funcției f
Rețineți că este o matrice pseudo -inversă pentru .
Cerința m ≥ n în algoritm este necesară, deoarece altfel matricea J r T J r nu are inversă și ecuațiile normale nu pot fi rezolvate (cel puțin fără ambiguitate).
Algoritmul Gauss-Newton poate fi obținut folosind o aproximare liniară a vectorului funcție r i . Folosind teorema lui Taylor , putem scrie pentru fiecare iterație:
,unde . Problema găsirii Δ minimizând suma pătratelor din partea dreaptă, i.e.
,este o problemă liniară cu cele mai mici pătrate care poate fi rezolvată explicit, dând ecuații normale.
Ecuațiile normale sunt m ecuații liniare în incremente necunoscute Δ. Ecuațiile pot fi rezolvate într-o singură etapă folosind descompunerea Cholesky , sau mai bine, descompunerea QR a matricei J r . Pentru sistemele mari, metoda iterativă poate fi mai eficientă dacă sunt utilizate metode precum metoda gradientului conjugat . Dacă există o dependență liniară a coloanelor matricei J r , metoda iterației eșuează deoarece J r T J r devine degenerată.
Acest exemplu folosește algoritmul Gauss-Newton pentru a construi un model de date prin minimizarea sumei abaterilor pătrate ale datelor și ale modelului.
În biologia experimentală, studiul relației dintre concentrația substratului [ S ] și viteza de reacție în reacția de modulare a enzimei, s-au obținut următoarele date.
i | unu | 2 | 3 | patru | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
[ S ] | 0,038 | 0,194 | 0,425 | 0,626 | 1.253 | 2.500 | 3.740 |
viteză | 0,050 | 0,127 | 0,094 | 0,2122 | 0,2729 | 0,2665 | 0,3317 |
Este necesar să se găsească o curbă (funcție-model) a formei
viteza ,care aproximează cel mai bine datele în sensul celor mai mici pătrate cu parametrii și de găsit.
Notați cu și valorile lui [ S ] și viteza din tabel, . Lasă și . Vom căuta și , astfel încât suma abaterilor pătrate
minim.
Jacobianul vectorului de reziduuri peste necunoscute este o matrice cu rândul --lea având elementele
Pornind de la aproximarea inițială și după cinci iterații, algoritmul Gauss-Newton oferă valorile optime ale și . Suma reziduurilor pătrate scade de la valoarea inițială de 1,445 la 0,00784 cu a cincea iterație. Graficul din dreapta arată curba cu parametri optimi.
Se poate arăta [2] că direcția de creștere a Δ este direcția de descreștere pentru S , iar dacă algoritmul converge, limita va fi punctul staționar pentru S . Totuși, convergența nu este garantată chiar și atunci când punctul de plecare este aproape de soluția , ceea ce se întâmplă în metoda Newton sau metoda BFGS în condiții normale Volfe [3] .
Rata de convergență a algoritmului Gauss-Newton este apropiată de pătratică [4] . Algoritmul poate converge mai lent sau deloc dacă estimarea inițială este departe de minim sau dacă matricea este prost condiționată . De exemplu, imaginați-vă o problemă cu ecuații și o variabilă
Soluția optimă rezultată este . (Optimul real este pentru , deoarece , în timp ce .) Dacă , atunci problema este, de fapt, liniară și metoda găsește o soluție într-o iterație. Dacă |λ| < 1, atunci metoda converge liniar și eroarea scade cu o rată de |λ| la fiecare iterație. Totuși, dacă |λ| > 1, atunci metoda nu converge nici măcar local [5] .
Următoarele presupune că algoritmul Gauss-Newton se bazează pe metoda lui Newton pentru minimizarea funcției prin aproximare. În consecință, rata de convergență a algoritmului Gauss-Newton poate fi pătratică dacă sunt îndeplinite anumite condiții. În cazul general (în condiții mai slabe), rata de convergență poate fi liniară [6] .
Relația de recurență a metodei lui Newton de minimizare a funcției S a parametrilor
unde g reprezintă vectorul gradient al funcției S , iar H reprezintă Hessianul funcției S . Deoarece , gradientul este dat de egalitate
Elementele hessiene sunt calculate prin diferențierea elementelor de gradient în raport cu
Metoda Gauss-Newton se obține prin eliminarea derivatei a doua (al doilea termen din expresie). Adică Hessianul este aproximativ
,unde sunt elemente ale jacobianului J r . Gradientul și Hessianul aproximativ pot fi scrise în notație matriceală
Aceste expresii sunt substituite în relația de recursivitate de mai sus pentru a obține ecuațiile de operare
În general, convergența metodei Gauss-Newton nu este garantată. Apropiere
,care trebuie să se țină pentru a putea renunța la termeni cu derivata a doua, se poate obține în două cazuri pentru care se așteaptă convergență [7]
În metodele Gauss-Newton, suma reziduurilor pătrate S poate să nu scadă la fiecare iterație. Totuși, deoarece Δ este direcționat în direcția scăderii funcției, dacă nu este un punct staționar, inegalitatea este valabilă pentru suficient de mic . Astfel, dacă se găsește o divergență, se poate folosi fracția vectorului de creștere Δ în formula de actualizare:
.Cu alte cuvinte, vectorul de increment este prea lung, dar indică direcția „coborârii”, așa că dacă parcurgeți doar o parte din drum, puteți reduce valoarea funcției S . Valoarea optimă poate fi găsită folosind un algoritm de căutare unidimensional , adică valoarea este determinată prin găsirea valorii care minimizează S folosind o căutare unidimensională pe interval .
În cazurile în care fracția optimă este aproape de zero în direcția vectorului de increment, o metodă alternativă de calcul a divergenței este utilizarea algoritmului Levenberg-Marquardt , cunoscut și sub denumirea de „metoda regiunii de încredere” [1] . Ecuații normale modificate astfel încât vectorul de coborâre să se rotească în direcția celei mai abrupte coborâri ,
,unde D este o matrice diagonală pozitivă. Rețineți că dacă D este matricea de identitate a lui E și , atunci . Astfel direcția Δ aproximează direcția gradientului negativ .
Așa-numitul parametru Marquardt poate fi optimizat și prin căutare liniară, dar nu are prea mult sens, deoarece vectorul de deplasare trebuie recalculat de fiecare dată când se modifică . O strategie mai eficientă este aceasta. Dacă se găsește o discrepanță, creșteți parametrul Marquardt pe măsură ce S scade. Apoi păstrăm valoarea între iterații, dar o reducem, dacă este posibil, până ajungem la o valoare în care parametrul Marquardt nu poate fi pus la zero. Minimizarea lui S devine apoi minimizarea standard Gauss-Newton.
Pentru optimizări de dimensiuni mari, metoda Gauss-Newton este deosebit de interesantă, deoarece adesea (deși cu siguranță nu întotdeauna) matricea este rară decât Hessianul aproximativ . În astfel de cazuri, etapa de calcul în sine necesită de obicei utilizarea unei metode de aproximare iterativă, cum ar fi metoda gradientului conjugat .
Pentru ca această abordare să funcționeze, aveți nevoie de cel puțin o metodă eficientă de calcul al produsului
pentru un vector p . Pentru a stoca o matrice rară, este practic să stocați rândurile matricei în formă comprimată (adică fără elemente zero), ceea ce face dificilă calcularea directă a produsului de mai sus (din cauza transpunerii). Totuși, dacă c i este definit ca rândul i al matricei , următoarea relație este valabilă:
astfel încât orice rând contribuie aditiv și independent la produs. În plus, această expresie este bine studiată pentru aplicarea calculului paralel . Rețineți că orice rând c i este gradientul rezidualului corespunzător r i . Luând în considerare această împrejurare, formula de mai sus subliniază faptul că reziduurile contribuie la rezultat independent unele de altele.
În metodele cvasi-newtoniene , cum ar fi metodele lui Davidon, Fletcher și Powell sau Broyden-Fletcher-Goldfarb-Shanno ( metoda BFGSh ), aproximarea hessiană completă este construită folosind primele derivate, astfel încât după n rafinamente metoda să fie apropiată ca performanță de metoda Newton. Rețineți că metodele cvasi-newtoniene pot minimiza funcțiile reale de formă generală, în timp ce metodele lui Gauss-Newton, Levenberg-Marquardt etc. sunt aplicabile numai problemelor neliniare cu cele mai mici pătrate.
O altă metodă de rezolvare a problemelor de minimizare folosind numai derivate primare este metoda coborârii gradientului . Cu toate acestea, această metodă nu ține cont de derivatele secunde, chiar și de cele aproximative. Ca urmare, metoda este extrem de ineficientă pentru multe funcții, mai ales în cazul unei influențe reciproce puternice a parametrilor.
de optimizare | Metode|
---|---|
Unidimensional |
|
Comanda zero | |
Prima comanda | |
a doua comanda | |
Stochastic | |
Metode de programare liniară | |
Metode de programare neliniară |