Ottimizzazione dei modelli di computer stocastici


11

Questo è un argomento difficile per me stesso per google poiché avere le parole ottimizzazione e stocastico in una ricerca per impostazione predefinita è quasi automaticamente una ricerca di ottimizzazione stocastica. Ma quello che voglio veramente sapere sono quali metodi esistono per l'ottimizzazione dei modelli di computer quando l'output del modello di computer è stocastico, cioè non deterministico?

Ad esempio, se si considera un modello di computer in cui esiste una funzione sconosciuta che rappresenta l'output del modello di computer, allora esistono molti metodi statistici per risolvere problemi comef(x)

minf(x)xX

quando f(x) è deterministico. Ma cosa succede quando f(x) è stocastico? Esiste una soluzione al problema, o nella migliore delle ipotesi possiamo solo risolverlo

minE[f(x)]xX

dove E() è il solito operatore delle aspettative.


1
Questa è una domanda molto interessante L'ottimizzazione di è l'unica cosa che sarà davvero possibile. Un'applicazione statistica correlata a questa domanda è l'algoritmo MCEM, in cui la funzione di piena probabilità è osservabile solo con errore MCMC al di sopra di esso. Allo stesso modo, gli algoritmi di filtro antiparticolato MCMC hanno lo stesso problema. Non ho letto abbastanza su nessuna delle due pubblicazioni per sapere quali sono i metodi all'avanguardia per rispondere a questo. E[f(x)]
Cliff AB,

2
Dipende dal tuo obiettivo. è solo una delle molte scelte possibili. In alcune applicazioni potresti voler avere una soluzione "affidabile", non solo una "mediamente buona". In questo scenario ottimizzeresti wrt su qualche quantile della distribuzione di . L'ottimizzazione bayesiana si occupa di costose (e talvolta rumorose) valutazioni delle funzioni. Controlla ad esempio questa domanda . f ( x )E[f(x)]f(x)
lacerbi,

1
@lacerbi sono rumorosi quegli esempi? Penso che siano solo deterministici.
RustyStatistician,

@RustyStatistician: hai ragione, molti esempi sono deterministici o parlano dell'ottimizzazione bayesiana in generale. Vedi sotto per riferimenti più focalizzati sulla parte "rumorosa".
Lacerbi,

Accedete al programma del computer in modo da poterlo eseguire da soli per gli input scelti ? Quindi i metodi per la progettazione di esperimenti diventano disponibili per l'uso! Cerca questo sito. x
kjetil b halvorsen,

Risposte:


10

( Espandendo il mio commento a una risposta corretta. )

Come ho già detto, dipende dal tuo obiettivo.

Il valore atteso è solo una delle molte scelte possibili per l'obiettivo di ottimizzazione. Ad esempio, supponendo che siano normalmente distribuiti, è possibile eseguire:f ( x )E[f(x)]f(x)

κRκ>0κκ

xopt=argminx{E[f(x)]+κVar[f(x)]}
per alcuni che manipolano la sensibilità al rischio. Se stai cercando una soluzione robusta che probabilmente è la migliore e scoraggia grandi fluttuazioni positive. Viceversa, un negativo favorirebbe un'ottimizzazione "ottimistica" che cerca ampie fluttuazioni negative (il negativo è buono poiché stiamo minimizzando). Puoi scegliere base ai quantili della distribuzione normale (vedi riferimento 2 sotto).κRκ>0κκ

In generale, l'ottimizzazione bayesiana (BO, che è correlata ai processi e al kriging gaussiani ) si occupa di valutazioni delle funzioni costose e talvolta rumorose; sebbene la maggior parte del focus della letteratura sia stata sulla prima parte. Puoi trovare recensioni per l'ottimizzazione bayesiana a questa domanda .

Diverse persone hanno applicato BO a funzioni rumorose. Come introduzione all'argomento, David Ginsbourger ha tenuto un discorso dal titolo "Variazioni sul miglioramento atteso" al seminario sui processi gaussiani per l'ottimizzazione globale (Sheffield, 17 settembre 2015). Puoi trovare i suoi discorsi qui e tutti i discorsi sono disponibili su questa pagina (consiglio anche tutti gli altri discorsi come un'eccellente introduzione generale a BO.)

Come riferimento, vorrei iniziare con il lavoro svolto da Ginsbourger e colleghi, Gramacy e colleghi:

  1. Picheny, V. e Ginsbourger, D., 2014. "Metodi di ottimizzazione basati su kriging rumorosi: un'implementazione unificata all'interno del pacchetto DiceOptim". Statistiche computazionali e analisi dei dati , 71, pagg. 1035-1053. ( link )

  2. Picheny, V., Ginsbourger, D., Richet, Y. e Caplin, G., 2013. "Ottimizzazione basata su quantili di esperimenti di computer rumorosi con precisione sintonizzabile". Technometrics , 55 (1), pp.2-13. ( link )

  3. Gramacy, RB e Lee, HK, 2012. "Modelli di processo gaussiani alesati bayesiani con un'applicazione alla modellazione al computer". Giornale dell'American Statistical Association . ( link )

  4. Gramacy, RB e Apley, DW, 2015. "Approssimazione di processo gaussiana locale per esperimenti su computer di grandi dimensioni". Journal of Computational and Graphical Statistics , 24 (2), pagg. 561-578. ( link )

Sia Ginsburger che Gramacy hanno pacchetti R che implementano i loro metodi BO, rispettivamente DiceOptim e tgp .


1
Dov'è nella tua risposta o intendi ? κkκ
RustyStatistician,

1
Un altro algoritmo, che non ho usato * ma vince nel divertente reparto nomi, è SNOBFIT . (* L'autore è notevole nella comunità dell'ottimizzazione, tuttavia, e il software ha funzionato bene su un benchmark deterministico , quindi la raccomandazione non è solo basata sul bel nome!)
GeoMatt22

4

Le risposte attuali si concentrano sulla corretta (matematica) definizione di un obiettivo di ottimizzazione stocastica - Voglio fornire una prospettiva un po 'più applicata.

Questo problema si verifica frequentemente quando si adattano modelli stocastici, ad esempio utilizzando probabilità informali o sintetiche. Riferimento (1) fornisce un elenco di opzioni che possono essere utilizzate per definire la distanza tra un modello stocastico e i dati.

Dopo aver definito il tuo obiettivo in questo modo, il problema che rimane è trovare l'ottimale di una media di un bersaglio rumoroso. Ci sono due percorsi da percorrere, a) ottimizzazione eb) campionamento MCMC. Mi stavi chiedendo in particolare riguardo all'ottimizzazione, ma voglio coinvolgere gli MCMC perché spesso si comportano meglio per questo compito.

a) Se rimani con l'ottimizzazione, devi assicurarti di non rimanere bloccato e che l'ottimizzatore possa affrontare un obiettivo stocastico. Il capitolo 4 della tesi di dottorato di Matteo Fasiolo dà alcuni suggerimenti, vedi (2).

b) Come notiamo in (1), gli MCMC sono generalmente più robusti rispetto a un obiettivo stocastico - in condizioni lievi riguardanti la distribuzione del rumore, l'MCMC calcolerà la media del rumore lontano e l'obiettivo campionato sarà indistinguibile da un non rumoroso bersaglio con media del bersaglio rumoroso. Tuttavia, anche gli MCMC possono rimanere bloccati quando si incontra una valutazione particolarmente buona. Quello che NON DEVI FARE ora è ottenere la seguente idea "ovvia": calcola semplicemente il valore attuale e proposto in ogni iterazione MCMC. La parola chiave per cercare qui è "pseudo-marginale", vedi anche qui e qui .

1) Hartig, F .; Calabrese, JM; Reineking, B .; Wiegand, T. & Huth, A. (2011) Inferenza statistica per modelli di simulazione stocastica - teoria e applicazione . Ecol. Lett., 14, 816-827.

2) Fasiolo, M. (2016) Metodi statistici per la dinamica della popolazione complessa . Università di Bath


4

Diciamo che siamo in uno spazio di probabilità discreto in modo che . Intuitivamente, hai bisogno di alcune funzioni modo da poter ottimizzare . Puoi ottimizzare solo un singolo obiettivo! U : R nR U ( f ( x ) )f(x)RnU:RnRU(f(x))

L'ottimizzazione di una singola funzione obiettivo può sembrare abbastanza restrittiva, ma non lo è ! Piuttosto un singolo obiettivo può rappresentare preferenze incredibilmente diverse che potresti avere su quella che è una soluzione migliore o peggiore.

Saltando avanti, un semplice punto di partenza potrebbe essere la scelta di una variabile casuale quindi la risoluzione:λ

E[f(x)]

minimize (over x)E[λf(x)]subject toxX
Questo è un semplice ripensamento lineare di . Ad ogni modo, ecco un argomento per cui crollare più obiettivi su un singolo obiettivo è in genere corretto.E[f(x)]

Configurazione di base:

  • Avete una variabile scelta e un set fattibile .XxX
  • La tua scelta di porta a un risultato casuale˜ y = f ( x )xy~=f(x)
  • Hai preferenze razionali rispetto al risultato casuale. (Fondamentalmente, puoi dire se preferisci un risultato casuale ad un altro.)˜ yy~

Il tuo problema è scegliere modo che:xX

x x

xXf(x)f(x)
In inglese, decidi di scegliere modo che nessuna scelta possibile porti a un risultato preferito a .xxf(x)

Equivalenza a massimizzare l'utilità (a determinate condizioni tecniche)

Per semplicità tecnica, dirò che siamo in uno spazio di probabilità discreto con risultati in modo da poter rappresentare un risultato casuale con un vettore .ny~yRn

In determinate condizioni tecniche (che non sono limitative in senso pratico), il problema sopra riportato equivale a massimizzare una funzione di utilità . (La funzione di utilità assegna risultati più preferiti un numero più elevato.)U(y)

Questa logica si applicherebbe a qualsiasi problema in cui la tua scelta porti a più variabili di risultato.

maximize (over x)U(f(x))subject toxX

Dare più struttura alla funzione di utilità : ipotesi di utilità prevista :U

Se ci troviamo in un contesto probabilistico e accettiamo gli assiomi di Neumann-Morgernstern , la funzione di utilità generale deve assumere una forma speciale:U

U(y)=E[u(yi)]=ipiu(yi)
Dove è la probabilità dello stato e è una funzione di utilità concava. La curvatura di misura l'avversione al rischio. Sostituendo semplicemente questa forma specializzata di otterrai:piiuuU

maximize (over x)ipiu(yi)subject toxXy=f(x)

Si che il caso semplice sta massimizzando il valore atteso (ovvero nessuna avversione al rischio).u(yi)=yi

Un altro approccio: pesiλ

Un'altra cosa da fare è:

maximize (over x)iλiyisubject toxXy=f(x)

Intuitivamente, puoi scegliere pesi più grandi o più piccoli della probabilità di uno stato che si verifica, e questo cattura l'importanza di uno stato.p iλipi

La giustificazione più profonda di questo approccio è che in determinate condizioni tecniche, esistono pesi lambda tali che il problema sopra e i problemi precedenti (es. Massimizzare ) hanno la stessa soluzione.U ( f ( x ) )λU(f(x))


Ma in questa configurazione non tutte le funzioni di utilità portano alla stessa risposta corretta?
RustyStatistician,

E ci sono scelte tipiche per le funzioni di utilità? Il mio problema è un simulatore di computer stocastico, che in realtà è un simulatore di blackbox, quindi non conosco informazioni sulla meccanica di base, quindi posso anche assegnargli una funzione di utilità?
RustyStatistician,

Devi pensare attraverso la logica del tuo problema, cosa costituisce un buon risultato, e poi trovare qualche funzione oggettiva che assegna risultati migliori a un numero più alto. (O equivalentemente, è possibile impostare questo come un problema di minimizzazione e assegnare risultati peggiori a un numero più alto. Ad es. Minimizzare alcune nozioni di errore al quadrato ecc.)
Matthew Gunn,
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.