Ottimizzazione bayesiana; strategia di progettazione sequenziale per l'ottimizzazione globaleUn cliente mi ha chiesto informazioni su un'ottimizzazione bayesiana. Qualcuno ha fatto una richiesta simile da un cliente?
In generale, l'ottimizzazione bayesiana è una strategia di progettazione sequenziale per l'ottimizzazione globale delle funzioni black-box che non assume alcuna forma funzionale. Questo metodo è stato utilizzato per ottimizzare i modelli di apprendimento automatico. L'ottimizzazione bayesiana è stata recentemente applicata anche nell'industria manifatturiera (per esperimenti di simulazione ed esperimenti reali).
Il mio cliente desidera selezionare il miglior esperimento candidato per l'esecuzione successiva in base ai dati dell'esperimento precedente.
Ecco un esempio di applicazione per l'esperimento chimico.
https://www.nature.com/articles/s41586-021-03213-y
Penso che JMP possa creare un modello di processo gaussiano in modo che un cliente possa eseguire alcuni passaggi nell'ottimizzazione bayesiana in JMP.
Yuichi
Oggetto: ottimizzazione bayesiana; strategia di progettazione sequenziale per l'ottimizzazione globaleGrazie, Yuichi.
È interessante vedere che esiste un prodotto software commerciale dedicato per questo.
Ho visto parecchi documenti accademici su questo tipo di approccio. Alcuni di loro hanno fornito applicazioni open source basate su R o Python. Tutti gli approcci che vedo in questi documenti sono "robotici" o "algoritmici".
Un vantaggio dell'utilizzo di JMP è che lo scienziato può esplorare in modo interattivo i dati in ogni fase per guidare il processo con la comprensione del dominio.
Saluti,
Fil
Oggetto: ottimizzazione bayesiana; strategia di progettazione sequenziale per l'ottimizzazione globaleOggi ho parlato con un cliente e ha ritenuto di poter utilizzare JMP per il suo esperimento. Per tua informazione, anche i seguenti prodotti sono software candidati per questo scopo.
https://citrine.io/product/what-is-the-citrine-platform/
Grazie,
Yuichi
Oggetto: ottimizzazione bayesiana; strategia di progettazione sequenziale per l'ottimizzazione globaleGrazie, Fil. Tutte le informazioni sono utili per me.
Capisco che la combinazione di design che riempie lo spazio e modello di processo gaussiano sarebbe una soluzione per il tuo cliente. Questo ha senso per me.
Grazie per avermi informato della tua presentazione a Discovery Europe. Capisco che l'approccio di te e Ryan sia la combinazione di funzionalità Covariate/Candidate Run e XGboost. Penso che funzioni anche per i clienti JMP Pro.
Suggerirò questi approcci a un cliente. Se un cliente ottiene un buon risultato, te lo farò sapere.
Grazie,
Yuichi
Oggetto: ottimizzazione bayesiana; strategia di progettazione sequenziale per l'ottimizzazione globaleSÌ, @yuichi_katsumur . Penso che una combinazione di design che riempie lo spazio e modello di processo gaussiano sarebbe una soluzione per il tuo cliente.
Penso che ci sia un crescente interesse da parte dei clienti per questo tipo di approccio, soprattutto in chimica. Anche se al momento non conosco alcun cliente che utilizzi JMP per questo.
E ho visto parecchi documenti su questo, incluso il documento che hai condiviso.
Un cliente ha chiesto informazioni sull'utilizzo di questo approccio per determinare l'effetto della concentrazione di sale sulla viscosità degli shampoo.
Questo è l'approccio che suggerirei:
- Hai bisogno di un set di dati iniziale. Negli articoli che ho letto spesso iniziano con un insieme casuale di punti dati dallo spazio dei fattori. Ma penso che un piccolo design che riempia lo spazio sarebbe meglio. Eseguire questo esperimento e registrare la risposta per ogni corsa.
- Aumenta il set di dati iniziale con un numero molto elevato di esecuzioni (diciamo 1000) utilizzando il riempimento dello spazio. Non li eseguirai tutti, quindi puoi scegliere un numero molto elevato. Ora hai una tabella di dati con un numero molto elevato di esecuzioni: hai la risposta solo per alcune di queste.
- Modella la risposta rispetto ai fattori utilizzando il modello di processo gaussiano. Salva formula di previsione e Salva formula di varianza. Ora hai la risposta effettiva per un piccolo numero di esecuzioni e la varianza e la risposta prevista per tutte le esecuzioni.
- Dalle esecuzioni che non sono state testate, trovare l'esecuzione con la varianza maggiore. Registrare la risposta effettiva per questa corsa.
- Ripeti i passaggi 3 e 4 finché non hai raggiunto il tuo obiettivo.
Ha senso?
Ho allegato una tabella di dati che potrebbe aiutare a illustrare. Si basa su "2D Gaussian Process Example.jmp" dalla cartella dei dati di esempio.
La gente parla di "sfruttamento" vs "esplorazione". L'approccio di cui sopra è l'esplorazione perché stiamo scegliendo la corsa successiva per esplorare la regione più incerta dello spazio dei fattori. L'exploitation è il punto in cui scegli l'esecuzione che si prevede abbia la risposta ottimale (ad es. rendimento più elevato). Spesso le persone usano l'approccio di iniziare con l'esplorazione e poi a un certo punto passare allo sfruttamento.
@Ryan_Lekivetz e io stesso ho dato una presentazione a Discovery Europe dove stavamo esaminando l'ottimizzazione sequenziale di un processo chimico e ad ogni passaggio è possibile eseguire 48 corse. Abbiamo confrontato gli approcci di esplorazione e sfruttamento. E abbiamo esaminato un approccio ibrido in cui, ad ogni passaggio ("round"), viene scelto un insieme ottimale di esecuzioni tra le esecuzioni non testate che hanno previsto una resa superiore a una certa soglia. Aumentiamo la soglia ad ogni passaggio. Questo sembrava essere un approccio utile.
Spero che tutto aiuti. Sarei interessato a sapere se il tuo cliente prova questo approccio.
Grazie,
Fil