Ottimizzazione matematica su una funzione rumorosa


10

Sia una funzione abbastanza carina (ad esempio, continua, differenziabile, non troppi massimi locali, forse concava, ecc.). Voglio trovare un massimo di f : un valore x R d che rende f ( x ) il più grande possibile.f:RdRfxRdf(x)

Se avessi una procedura per valutare precisione su qualsiasi input di mia scelta, avrei potuto utilizzare tecniche di ottimizzazione matematica standard : arrampicata in salita, discesa in pendenza (bene, salita in pendenza), ecc. Tuttavia, nella mia applicazione non ho un modo di valutare esattamente f ( x ) . Invece, ho un modo per stimare il valore di f ( x ) .ff(x)f(x)

In particolare, dato qualsiasi e qualsiasi ε , ho un oracolo che produrrà una stima di f ( x ) e il cui errore previsto è approssimativamente ε . Il tempo di esecuzione di questa invocazione dell'oracolo è proporzionale a 1 / ε 2 . (È implementato da un tipo di simulazione; l'accuratezza della simulazione aumenta con la radice quadrata del numero di prove e posso scegliere quante prove eseguire, quindi posso scegliere l'accuratezza desiderata.) Quindi questo mi dà un modo per ottenere una stima di qualsiasi accuratezza che desidero, ma più preciso voglio che sia la stima, più tempo ci vorrà.xεf(x)ε1/ε2

Dato questo rumoroso oracolo per , ci sono delle tecniche per calcolare un massimo di f nel modo più efficiente possibile? (O, più precisamente, trovare un massimo approssimativo.) Esistono varianti di arrampicata in collina, discesa in pendenza, ecc., Che funzionano all'interno di questo modello?ff

Ovviamente, potrei fissare un valore molto piccolo di e applicare l'arrampicata o la discesa con pendenza con questo oracolo, mantenendo lo stesso ε per tutto. Tuttavia, ciò potrebbe essere inutilmente inefficiente: potremmo non aver bisogno di una stima così precisa vicino all'inizio, mentre la precisione vicino alla fine quando si sta concentrando sulla soluzione è più importante. Quindi c'è un modo per sfruttare la mia capacità di controllare in modo dinamico l'accuratezza della mia stima, per rendere più efficiente il processo di ottimizzazione? Questo tipo di problema è stato studiato prima?εε


2
ϵ

cybersynchronicity, si è imbattuto esattamente in questo caso di recente in un programma GA. d'accordo con rs sopra che la ricottura simulata in cui la precisione della valutazione della funzione corrisponda all'incirca alla diminuzione della temperatura dovrebbe funzionare. un'altra idea è semplicemente fare un numero fisso di campioni in ogni punto e prendere la media come stima. una teoria più avanzata potrebbe solo dirti che non puoi ottenere qualcosa per niente e che non ci sono scorciatoie per le valutazioni che migliorano l'ottimizzazione.
vzn

Risposte:


4

f(x,p)f(x+Δx,p+Δp)pΔxΔp

  • Alcune tecniche utilizzate nell'ottimizzazione stocastica e nell'ottimizzazione robusta potrebbero essere applicabili.
  • fx0ΔxΔp
  • fx(x~,p~)f(x~,p~)
  • ΔpΔx1/ϵ2
  • Il dato compromesso tra rumore e runtime è ciò che distingue questo problema da problemi meglio studiati. I problemi dove il rumore è semplicemente inevitabile sono più comuni e meglio studiati.

f(x,p)f(x+Δx,Δp)pp=0f). L'ottimizzazione stocastica e l'ottimizzazione solida sembrano più o meno il tipo di cose che stavo cercando, quindi è molto utile. Grazie.
DW

p=0f(x,0)f(x+Δx,Δp)ΔxΔp
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.