Massimizzare la funzione rumorosa sconosciuta


10

Sono interessato a massimizzare una funzione , dove θ R p .f(θ)θRp

Il problema è che non conosco la forma analitica della funzione o dei suoi derivati. L'unica cosa che posso fare è quello di valutare la funzione di punto-saggio, collegando un valore e ottenere una stima RUMOROSO f ( θ * ) in quel punto. Se lo desidero, posso ridurre la variabilità di queste stime, ma devo pagare costi di calcolo crescenti. θf^(θ)

Ecco cosa ho provato finora:

  • Discesa più ripida stocastica con differenze finite: può funzionare ma richiede molta ottimizzazione (es. Sequenza di guadagno, fattore di scala) ed è spesso molto instabile.

  • Ricottura simulata: funziona ed è affidabile, ma richiede molte valutazioni delle funzioni, quindi l'ho trovato abbastanza lento.

Quindi sto chiedendo suggerimenti / idee su possibili metodi di ottimizzazione alternativi che possono funzionare in queste condizioni. Sto mantenendo il problema il più generale possibile al fine di incoraggiare suggerimenti provenienti da aree di ricerca diverse dalle mie. Devo aggiungere che sarei molto interessato a un metodo che potrebbe darmi una stima dell'assia alla convergenza. Questo perché posso usarlo per stimare l'incertezza dei parametri . Altrimenti dovrò usare differenze finite attorno al massimo per ottenere una stima.θ


Se non riesci a dire qualcosa di più specifico sul rumore associato all'output della tua funzione, non sono sicuro che qualcosa di più sofisticato della ricottura simulata (dovresti anche sintonizzarlo, in una certa misura), sarà di aiuto.
Aron Ahmadia,

Sfortunatamente non so molto del rumore casuale associato alla valutazione di ciascuna funzione. La sua distribuzione è sconosciuta e può essere una funzione di . D'altro canto i rumori che influiscono sulle successive valutazioni delle funzioni sono indipendenti. Ovviamente suppongo che la varianza del rumore non sia enorme, altrimenti la massimizzazione sarebbe impossibile. θ
Jugurtha,

D'altra parte credo che so qualcosa circa la distribuzione del rumore, per esempio, che f ( θ * ) ~ N ( f ( θ * ) , σ ) . Questa conoscenza mi aiuterebbe? f^(θ)N(f(θ),σ)
Jugurtha,

Sembra che io sia corretto dal Prof. Neumaier :)
Aron Ahmadia,

Qui i fisici, ho usato CMA-ES per la modellazione di fase ottica (ottimizzando la fase di un impulso laser tramite un pulseshaper), che è piuttosto rumoroso.
tillsten,

Risposte:


7

Il nostro pacchetto Matlab SnobFit è stato creato proprio per questo scopo. Non è necessaria alcuna ipotesi sulla distribuzione del rumore. Inoltre, i valori delle funzioni possono essere forniti tramite file di testo, quindi è possibile applicarli a funzioni implementate in qualsiasi sistema in grado di scrivere un file di testo. Vedi
http://www.mat.univie.ac.at/~neum/software/snobfit/

SnobFit era stato sviluppato per un'applicazione in cui non esisteva nemmeno la funzione da ottimizzare, e i valori di funzione (una misura della qualità di fabbricazione) erano ottenuti da apparecchiature specializzate, costose, che creavano prodotti campione e li misuravano a mano, ottenendo circa 50 funzioni valutazioni al giorno.


Grazie mille per la tua risposta. Ho iniziato a leggere il tuo articolo sul pacchetto SnobFit e lo trovo davvero interessante. Inoltre, durante la lettura dell'introduzione al tuo articolo, mi sono reso conto che il problema che sto affrontando (in un contesto statistico) è piuttosto frequente nella matematica industriale. C'è una vasta letteratura di cui non ero completamente a conoscenza. In realtà l'approccio a cui stavo lavorando è in qualche modo simile all'approssimazione quadratica di Powell (2002).
Jugurtha,

Snobfit funziona bene con 128 gradi di libertà? Solo per sapere che vale la pena provare per il mio caso.
tillsten,

@tillsten: nessun metodo per problemi rumorosi funziona bene con 128 dof a meno che non sia possibile spendere un numero enorme di valori di funzione. Potresti provare il nostro VXQR1, che è per problemi non rumorosi, ma a volte gestisce bene i problemi rumorosi.
Arnold Neumaier,

Il limite per Snobfit è di circa 20 variabili. se ne hai di più, devi selezionare per gruppi di buon senso di 20 variabili che ottimizzi parzialmente a loro volta. Oppure puoi far scorrere alcune variabili contemporaneamente in modo da ridurre la dimensione.
Arnold Neumaier,

7

Esistono diverse tecniche di ottimizzazione bayesiana che potresti provare. I più semplici si basano sul processo gaussiano:

  • Harold J. Kushner. Un nuovo metodo per localizzare il massimo di una curva multipeak arbitraria in presenza di rumore. Journal of Basic Engineering, pagine 86: 97–106, marzo 1964.
  • J. Mockus. L'approccio bayesiano all'ottimizzazione globale. Dispense in Controllo e scienze dell'informazione, 38: 473–481, 1982.
  • Niranjan Srinivas, Andreas Krause, Sham Kakade e Matthias Seeger. Ottimizzazione del processo gaussiana nell'impostazione del bandito: nessun rimpianto e design sperimentale. Nel Proc. Conferenza internazionale sull'apprendimento automatico (ICML), 2010.
  • Andreas Krause, Ajit Singh e Carlos Guestrin. Posizionamenti dei sensori quasi ottimali nei processi gaussiani: teoria, algoritmi efficienti e studi empirici. J. Mach. Imparare. Ris., 9: 235–284, giugno 2008.

Operano formando funzioni posteriori su plausibili che danno finora osservazioni e suggeriscono il punto successivo per apprendere rapidamente la funzione e trovare i massimi globali (vedi il mio post sul blog ).

Un altro vantaggio è che puoi stimare l'Assia ai massimi. Tuttavia, è necessario specificare un modello di rumore.


4

L'algoritmo SPSA di James Spall (abbreviazione di stocastica perturbazione simulata di ricottura, se ricordo bene) è stato progettato proprio per questo tipo di problema. Ha un paio di articoli in cui lo usa per problemi come quello che descrivi.


Ho provato l'approccio di Spall basato su una versione stocastica della discesa più ripida e Raphson Newton. Ho provato la ricottura simulata, ma non la versione suggerita da Spall, dovrei provarla. Non sono davvero entusiasta della ricottura simulata, perché non riesco a ottenere una stima dell'Assia alla convergenza (mentre, ad esempio, con lo stocastico Raphson Newton posso ottenere un'approssimazione dell'Assia "gratuitamente").
Jugurtha,
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.