Ottimizzazione dell'iperparametro nella regressione del processo gaussiana


13

Sto cercando di ottimizzare gli iperparametri dell'algoritmo di regressione del processo gaussiano che ho implementato. Voglio semplicemente massimizzare la verosimiglianza marginale data dalla formula dove K è la matrice di covarianza con il elementi K_ {ij} = k (x_i, x_j) = b ^ {- 1} \ exp (- \ frac {1} {2} (x_i-x_j) ^ TM (x_i-x_j)) + a ^ {- 1 } \ delta_ {ij} dove M = lI e a, b e l sono iperparametri.KKij=k(xi,xj)=b-1exp(-1

log(y|X,θ)=-12yTKy-1y-12log(det(K))-n2log(2π)
KM=lIa,bl
Kioj=K(Xio,Xj)=B-1exp(-12(Xio-Xj)TM(Xio-Xj))+un'-1δioj
M=lioun',Bl

la derivata parziale dei parametri wrt di verosimiglianza marginale log è data dai seguenti

log(y|X,θ)dθ=12trun'ce(K-1dKdθ)+12(ydKdθK-1dKdθy)

Quando i dati di K dipendono dai parametri, così fanno derivati e inversa K . Ciò significa che, quando viene impiegato un ottimizzatore basato sul gradiente, la valutazione del gradiente in un determinato punto (valore del parametro) richiederà la ricomputazione della matrice di covarianza. Nella mia applicazione, ciò non è fattibile perché calcolare la matrice di covarianza da zero e calcolare il suo inverso in ogni iterazione dell'ascesa a gradiente è troppo costoso. La mia domanda è: quali sono le mie opzioni per trovare una combinazione abbastanza buona di questi tre parametri? e inoltre non so quale parametro ottimizzare per primo e apprezzerei anche qualsiasi suggerimento su questo problema.


Ho avuto successo usando HMC per campionare iper-parametri GP per set di dati di dimensioni modeste.
Sycorax dice di reintegrare Monica il

Ciao @Sycorax, potresti dirci come hai usato questa tecnica per risolvere questo problema? Ho lo stesso problema che l'OP ha chiesto e ho pensato di usare MCMC per risolverlo, ma non so ancora come farlo.
Willian Fuks,

Ho appena programmato il GP a Stan. Gli iperparametri GP sono stati dichiarati come parametri del modello e dedotti di conseguenza. Ciò ha generato una serie di previsioni per ogni iterazione HMC. Gelman illustra come tutto questo funziona in BDA3.
Sycorax dice di reintegrare Monica il

Risposte:


6

Hai ragione, hai bisogno di un nuovo calcolo della matrice di covarianza su ogni iterazione dell'ascesa a gradiente. Quindi, se il calcolo della matrice non è fattibile per la tua impostazione, quindi, penso, non puoi usare l'ottimizzazione della probabilità marginale basata sul gradiente.

Il mio suggerimento è di utilizzare metodi senza gradiente per l'ottimizzazione dell'iperparametro, come la ricerca della griglia, la ricerca casuale o la ricerca basata sull'ottimizzazione bayesiana . Questi metodi sono ampiamente utilizzati per l'iperparametro di ottimizzazione di altri algoritmi di apprendimento automatico, ad esempio SVM.

Suggerisco la ricerca della griglia per il tuo primo tentativo. Fondamentalmente formi una tabella (griglia) di possibili iperparametri, provali tutti e cerchi le migliori prestazioni di validazione (o la migliore probabilità marginale).

La ricerca della griglia produrrebbe un insieme non ottimale di iperparametri e dovrai specificare la griglia da solo. (e non hai bisogno del gradiente!)

Se non si ha familiarità con la ricerca della griglia, è possibile cercare Wikipedia: Ottimizzazione dell'iperparametro - Ricerca griglia

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.