問題貝葉斯優化在早期的研發研究中,我成功地使用了一個 4 因素混合 DOE(3 個混合因素和一個 3 級分類「異構體」效應)來找到具有三個質量屬性 Y1、Y2 和 Y3 的化學配方的最佳設定。
我在一門美國能源部 (DOE) 課程中使用該案例,並使用模擬公式計算響應值 Y123。獲得了良好的模型,優化過程也很簡單順利,請參閱附件中的“DOE 化學配方分析混合物”。
我從一個包含 12 個運行的 Kowalski 混合模型 DOE 開始,在進行貝葉斯優化時遇到了困難(請參閱附件「貝葉斯優化」)。它一直失敗,原因是 Y2 模型非常不可靠。為什麼貝葉斯方法在 Y2 模型如此不可靠的情況下仍然建議「最大期望值」?從其他篩選和空間填充 DOE 開始,我仍然得到同樣的不可靠 Y2 模型。
問題是什麼?如何解決?
實驗設計回覆:貝葉斯優化問題嗨@frankderuyck ,
雖然與您的特定用例無關,但如果您在使用貝葉斯優化平台根據資料擬合高斯過程模型時遇到問題,我建議您考慮以下兩種方法:
- 使用MaxPro 準則建立候選點,強制探索設計空間。此與模型無關的準則可確保先前存在的點與新的候選點之間的距離最大,從而能夠有效地覆蓋實驗空間。
- 您還可以變更基於模型增強的 R 平方閾值的預設值(例如,如果您將此閾值從 0.25(預設值)增加到 0.7,則會增加探索部分),並且可能還需要在 BO 循環開始時調整相關性類型(高斯、Mattern 3/2 和 5/2 或指數),以防其中某種相關性類型更適合您的用例類型。 Mattern 5/2 是一個不錯的預設選擇,但高斯相關性可能在 Y2 上提供略好的結果。
在任何情況下,實踐者都應掌控平台及其結果,並選擇最符合實際情況的選項(探索/利用)。我曾在法國的商業智慧探索研討會上展示過一個用例,其中「自動」模式(盲目地遵循平台預設的建議)會導致次優結果。一旦透過添加一些探索點來強制執行探索(因為模型擬合不足且不可靠),模型就能理解輸入和輸出之間的關係,從而使利用變得更有意義。
查看你的回應公式,可以看出它們之間存在很大差異:
- Y1 模型包含主效果與交互作用效應,二者大小大致相同(主效果略大)。
- Y2 模型包含主效應和一些較大的交互效應(X1*X3 和 X2*X3)。
- Y3 模型具有較大的主效果和一些較小的交互效應。
Y1 和 Y3 的公式格式是“正常的”,很容易用高斯過程進行擬合。
對於 Y2,由於交互作用效應非常大,高斯過程 (GP) 的擬合變得更加複雜。核方程式涉及點之間的距離(請參閱高斯核範例)和頻寬(也稱為長度尺度)參數。 GP 會針對每個因子/維度學習該參數,並以此來描述每個因子的相對變化如何影響聲音。但是,由於在距離計算(歐氏距離)和該參數的學習過程中,各個維度是解耦的,因此 GP 模型很難為強交互作用中的每個因子找到合理的頻寬/長度尺度參數,因為它無法很好地評估每個因子如何獨立地影響響應。
在實踐中,當面臨類似的可能存在非常大的交互作用的情況時,加性核或多項式核會更合適,因為加性核可以解耦 1 階、2 階、3 階…效應,而多項式核則明確地設定為固定階數(在本例中為 2 或 3)。
鑑於 JMP 貝葉斯優化平台的選項,我建議強制平台使用 MaxPro 準則產生更多探索點。附件是我的測試結果,在平台使用「最大化預期改進」選項進行最佳化之前,強制平台使用 MaxPro 準則進行了 4 次新的探索運行。找到的最優解似乎比您目前得到的最優解更接近您的目標。
希望這個回答對您有幫助。
回覆:貝葉斯優化問題感謝Victor的詳細解釋,但是仍然存在一些問題:
(1)Y2 分析器顯示 Y2 模型仍然非常不可靠。 (2)重要提示:此處異構體的最佳設定是異構體 2,這與 DOE 的正確解(異構體 1)不符。
很難理解為什麼貝葉斯在這裡會遇到困難…
回覆:貝葉斯優化問題我看到 Y2 的 R2 值接近或高於 0.7,所以我認為這個模型並非非常不可靠?
貝葉斯最佳化不一定能提供全域最優解(如果存在),但可以提供最優解。
由於混合設計屬於最佳化設計,且您的分類異構體因子相對於混合因子影響不大,因此可能存在其他使用不同異構體(以及不同混合比例)的解。造成差異的原因可能有多種:存在多個性能相近的最優解,和/或添加到 Y2 中的噪聲可能「隱藏」了 GP 模型的最優解。您可以嘗試從 Y2 公式中移除噪聲,看看最優解是否相同,並結合 DoE 模型檢查 BO 解與 DoE 中最優解的接近程度。
希望這個回答對您有幫助。
回覆:貝葉斯優化問題Profiler Y2 的表現不佳;DOE 模型則非常出色。
frankderuyck_0-1786094852833.pngfrankderuyck_0-1786094852833.pngfrankderuyck_0-1786094852833.pngfrankderuyck_0-1786094852833.png
回覆:貝葉斯優化問題經過幾次額外的運行,貝葉斯方法始終能得出最優異構體 1 解決方案,而 Y2 分析器仍然非常灰暗。
解決方案與我得到的結果非常相似,我的 Y2 R² 更低 = 0.52。
回覆:貝葉斯優化問題Y2 分析器告訴我,預期範圍是 -0.48 < Y2 < 1,對嗎?是否應該忽略這個結果,只專注於 R²?
回覆:貝葉斯優化問題查看您的 BO 文件,打開 JMP BO 平台後,我發現 R² = 0.7999,第二年的 Profiler 結果還不錯:
Victor_G_0-1786175430051.pngVictor_G_0-1786175430051.pngVictor_G_0-1786175430051.pngVictor_G_0-1786175430051.png
我的 BO 檔案測試結果相同:R² = 0.7321,Profiler 看起來沒問題:
Victor_G_1-1786175585108.pngVictor_G_1-1786175585108.pngVictor_G_1-1786175585108.pngVictor_G_1-1786175585108.png
那麼,您展示的是哪個分析器或哪個步驟中的「錯誤」預測分析器結果?
您可以使用「最大化多元模型標準差」(如果批次大小大於 1,則使用「最大化貝葉斯期望值標準差」)來增加一些運行次數,以降低預測的不確定性。這會有所幫助,但由於這種極端情況(交互效應非常大),高斯過程很難與包含交互效應的 DoE 多元迴歸模型相提並論。您可以透過「疊加互動」選項查看每個模型如何處理交互效應;您會發現,由於我在第一篇文章中解釋的限制,(DoE)回歸模型的交互效應軌跡比高斯過程的軌跡「更加多樣化」。
- 迴歸模型:
Victor_G_2-1786175872322.pngVictor_G_2-1786175872322.pngVictor_G_2-1786175872322.pngVictor_G_2-1786175872322.png
- 高斯過程:
Victor_G_3-1786175927453.pngVictor_G_3-1786175927453.pngVictor_G_3-1786175927453.pngVictor_G_3-1786175927453.png
高斯過程根據資料點的鄰近程度對反應變數的行為進行內插,而迴歸分析則使用特定的效應(主效應、交互效應等)來描述現象。模型擬合和「理念」也不同:迴歸分析假設存在一個待驗證的模型,而高斯過程則是在實驗過程中「建立模型」。
請注意,即使您使用的是貝葉斯優化平台,如果您在添加探索點後仍然難以擬合高斯過程模型,您可以使用該平台的模型篩選功能(K折交叉驗證)來探索更多模型選項,您會發現回歸方法出現在最佳模型擬合選項的頂部(以下結果僅使用數據表中的第一個構建點):
Victor_G_4-1786176393503.pngVictor_G_4-1786176393503.pngVictor_G_4-1786176393503.pngVictor_G_4-1786176393503.png
希望這個回答對您有幫助。
回覆:貝葉斯優化問題奇怪,當我點擊上次 BO 測試時,預測分析器得到了不同的結果,但圖表是一樣的。
我使用的是 JMP 18 Pro,會不會是 19 版本(我猜你用的是最新的 JMP 版本)有所不同?
frankderuyck_0-1786349462076.pngfrankderuyck_0-1786349462076.pngfrankderuyck_0-1786349462076.pngfrankderuyck_0-1786349462076.png
回覆:貝葉斯優化問題好吧,這很奇怪,你應該有相同的分析器,因為「實際值與預測值」圖表似乎表明 GP 模型已經學習了你數據中的模式。
當您僅在 JMP BO 平台中查看 Y2 響應的模型面板時,是否也得到了相同的分析結果?
您是否嘗試過使用「普通」高斯過程平台進行建模,看看是否會出現相同的問題?
您是否嘗試過直接從選單(而不是從已儲存的腳本)和腳本重新執行平台?結果有何不同?
最後,您能否升級到 JMP 19?
希望這些建議能幫助你解決問題。
回覆:貝葉斯優化問題Victor,您好。我嘗試了您提出的方案,但在我的 JMP 18 中沒有成功。附件中是針對全部 24 次 DOE 實驗結果的 Scheffé 模型和高斯模型對比:高斯模型效果不佳,Y1 擬合度不足,Y2 的結果非常差;Y3 的結果尚可接受;使用這些高斯模型,無法透過分析器找到最佳混合比例,期望值等於 0。您在 JMP 19 中是否獲得了更好的結果?希望能夠找到解決方案,我非常想使用貝葉斯優化,但我的團隊對此持懷疑態度。
回覆:貝葉斯優化問題高斯預測公式的結果非常糟糕,與刀切法預測的結果截然不同?
frankderuyck_0-1786435375218.pngfrankderuyck_0-1786435375218.pngfrankderuyck_0-1786435375218.pngfrankderuyck_0-1786435375218.png
難怪我的貝葉斯優化演算法不起作用,結果非常不穩定且不一致。
回覆:貝葉斯優化問題如果 JMP 19 的結果沒問題,那麼是什麼改變了?
回覆:貝葉斯優化問題我使用 JMP 19 中的 BO 平台,採用預設設置,不同響應的模型看起來都不錯:
Victor_G_0-1786477092346.pngVictor_G_0-1786477092346.pngVictor_G_0-1786477092346.pngVictor_G_0-1786477092346.png
我已經將 JMP19 中貝葉斯最佳化平台(高斯過程模型)的預測公式和腳本儲存到您的表格中。
關於「基本」高斯過程模型,我對 Y1 也得到了類似的結果,但您可以透過在啟動平台時選取「 估計區塊金參數」選項來改進建模:
Victor_G_1-1786477388650.pngVictor_G_1-1786477388650.pngVictor_G_1-1786477388650.pngVictor_G_1-1786477388650.png
由於反應變數 Y1 的雜訊似乎比其他變數略大,因此使用此選項可以避免使用高斯過程對資料進行完美插值,從而改善建模。即使模型的預測值可能與測量值相差甚遠,但模型的結果仍然更易於解釋,並且與迴歸模型更為相似。
Victor_G_2-1786477805428.pngVictor_G_2-1786477805428.pngVictor_G_2-1786477805428.pngVictor_G_2-1786477805428.png
我還保存了腳本,以便重新運行您表格中的分析和預測公式。
最後,高斯過程預測公式和刀切法預測公式是不同的,您可以參考 JMP 幫助文件中的「實際值與預測值比較圖」部分。刀切法預測值是排除特定 X 行後所得到的 Y 值預測值,而高斯過程模型預測值則是透過使用留一法(刀切法)訓練的每個模型進行平均得到的。
希望這個回答對您有幫助。
回覆:貝葉斯優化問題好的,Victor,謝謝。看來我需要切換到 JMP 19 了。我想知道為什麼 JMP 18 不能用,以及到底發生了什麼變化?另外,當我添加另一個 BO 批次時,我的 18 版本會報錯,如果我忽略這個錯誤,第二年的預測結果又像以前一樣完全變成模糊的灰色了。
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
您能否根據所附的初始 DOE,基於 12 次運行的 Kowalski 模型進行貝葉斯優化?
回覆:貝葉斯優化問題你好@frankderuyck ,
出於好奇,請問在 JMP 18 中哪裡可以找到貝葉斯優化功能?這個功能好像是 JMP 19 才引進的: https://www.jmp.com/en/software/new-release/new-in-jmp
最好的
佛洛里安
回覆:貝葉斯優化問題抱歉,我弄錯了,我使用的是 19.0.1 版本。
frankderuyck_0-1786550520590.pngfrankderuyck_0-1786550520590.pngfrankderuyck_0-1786550520590.pngfrankderuyck_0-1786550520590.png
回覆:貝葉斯優化問題為什麼我的結果和維克託的結果不一樣?
回覆:貝葉斯優化問題早安@frankderuyck和@Victor_G ,
我可以確認,最新版本中的一些改進解決了這個問題:
JMP 19.1.4 之前的版本:
Florian_Vogt_0-1786605432509.pngFlorian_Vogt_0-1786605432509.pngFlorian_Vogt_0-1786605432509.pngFlorian_Vogt_0-1786605432509.png
使用 JMP 19.1.4(目前最新版本):
Florian_Vogt_1-1786605459011.pngFlorian_Vogt_1-1786605459011.pngFlorian_Vogt_1-1786605459011.pngFlorian_Vogt_1-1786605459011.png
更新到最新版本後,平台得到了改進,從而獲得了更好的結果(正如 Victor 所展示的那樣)。
最好的
佛洛里安
回覆:貝葉斯優化問題謝謝Florian,請問如何升級到最新版本?
回覆:貝葉斯優化問題在你分享的這個畫面上,點擊「檢查更新」(左側的藍色文字),會彈出一個窗口,你會得到一個連結來下載更新版本。
感謝@Florian_Vogt提供的資訊。關於 19.1.x 版本的發布說明不夠詳細,無法看出 BO 平台的演算法/計算方式是否有改變: https://community.jmp.com/t5/JMP-Knowledge-Base/JMP-New-Features-and-Release-Notes/ta-p/575202
回覆:貝葉斯優化問題
Florian_Vogt_0-1786610753240.pngFlorian_Vogt_0-1786610753240.pngFlorian_Vogt_0-1786610753240.pngFlorian_Vogt_0-1786610753240.png
回覆:貝葉斯優化問題親愛的 Victor 和 Florian,非常感謝你們的建議。我已經升級到最新的 JMP 版本,最終得到了不錯的結果(請參閱附件)。唯一不明白的是,為什麼在處理了幾批資料後,添加原因的步驟似乎卡在了「最大預期改進」階段,沒有切換到重複迭代,所以看起來好像找不到最優解,是這樣嗎?然而,當我優化最後一批數據時,結果卻很好,但在第一次達到最大預期改進後就出現了這種情況。問題是,在達到多少次最大預期改善後,迴歸模型才能達到最佳狀態?對於高斯分佈來說,最重要的指標是什麼?
frankderuyck_0-1786694503916.pngfrankderuyck_0-1786694503916.pngfrankderuyck_0-1786694503916.pngfrankderuyck_0-1786694503916.png
回覆:貝葉斯優化問題嗨@frankderuyck ,
它其實並沒有卡住……你有一個包含三個回應的最佳化任務,它試圖實現三個目標。由於它仍然看到改進的潛力,所以會繼續嘗試改進。這在期望值運行圖中有所體現,因為已實現的期望值仍在提高。當你持續請求運行時,它最終會嘗試複製當前的最佳結果。
Florian_Vogt_0-1787142341723.pngFlorian_Vogt_0-1787142341723.pngFlorian_Vogt_0-1787142341723.pngFlorian_Vogt_0-1787142341723.png
何時停止訓練很難一概而論——簡單來說,你可以隨時停止,也就是當你覺得目標已經達成時。 BayesOpt 會根據資料嘗試優化並驗證結果(「複製最佳訓練運行」)。
希望這能幫到你!
佛洛里安
回覆:貝葉斯優化問題我猜最後幾行的設定並非最優,因此我需要查看模型摘要和最大期望值,對嗎?我發現性能分析器沒有模擬器;當我保存預測公式並轉到“圖表”>“性能分析器”時,它無法正常工作,我只能看到一個空白的性能分析器工作表。如何在最佳化設定下進行模擬並檢查其在隨機雜訊下的性能?
回覆:貝葉斯優化問題從 10 次運行的快速靈活空間填充 DOE(參見附件)開始,我得到了與 12 次運行的 Kowalski 起始模型以及 24 次運行的 Sheffé 模型(參見第一篇帖子)不同的結果;X1、X2 和 X3 的最優設置幾乎相同,但空間填充模型的結果卻是異構體 2 而不是異構體 21。與異構體 2 一樣,Scheffé 模型和 12 次運行的 Kowalski 起始模型得到的期望值都很差。我猜想從 10 次運行的空間填充模型開始是不合適的,運行次數太少了?貝葉斯優化是否有可接受的起始 DOE 的標準?
回覆:貝葉斯優化問題我認為問題在於空間填充實驗設計無法在三種異構體之間實現均衡覆蓋。此外,觀察每種異構體的散佈圖,覆蓋率看起來也不太理想。我想,如果存在分類效應,那麼在選擇空間填充實驗作為初始實驗時,這一點需要特別注意,對嗎?