Dimensione del passo di discesa adattiva del gradiente quando non è possibile eseguire una ricerca di linea


9

Ho una funzione obiettiva E dipendente da un valore ϕ(x,t=1.0) , dove ϕ(x,t) è la soluzione per un PDE. Sto ottimizzando E per discesa gradiente sulla condizione iniziale del PDE: ϕ(x,t=0.0) . Cioè, aggiorno ϕ(x,t=0.0)e poi devo integrare il PDE per calcolare il mio residuo. Ciò significa che se dovessi fare una ricerca di linea per la dimensione del gradino di discesa del gradiente (chiamalo α ), per ogni potenziale valore di α dovrei integrare di nuovo il PDE.

Nel mio caso sarebbe proibitivo. Esiste un'altra opzione per la dimensione del gradino di discesa gradiente adattiva?

Non sto solo cercando schemi matematicamente di principio qui (anche se ovviamente è meglio se esiste qualcosa), ma sarei felice di tutto ciò che è generalmente migliore di una dimensione statica del gradino.

Grazie!


Non credo di voler modificare il modo in cui integrare PDE al momento, per quanto mi riguarda sarebbe una riscrittura del codice principale. Inoltre, non è così tanto che il PDE è complicato, in quanto devo risolverlo su una griglia molto densa nello spaziotempo poiché ho bisogno di un'elevata precisione numerica.
NLi10,

D'altra parte, il metodo BB (che non conoscevo) sembra abbastanza buono; tutto ciò che devo fare è tenere traccia dello stato e del gradiente della precedente iterazione e ottengo un'approssimazione del secondo ordine ... che sembra molto bella. Tuttavia, la derivazione assume un quadratico convesso e il mio problema quasi certamente non lo è. Tuttavia, sto certamente trovando (e contento) minimi locali piuttosto che globali. Sai quanto bene BB ha funzionato su problemi dimensionali molto elevati?
NLi10,

Immagino che cosa intendevo per minimi locali è che, in prossimità di un minimo locale, nessuna funzione non è approssimativamente quadratica? Penso che il mio stato iniziale sia sufficientemente vicino al minimo, poiché in molti casi ottengo una convergenza regolare anche con la dimensione statica del passo. Quindi, anche se è di dimensioni molto elevate, e in generale se si considera l'intero spazio di ricerca il problema è non convesso / non quadratico, BB potrebbe essere comunque una buona scelta senza la ricerca di linee? ϕ(0)(x,t=0.0)
NLi10,

Gli altri "ingredienti" di sono dati di immagine sperimentali. ϕ ( x , t = 1.0 ) tenta di deformare un'immagine per "far corrispondere" l'altra (misurata da alcuni funzionali corrispondenti come la norma L2 integrata sui voxel). Per alcune coppie di immagini, ottengo una convergenza uniforme con (la mia scelta attuale di) dimensioni del passo statiche. Per altre coppie di immagini, ho molte oscillazioni. Il sistema deve essere completamente automatizzato, quindi non posso tornare indietro e modificare manualmente la dimensione del passo per coppie di immagini problematiche. Eϕ(x,t=1.0)
NLi10,

Bene, devo risolvere il sistema aggiunto per ottenere il gradiente (che è un sistema più cattivo e impiega più tempo). Ok, penso che proverò BB con la ricerca della riga di backtracking. Grazie molto molto per la consulenza; i miei consulenti sono spesso difficili da trovare e molti di loro non sono interessati all'implementazione tanto quanto al modello. Sto trovando che i metodi numerici sono la componente cruciale per dimostrare se un modello è buono o meno, quindi grazie ancora lo apprezzo molto.
NLi10,

Risposte:


15

Inizierò con un'osservazione generale: le informazioni del primo ordine (ovvero, usando solo i gradienti, che codificano la pendenza) possono solo darti informazioni direzionali: può dirti che il valore della funzione diminuisce nella direzione di ricerca, ma non per quanto tempo . Per decidere fino a che punto andare lungo la direzione di ricerca, sono necessarie ulteriori informazioni (la discesa del gradiente con lunghezze di passo costanti può non riuscire anche per problemi quadratici convessi). Per questo, hai sostanzialmente due scelte:

  1. 1
  2. Prova ed errore (per cui ovviamente intendo usare una corretta ricerca di linea come Armijo).

O(1)

α0>0g0:=f(x0)k=0,...

  1. sk=αk1gkxk+1=xk+sk
  2. gk+1=f(xk+1)yk=gk+1gk
  3. αk+1=(yk)Tyk(yk)Tsk

f(xk+1)f(xk)σk(0,αk1)γ ( 0 , 1 ) M M = 10

f(xkσkgk)maxmax(kM,1)jkf(xj)γσk(gk)Tgk,
γ(0,1)MM=10

Un approccio alternativo (e, a mio avviso, molto migliore) sarebbe quello di utilizzare questa approssimazione delle differenze finite già nel calcolo della direzione di ricerca; questo è chiamato un metodo quasi-Newton . L'idea è quella di costruire in modo incrementale un'approssimazione dell'Assia usando le differenze di gradienti. Ad esempio, potresti prendere (la matrice identità) e per risolvi e imposta con come sopra e . (Questo si chiama aggiornamento di Broyden2f(xk)H0=Idk=0,

(1)Hksk=gk,
ykxk+1=xk+sk
Hk+1=Hk+(ykHksk)T(sk)T(sk)Tsk
ykxk+1=xk+sked è usato raramente in pratica; un aggiornamento migliore ma leggermente più complicato è l' aggiornamento BFGS , per il quale - e ulteriori informazioni - mi riferisco all'ottimizzazione numerica del libro di Nocedal e Wright .) L'aspetto negativo è che a) ciò richiederebbe la risoluzione di un sistema lineare in ogni passaggio (ma solo delle dimensioni dell'ignoto che nel tuo caso è una condizione iniziale, quindi lo sforzo dovrebbe essere dominato risolvendo i PDE per ottenere il gradiente; inoltre, esistono regole di aggiornamento per approssimazioni dell'Assia inversa , che richiedono solo il calcolo di una singola matrice -vector prodotto) eb) hai ancora bisogno di una ricerca per garantire la convergenza ...

Fortunatamente, in questo contesto esiste un approccio alternativo che utilizza ogni valutazione delle funzioni. L'idea è che per simmetrico e positivo definito (che è garantito per l'aggiornamento BFGS), risolvere equivale a minimizzare il modello quadratico In un metodo di regione attendibile , lo faresti con il vincolo aggiuntivo che , dove è un raggio della regione di fiducia opportunamente scelto (che svolge il ruolo della lunghezza del passo ). L'idea chiave è ora di scegliere questo raggio in modo adattivo, in base al passo calcolato. In particolare, guardi il rapporto (1) q k ( s ) = 1Hk(1)

qk(s)=12sTHks+sTgk.
sΔkΔkσk
ρk:=f(xk)f(xk+sk)f(xk)qk(sk)
della riduzione effettiva e prevista del valore della funzione. Se è molto piccolo, il tuo modello era difettoso e scarti e riprova con . Se è vicino a , il modello è buono e si imposta e si aumenta . Altrimenti basta impostare e lasciare da solo. Per calcolare il minimizer effettivo diρkskΔk+1<Δkρk1xk+1=xk+skΔk+1>Δkxk+1=xk+skΔkskminsΔkqk(s), esistono diverse strategie per evitare di dover risolvere l'intero problema di ottimizzazione vincolata; il mio preferito è il metodo CG troncato di Steihaug . Per maggiori dettagli, mi riferisco di nuovo a Nocedal e Wright.

Sto solo guardando questo di nuovo, e mi rendo conto di avere una domanda. Nel passaggio tre per il metodo BB hai ; dove e . Il numeratore e il denominatore nell'espressione per sembrano prodotti interni. Nel mio caso, , dove è uno spazio vettoriale con una metrica riemanniana non banale: K. Cioè, . Ciò influisce sulla definizione di ? αk+1=(yk)Tyk(yk)Tskyk=gk+1gksk=αk1gkαk+1gkVVgk,gkV=gk,KgkL2αk+1
NLi10,

Sì, se hai una struttura di spazio vettoriale non banale, dovresti rispettarla negli algoritmi. In particolare, dovresti distinguere tra prodotti interni di due funzioni nello stesso spazio (ad esempio, e ) e prodotti di dualità tra una funzione nello spazio e una nel doppio spazio (ad esempio, e ) - per quest'ultimo, è necessario includere la mappatura di Riesz per trasformarla prima in un prodotto interno. (Questo può essere interpretato come precondizionamento.)ykykskyk
Christian Clason,

Dott. Clason, presenterò un documento all'ISBI 2017 che descrive in dettaglio alcuni esperimenti che ho fatto utilizzando il metodo di ricerca della linea BB + per un'attività di registrazione di immagini diffeomorfe. Vuoi essere incluso come autore nel manoscritto? Non l'ho ancora scritto, ma la maggior parte degli esperimenti è completa o in corso. Per favore mi faccia sapere.
NLi10 Me

@ NLi10Me Grazie per la gentile offerta, ma non ho fatto nulla che meriti il ​​coautore: tutto ciò che ho scritto è materiale standard per libri di testo. Se ti senti fortemente a riguardo, puoi ringraziarmi per "osservazioni utili su (qualunque cosa sia stata di aiuto)", ma nemmeno ciò sarebbe necessario. Sapere che ciò che ho scritto è stato utile è abbastanza!
Christian Clason,

1
Scusa, hai ragione, questo è un errore di battitura - risolto! (La condizione di Armijo è spesso scritta come , dove è la direzione di ricerca - non necessariamente il negativo gradiente - e la dimensione del gradino, che dovrebbe chiarire cosa sta succedendo.)f(x+σs)f(x)γf(x)T(σs)sσ
Christian Clason,
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.