Ottimizzare una funzione sconosciuta che può essere valutata solo?


11

Data una funzione sconosciuta , possiamo valutare il suo valore in qualsiasi punto del suo dominio, ma non abbiamo la sua espressione. In altre parole, f è come una scatola nera per noi.f:RdRf

Qual è il nome del problema di trovare il minimizer di ? Quali sono alcuni metodi là fuori?f

Qual è il nome del problema di trovare la soluzione all'equazione ? Quali sono alcuni metodi là fuori?f(x)=0

Nei due problemi precedenti, è una buona idea interpolare o adattarsi ad alcune valutazioni di f: usando una funzione g θ con forma e parametro noti θ da determinare, e quindi minimizzare g θ o trovare la sua radice?(xi,f(xi)),i=1,,ngθθgθ

Grazie e saluti!


1
Puoi valutare il suo gradiente in un determinato punto?
Chaohuang,

@chaohuang: ci sono due casi: puoi o meno valutare il suo gradiente, a seconda delle ipotesi.
Tim

Se il gradiente è disponibile, le attività che stai chiedendo possono essere eseguite mediante algoritmi basati sul gradiente. Ad esempio, il minimo, o almeno un minimo locale, può essere calcolato con il metodo di discesa più ripido e le radici possono essere trovate con il metodo di Newton.
Chaohuang,

E se il gradiente è sconosciuto, ci sono metodi metauristici , che sono anche chiamati metodi senza derivati ​​o scatola nera e di solito sotto forma di ottimizzazione stocastica.
Chaohuang

2
Sai se la funzione è fluida (anche se non puoi valutare il gradiente)? Sai se la funzione è convessa? Se non è convesso, sai se è almeno continuo di Lipschitz? Se la funzione è completamente generale, questo è un problema senza speranza.
Brian Borchers,

Risposte:


13

I metodi che stai cercando, ovvero che usano solo valutazioni di funzioni ma non derivati, sono chiamati metodi di ottimizzazione privi di derivati . C'è una grande quantità di letteratura su di essi e puoi trovare un capitolo su tali metodi nella maggior parte dei libri sull'ottimizzazione. Gli approcci tipici includono

  • Approssimare il gradiente con differenze finite se ci si può ragionevolmente aspettare che la funzione sia liscia e, possibilmente, convessa;
  • Metodi Monte Carlo come ricottura simulata;
  • Algoritmi genetici.

1
Posso semplicemente aggiungere "Surrogate Modeling" a quell'elenco? Sono molto applicabili per l'ottimizzazione della scatola nera, in particolare se la funzione è costosa da valutare.
OscarB

Sì, puoi :-) Sicuramente un'ottima aggiunta.
Wolfgang Bangerth,

Si potrebbe anche usare il metodo Nelder-Mead se si conoscono buone stime dell'optima.
JM,

Sì, potresti usare Nelder-Mead, ma è un algoritmo terribile rispetto a quasi tutti gli altri.
Wolfgang Bangerth,

1
@WolfgangBangerth: il tuo commento su Nelder-Mead è valido solo nella dimensione d> 2. In due dimensioni, è su molti problemi un metodo eccellente e molto difficile da battere.
Arnold Neumaier,

2

Penso che dovresti iniziare con: Workshop GECCO sul benchmarking dell'ottimizzazione della scatola nera con parametri reali (BBOB 2016) http://numbbo.github.io/workshops/index.html

Troverai molti algoritmi diversi che sono stati utilizzati nelle precedenti competizioni e che sono stati confrontati su base comune. Se inizi altrove, presto affogherai tra le centinaia di articoli che affermano che i loro metodi e algoritmi funzionano meglio di altri con poche prove reali per tali affermazioni.

Fino a poco tempo fa, era francamente uno stato di vergogna e tutto il potere di INRIA, GECCO e molti altri per lo sforzo che hanno compiuto per stabilire un quadro per confronti razionali.


-1

Vorrei solo aggiungere che una delle chiavi qui è la possibilità di ridimensionare il metodo di ottimizzazione su CPU multicore . Se è possibile eseguire più valutazioni di funzioni contemporaneamente, si ottiene una velocità pari a un numero di core coinvolti. Confronta questo con il semplice uso di un modello di risposta leggermente più accurato, che ti rende il 10% più efficiente o giù di lì.

Consiglierei di guardare questo codice , può essere utile per le persone che hanno accesso a molti core. Una matematica dietro è descritta in questo documento .


1
Questa risposta è troppo breve per essere utile (e rimanere utile, poiché i collegamenti possono andare via in qualsiasi momento). Inoltre, si ricorda che sei l'autore di questo software .
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.