Problema di ottimizzazione bayesianaIn un precedente studio di ricerca e sviluppo, ho utilizzato con successo un DOE a 4 fattori (3 fattori di miscela e un effetto "isomero" categorico a 3 livelli) per trovare le impostazioni ottimali per una formulazione chimica con tre attributi di qualità Y1, Y2 e Y3.
Ho utilizzato il caso in un corso del Dipartimento dell'Energia degli Stati Uniti (DOE) e ho usato formule di simulazione per calcolare le risposte Y123. Sono stati ottenuti buoni modelli e l'ottimizzazione è stata semplice e ha funzionato correttamente, vedi "ANALISI DELLA MISCELA DOE - FORMULAZIONE CHIMICA" nell'allegato.
Partendo da un DOE di miscela a 12 prove modello Kowalski, sto riscontrando difficoltà con l'ottimizzazione bayesiana (vedi allegato "OTTIMIZZAZIONE BAYESIANA"). Questa continua a fallire a causa di un modello Y2 molto inaffidabile. Perché Bayesian raccomanda la "Massima Desiderabilità" con questo modello Y2 così inaffidabile? Partendo da altri DOE di screening e di riempimento dello spazio, continuo a ottenere lo stesso modello Y2 inaffidabile.
Qual è il problema? Come risolverlo?
Progettazione degli esperimentiOggetto: Problema di ottimizzazione bayesianaCiao @frankderuyck ,
Pur non essendo direttamente correlato al tuo caso specifico, se riscontri difficoltà nell'adattare un modello di processo gaussiano ai tuoi dati utilizzando la piattaforma di ottimizzazione bayesiana, ti consiglio queste due opzioni:
- Esplori in modo più completo lo spazio di progettazione creando punti candidati utilizzando il criterio MaxPro . Questo criterio, indipendente dal modello, garantisce la massima distanza tra i punti esistenti e i nuovi punti candidati, consentendo di coprire lo spazio sperimentale in modo efficiente.
- È inoltre possibile modificare le impostazioni predefinite relative alla soglia RSquare di aumento basata sul modello (ad esempio, aumentando questa soglia da 0,25 (predefinito) a 0,7, si aumenterà la parte esplorativa) ed eventualmente regolare il tipo di correlazione (gaussiana, Mattern 3/2 e 5/2 o esponenziale) all'inizio del ciclo BO, nel caso in cui uno di questi tipi di correlazione sia più adatto al proprio caso d'uso. Mattern 5/2 è una buona scelta predefinita, ma quella gaussiana potrebbe fornire risultati leggermente migliori per Y2.
In ogni caso, il professionista dovrebbe mantenere il controllo della piattaforma e dei suoi risultati, scegliendo l'opzione più appropriata alla situazione (esplorazione/sfruttamento). Ho presentato un caso d'uso a un seminario francese sulla scoperta di modelli basati su oggetti (BO) in cui la modalità "automatica" (seguire ciecamente le raccomandazioni della piattaforma con le impostazioni predefinite) porta a risultati non ottimali. Non appena si impone l'esplorazione (a causa di un adattamento del modello inadeguato e inaffidabile) tramite l'aggiunta di alcuni punti di esplorazione, il modello acquisisce le relazioni tra input e output e lo sfruttamento può diventare molto più interessante.
Esaminando la formula di risposta, si può notare che sono molto diverse:
- Y1 ha un modello con effetti principali ed effetti di interazione, di dimensioni approssimativamente uguali (effetti principali leggermente più grandi),
- Y2 ha un modello con effetti principali e alcuni effetti di interazione di grandi dimensioni (X1*X3 e X2*X3)
- Y3 ha un modello con effetti principali di grande entità e alcuni effetti di interazione di piccola entità.
I formati delle formule di Y1 e Y3 sono "normali" e facili da adattare a un processo gaussiano.
Per Y2, gli effetti di interazione molto ampi rendono l'adattamento GP molto più complesso. Le equazioni del kernel coinvolgono la distanza tra i punti (vedi esempio con kernel gaussiano ) e il parametro di larghezza di banda (o anche chiamato scala di lunghezza). Questo parametro viene appreso dal GP per ogni fattore/dimensione e fornisce informazioni su come una variazione relativa in ciascun fattore influisce sulla risposta. Ma poiché le dimensioni sono disaccoppiate nei calcoli della distanza (distanza euclidea) e nell'apprendimento di questo parametro, il modello GP ha difficoltà a determinare un parametro di larghezza di banda/scala di lunghezza ragionevole per ciascun fattore coinvolto in una forte interazione, poiché non può valutare bene come ciascun fattore influisce indipendentemente sulla risposta.
In pratica, quando ci si trova di fronte a una situazione simile in cui sono possibili effetti di interazione molto ampi, un kernel additivo o polinomiale sarebbe più adatto, poiché il kernel additivo disaccoppia gli effetti di primo, secondo e terzo ordine, mentre un kernel polinomiale è impostato esplicitamente su un grado fisso (in questo caso 2 o 3).
Considerate le opzioni della piattaforma di ottimizzazione bayesiana JMP, consiglierei di forzare la piattaforma a generare più punti di esplorazione con il criterio MaxPro. Allego il mio test, in cui ho forzato 4 nuove iterazioni di esplorazione con il criterio MaxPro prima di lasciare che la piattaforma ottimizzasse con l'opzione "Massimizza il miglioramento atteso". L'ottimo trovato sembra essere più vicino ai vostri obiettivi rispetto a quello che ottenete.
Spero che questa risposta ti sia d'aiuto.
Oggetto: Problema di ottimizzazione bayesianaGrazie per la spiegazione dettagliata, Victor, tuttavia permangono dei problemi:
(1) il profiler Y2 mostra che il modello Y2 è ancora molto inaffidabile. (2) Importante (!): l'impostazione ottimale qui per Isomero = Isomero 2 che non corrisponde alla soluzione DOE - e corretta - che deve essere Isomero 1.
È difficile capire perché Bayesion stia avendo difficoltà in questo caso.
Oggetto: Problema di ottimizzazione bayesianaHo riscontrato valori di R2 vicini o superiori a 0,7 per Y2, quindi non direi che il modello sia molto inaffidabile.
L'ottimizzazione bayesiana non sempre fornisce l'ottimo globale (se esiste), ma una soluzione ottimale.
Poiché i progetti di miscelazione sono progetti di ottimizzazione e il tuo fattore isomerico categorico non ha un grande effetto rispetto ai fattori di miscelazione, potrebbero esserci altre soluzioni disponibili con isomeri diversi (e rapporti di miscelazione diversi). Ci potrebbero essere diverse spiegazioni per comprendere le differenze: diversi ottimi disponibili con prestazioni buone simili e/o il rumore aggiunto a Y2 potrebbe "nascondere" l'ottimo al modello GP. Potresti provare a rimuovere il rumore dalla formula di Y2 e vedere se l'ottimo è lo stesso, così come verificare con il modello del DoE quanto le soluzioni BO siano vicine all'ottimo che hai nel contesto del DoE.
Spero che questa risposta ti sia d'aiuto.
Oggetto: Problema di ottimizzazione bayesianaIl modello Profiler Y2 non sembra promettente; il modello DOE era eccellente.
frankderuyck_0-1786094852833.pngfrankderuyck_0-1786094852833.pngfrankderuyck_0-1786094852833.pngfrankderuyck_0-1786094852833.png
Oggetto: Problema di ottimizzazione bayesianaDopo ulteriori tentativi, l'approccio bayesiano fornisce costantemente la soluzione ottimale per l'Isomero 1, mentre il profiler Y2 rimane molto grigio.
La soluzione è abbastanza equivalente a quella che ho ottenuto, il mio Y2 R² era inferiore = 0,52.
Oggetto: Problema di ottimizzazione bayesianaIl profiler Y2 mi dice che ci si può aspettare -0,48 < Y2 < 1, corretto? Dovrei ignorare questo risultato e considerare solo R²?
Oggetto: Problema di ottimizzazione bayesianaEsaminando il tuo file BO, aprendo la piattaforma JMP BO, ho un R² = 0,7999 e un Profiler non così male per Y2:
Victor_G_0-1786175430051.pngVictor_G_0-1786175430051.pngVictor_G_0-1786175430051.pngVictor_G_0-1786175430051.png
Stessi risultati sul mio test del file BO: R² = 0,7321 e Profiler sembra a posto:
Victor_G_1-1786175585108.pngVictor_G_1-1786175585108.pngVictor_G_1-1786175585108.pngVictor_G_1-1786175585108.png
Quindi, quale Profiler o in quale fase stai mostrando il Profiler di previsione "errato"?
Potresti aggiungere alcune esecuzioni utilizzando Maximize Multivariate Model Std Dev (o Maximize Bayesian Desirability Std Dev se la dimensione del batch è maggiore di uno) per ridurre l'incertezza della previsione. Questo può essere d'aiuto, ma a causa di questo scenario estremo con effetti di interazione molto ampi, sarà difficile per il processo gaussiano competere con la regressione multivariata del DoE con effetti di interazione inclusi. Puoi dare un'occhiata a come ogni modello gestisce l'interazione tramite l'opzione "Interazioni sovrapposte"; vedrai che le tracce di interazione per il modello di regressione (DoE) sono molto più "diverse" di quelle del processo gaussiano, a causa della limitazione che ho spiegato nel mio primo post.
- Modello di regressione:
Victor_G_2-1786175872322.pngVictor_G_2-1786175872322.pngVictor_G_2-1786175872322.pngVictor_G_2-1786175872322.png
- Processo gaussiano:
Victor_G_3-1786175927453.pngVictor_G_3-1786175927453.pngVictor_G_3-1786175927453.pngVictor_G_3-1786175927453.png
Il processo gaussiano interpola il comportamento della risposta in base alla prossimità dei punti, mentre la regressione utilizza effetti specifici (effetti principali, effetti di interazione, ecc.) per descrivere il fenomeno. L'adattamento del modello e la "filosofia" sono diversi: nella regressione si assume un modello da verificare, mentre con il processo gaussiano si "costruisce il modello durante la sperimentazione".
Tieni presente che, anche se utilizzi la piattaforma Bayesian Optimization, se riscontri difficoltà nell'adattare il modello GP anche con l'aggiunta di punti di esplorazione, puoi esplorare ulteriori opzioni di modello utilizzando lo screening del modello con convalida incrociata K-fold della piattaforma e vedrai che i metodi di regressione compaiono in cima alle migliori opzioni di adattamento del modello (ecco i risultati utilizzando solo i primi punti di costruzione della tua tabella dati):
Victor_G_4-1786176393503.pngVictor_G_4-1786176393503.pngVictor_G_4-1786176393503.pngVictor_G_4-1786176393503.png
Spero che questa risposta possa comunque esserti d'aiuto.
Oggetto: Problema di ottimizzazione bayesianaStrano, quando clicco sull'ultimo test BO ottengo un risultato diverso per il profiler di previsione, ma i grafici sono gli stessi.
Sto usando JMP 18 Pro, è possibile che la versione 19 - presumo che tu stia usando l'ultima versione di JMP - sia diversa?
frankderuyck_0-1786349462076.pngfrankderuyck_0-1786349462076.pngfrankderuyck_0-1786349462076.pngfrankderuyck_0-1786349462076.png
Oggetto: Problema di ottimizzazione bayesianaOk, è strano, dovresti avere lo stesso profiler dato che il grafico "Valori effettivi rispetto a quelli previsti" sembra mostrare che il modello GP ha appreso i pattern nei tuoi dati.
Ottieni gli stessi risultati del Profiler quando visualizzi il pannello del modello solo per la risposta Y2 nella piattaforma JMP BO?
Hai provato a utilizzare la piattaforma "normale" di Gaussian Process per la modellazione per vedere se riscontri lo stesso problema?
Hai provato a riavviare la piattaforma direttamente dal menu (non dagli script salvati) e dagli script stessi? Ci sono differenze?
Infine, sei in grado di aggiornare a JMP 19?
Spero che tu possa risolvere il tuo problema con alcune di queste idee,
Oggetto: Problema di ottimizzazione bayesianaCiao Victor, ho provato i tuoi suggerimenti con il mio JMP 18 senza successo. In allegato trovi un confronto tra la modellazione di Scheffé e quella gaussiana per i risultati completi del DOE a 24 run: la modellazione gaussiana non è buona, mostrando una scarsa corrispondenza per Y1, risultati molto scarsi per Y2; Y3 è accettabile; con questi modelli gaussiani è impossibile trovare le impostazioni ottimali della miscela con il profiler, Desiderabilità = 0. Ottieni risultati migliori con JMP 19? Spero che si possa trovare una soluzione, mi piacerebbe molto usare l'ottimizzazione bayesiana ma il mio team sta diventando scettico.
Oggetto: Problema di ottimizzazione bayesianaI risultati della formula di previsione gaussiana sono pessimi e diversi dalle previsioni di Jackknife?
frankderuyck_0-1786435375218.pngfrankderuyck_0-1786435375218.pngfrankderuyck_0-1786435375218.pngfrankderuyck_0-1786435375218.png
Non c'è da stupirsi se la mia ottimizzazione bayesiana non funziona, i risultati sono molto incoerenti e instabili.
Oggetto: Problema di ottimizzazione bayesianaSe i risultati con JMP 19 sono soddisfacenti, cosa è cambiato?
Oggetto: Problema di ottimizzazione bayesianaHo utilizzato la piattaforma BO in JMP 19 con le impostazioni predefinite e i modelli per le diverse risposte sembrano validi:
Victor_G_0-1786477092346.pngVictor_G_0-1786477092346.pngVictor_G_0-1786477092346.pngVictor_G_0-1786477092346.png
Ho salvato nella tua tabella la formula di previsione e lo script della piattaforma di ottimizzazione bayesiana (modello di processo gaussiano) di JMP19.
Per quanto riguarda i modelli di processo gaussiano "base", ho ottenuto risultati simili per Y1, ma è possibile migliorare la modellazione selezionando l'opzione " Stima parametro nugget " all'avvio della piattaforma:
Victor_G_1-1786477388650.pngVictor_G_1-1786477388650.pngVictor_G_1-1786477388650.pngVictor_G_1-1786477388650.png
Poiché la risposta Y1 sembra essere un po' più rumorosa delle altre, l'utilizzo di questa opzione migliora la modellazione evitando il processo gaussiano per interpolare perfettamente i dati. I risultati del modello sono molto più interpretabili e simili al modello di regressione, anche se le previsioni del modello possono essere lontane dalle misurazioni:
Victor_G_2-1786477805428.pngVictor_G_2-1786477805428.pngVictor_G_2-1786477805428.pngVictor_G_2-1786477805428.png
Ho anche salvato lo script per rieseguire l'analisi e la formula di previsione nella tua tabella.
Infine, le formule di previsione del processo gaussiano e del metodo Jackknife sono diverse; per maggiori informazioni, consultare la guida di JMP relativa al grafico dei valori effettivi rispetto ai valori previsti . I valori previsti dal metodo Jackknife sono i valori Y previsti per la specifica riga X esclusa, mentre i valori previsti dal modello di processo gaussiano derivano dalla media di ciascun modello addestrato con convalida Leave-One-Out (metodo Jackknife).
Spero che questa risposta ti sia d'aiuto.
Oggetto: Problema di ottimizzazione bayesianaOK Victor, grazie, è chiaro che devo passare a JMP 19. Mi chiedo perché JMP 18 non funzioni e cosa sia cambiato. A proposito, quando aggiungo un altro batch BO la mia versione 18 dà un errore e quando lo ignoro la previsione Y2 è di nuovo completamente grigia e sfocata come prima.
frankderuyck_0-1786523679953.pngfrankderuyck_0-1786523679953.pngfrankderuyck_0-1786523679953.pngfrankderuyck_0-1786523679953.png
frankderuyck_1-1786523771369.pngfrankderuyck_1-1786523771369.pngfrankderuyck_1-1786523771369.pngfrankderuyck_1-1786523771369.png
Potresti eseguire questa ottimizzazione bayesiana a partire dal DOE iniziale allegato, basato su un modello di Kowalski a 12 iterazioni?
Oggetto: Problema di ottimizzazione bayesianaCiao @frankderuyck ,
Per curiosità, dove si trova l'ottimizzazione bayesiana in JMP 18? È stata introdotta solo in JMP 19: https://www.jmp.com/en/software/new-release/new-in-jmp
Migliore
Florian
Oggetto: Problema di ottimizzazione bayesianaScusate, mi sbagliavo, sto usando la versione 19.0.1
frankderuyck_0-1786550520590.pngfrankderuyck_0-1786550520590.pngfrankderuyck_0-1786550520590.pngfrankderuyck_0-1786550520590.png
Oggetto: Problema di ottimizzazione bayesianaPerché i miei risultati sono diversi da quelli di Victor?
Oggetto: Problema di ottimizzazione bayesianaBuongiorno @frankderuyck e @Victor_G ,
Posso confermare che alcuni dei miglioramenti introdotti nell'ultima versione risolvono il problema:
Prima di JMP 19.1.4:
Florian_Vogt_0-1786605432509.pngFlorian_Vogt_0-1786605432509.pngFlorian_Vogt_0-1786605432509.pngFlorian_Vogt_0-1786605432509.png
Con JMP 19.1.4 (ultima versione disponibile):
Florian_Vogt_1-1786605459011.pngFlorian_Vogt_1-1786605459011.pngFlorian_Vogt_1-1786605459011.pngFlorian_Vogt_1-1786605459011.png
L'aggiornamento all'ultima versione include miglioramenti alla piattaforma che offrono risultati migliori (come dimostrato da Victor).
Migliore
Florian
Oggetto: Problema di ottimizzazione bayesianaGrazie Florian, come si aggiorna all'ultima versione?
Oggetto: Problema di ottimizzazione bayesianaNella schermata che hai condiviso, clicca su "Verifica aggiornamenti" (testo blu a sinistra), si aprirà una finestra e troverai un link per scaricare la versione aggiornata.
Grazie per le informazioni @Florian_Vogt , le note di rilascio della versione 19.1.x non sono abbastanza dettagliate per capire se qualcosa è cambiato nell'algoritmo/nei calcoli della piattaforma BO: https://community.jmp.com/t5/JMP-Knowledge-Base/JMP-New-Features-and-Release-Notes/ta-p/575202
Oggetto: Problema di ottimizzazione bayesiana
Florian_Vogt_0-1786610753240.pngFlorian_Vogt_0-1786610753240.pngFlorian_Vogt_0-1786610753240.pngFlorian_Vogt_0-1786610753240.png
Oggetto: Problema di ottimizzazione bayesianaCari Victor e Florian, grazie mille per i vostri consigli, ho aggiornato alla versione più recente di JMP e finalmente ho ottenuto buoni risultati (cfr. allegato). L'unica cosa che non mi è chiara è perché dopo diversi batch, il motivo aggiunto sembra bloccarsi su "Massimo miglioramento atteso", non passa alla replicazione e quindi non sembra trovare l'ottimo, giusto? Tuttavia, quando ottimizzo l'ultimo batch, i risultati ottimali sono OK, cosa che non accade dopo il primo miglioramento massimo. La domanda è: dopo quanti miglioramenti massimi attesi si passa all'ottimizzazione, quando i modelli di regressione sono OK? Qual è l'indicatore più importante per Gaussian?
frankderuyck_0-1786694503916.pngfrankderuyck_0-1786694503916.pngfrankderuyck_0-1786694503916.pngfrankderuyck_0-1786694503916.png
Oggetto: Problema di ottimizzazione bayesianaCiao @frankderuyck ,
In realtà non è bloccato... hai un'attività di ottimizzazione con 3 risposte, in cui cerca di raggiungere 3 obiettivi. Poiché vede ancora un potenziale di miglioramento, continua a cercare di migliorare. Questo è indicato nel grafico di desiderabilità, poiché la desiderabilità raggiunta è ancora in miglioramento. Quando continui a richiedere esecuzioni, alla fine cerca di replicare il miglior risultato attuale.
Florian_Vogt_0-1787142341723.pngFlorian_Vogt_0-1787142341723.pngFlorian_Vogt_0-1787142341723.pngFlorian_Vogt_0-1787142341723.png
Stabilire quando fermarsi è difficile da generalizzare: in parole povere, puoi fermarti quando vuoi, ovvero quando ritieni di aver raggiunto i tuoi obiettivi. BayesOpt tenterà di ottimizzare e verificare i risultati ("Replica la migliore esecuzione di addestramento"), a seconda dei dati.
Spero che questo sia d'aiuto!
Florian
Oggetto: Problema di ottimizzazione bayesianaImmagino che le ultime righe non siano le impostazioni ottimali, quindi devo andare al riepilogo del modello e alla Desiderabilità Massima, giusto? Vedo che il profiler non ha un simulatore; quando salvo la formula di previsione e vado su >grafico >profiler non funziona, ottengo un foglio profiler vuoto? Come posso eseguire simulazioni e verificare la capacità con rumore casuale sulle impostazioni ottimizzate?
Oggetto: Problema di ottimizzazione bayesianaPartendo da un DOE Fast Flexible Space Filling a 10 run (cfr. allegato), ottengo risultati diversi rispetto allo start di Kowalski a 12 run e anche rispetto al modello di Scheffé a 24 run (cfr. primo post); le impostazioni ottimali per X1, X2 e X3 sono quasi identiche, ma lo Space Filling restituisce l'Isomero 2 come risultato invece dell'Isomero 1. Come per l'Isomero 2, gli start di Scheffé e Kowalski a 12 run producono valori di desiderabilità bassi. Immagino che partire da uno start di Space Filling a 10 run non sia corretto, forse sono troppo poche run? Esiste un criterio per un DOE iniziale accettabile per l'ottimizzazione bayesiana?
Oggetto: Problema di ottimizzazione bayesianaCredo che il problema sia che il DOE con riempimento dello spazio non produce una copertura bilanciata tra i 3 isomeri. Inoltre, osservando un grafico a dispersione per isomero, la copertura non sembra molto buona. Immagino che questo sia un punto importante da tenere presente quando si sceglie il riempimento dello spazio come metodo iniziale, nel caso in cui ci sia un effetto categoriale, giusto?