Discesa gradiente e discesa gradiente coniugato


11

Per un progetto, devo implementare questi due metodi e confrontare le loro prestazioni su diverse funzioni.

Sembra che il metodo del gradiente coniugato abbia lo scopo di risolvere i sistemi di equazioni lineari del for

Ax=b

Dove A è una matrice n-by-n simmetrica, definita positiva e reale.

D'altra parte, quando leggo della discesa del gradiente vedo l'esempio della funzione Rosenbrock , che è

f(x1,x2)=(1x1)2+100(x2x12)2

A mio avviso, non posso risolverlo con un metodo del gradiente coniugato. O mi manca qualcosa?

Risposte:


14

La discesa gradiente e il metodo del gradiente coniugato sono entrambi algoritmi per ridurre al minimo le funzioni non lineari, ovvero funzioni come la funzione Rosenbrock

f(x1,x2)=(1x1)2+100(x2x12)2

o una funzione quadratica multivariata (in questo caso con un termine quadratico simmetrico)

f(x)=12xTATAxbTAx.

xdnf(x)αx

minf(x)

Entrambi i metodi partono da un'ipotesi iniziale, , e quindi calcolano l'iterazione successiva utilizzando una funzione del modulox0

xi+1=xi+αidi.

In parole, il valore successivo di si trova iniziando dalla posizione corrente e spostandosi nella direzione di ricerca per una certa distanza . In entrambi i metodi, la distanza da spostare può essere trovata mediante una ricerca per riga (minimizza su ). Possono essere applicati anche altri criteri. Dove i due metodi differiscono è nella loro scelta di . Per il metodo gradiente, . Per il metodo del gradiente coniugato, la procedura di Grahm-Schmidt viene utilizzata per ortogonalizzare i vettori del gradiente. In particolare, , ma quindi è ugualexxidiαif(xi+αidi)αididi=f(xi)d0=f(x0)d1f(x1) meno la proiezione di quel vettore su tale che . Ogni vettore gradiente successivo è ortogonale rispetto a tutti i precedenti, il che porta a proprietà molto belle per la funzione quadratica sopra.d0(d1)Td0=0

La funzione quadratica di cui sopra (e le relative formulazioni) è anche il punto da cui deriva la discussione sulla soluzione di usando il metodo del gradiente coniugato, poiché il minimo di quella viene raggiunto nel punto dove .Ax=bf(x)xAx=b


9

In questo contesto, entrambi i metodi possono essere considerati problemi di minimizzazione della funzione: Quando è simmetrico, allora viene minimizzato quando .

ϕ(x)=12xTAxxTb
AϕAx=b

La discesa gradiente è il metodo che cerca iterativamente un minimizzatore guardando nella direzione del gradiente. Il gradiente coniugato è simile, ma anche le direzioni di ricerca devono essere ortogonali tra loro nel senso che .piTApj=0i,j

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.