利用貝葉斯最佳化方法尋找混合模型的最優參數透過 24 次運行的混合 DOE,我找到了三元混合和一分類效應的非常好的模型和最佳設置,這在前面的討論中已經介紹過;附件中再次提供了分析結果,以及下面截圖顯示了期望結果。
frankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.png
使用異構體 2 時,期望值結果較差;低於鎖定異構體 2 時的設定。
frankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.png
從 9 次運行的候選空間填充集(請參閱附件「成功的 9 次運行」)或 12 次運行的 Kowalski 集開始,可以偵測到異構體 1 的最佳設定。
然而,即使經過多次額外的空間填充運行,從 6 次運行的空間填充候選集開始,我總是得到異構體 2 的較差最優設定!我哪裡做錯了?如何才能從這 6 次運行的候選集中獲得異構體 1 的最優設定?
回覆:利用貝葉斯優化尋找混合模型最優參數的問題嗨@frankderuyck ,
你是否按照先前的討論升級了JMP版本?
查看您最後一個文件,當僅使用 6 次初始空間填充運行從頭開始啟動 BayesOpt 平台時,模型似乎已經相當不錯了:
Victor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.png
因此,我沒有使用自動建議“複製最佳訓練運行”(我刪除了批次中的此運行),而是手動強制使用採集功能“ 最大多模型標準差”,並在當前批次中添加 1 次運行,因為由於模型預測的不確定性,區分異構體 1 和 2 很困難(您可以在 Profiler 上查看異構體類型之間的置信區間類型)。
當使用新添加的運行重新啟動平台時,效能分析器似乎更加可靠,預設運行建議是使用「 最大預期改進」擷取功能自動完成的,設定接近您的最佳設定:
Victor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.png
在新增此自動推薦的跑步路線後,平台推薦的下一個選項是複製此最佳訓練路線:
Victor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.png
鑑於你的兩個反應的複雜度相對較低,可以從 6 次運行的空間填充設計開始,並增加 3 次運行,從而獲得足夠的最優推薦。前提是,你要考慮在模型的學習及其行為的背景下,哪個採集函數是最相關的,並且你手動「強制執行」該選項。
附件是我使用您提供的 6 次運行範例處理後的運行情況。使用 JMP Pro 19.1.3 完成。
編輯:我在優化過程中漏掉了 Y 列。但是,即使不考慮它,我也可以獲得不錯的結果,因為它似乎與第 6 列第 2 列呈負相關。
在考慮 Y 和其他兩個第 6 列回應時,您可能需要額外執行一次最大多模型標準差(總共兩次,一次接一次),然後分析器才能顯示不同異構體類型的良好排序和行為:
Victor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.png Victor_G_0-1788778413164.png
在新增 2 次運行的最大多模型標準差後,您可以透過強制執行最大預期改進準則來開始最佳化。您應該會得到一個接近您之前成功嘗試所獲得的解決方案(請參閱檔案 Successful 6 Run Fast Flexible Filling Design starter 2)。
希望這個回答對您有幫助。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題嗨,Victor,是的,我已經升級到最新的JMP版本了。很遺憾,我無法重現你的結果;BO總是從空間填充開始;當從異構體2開始複製,並且我對期望值不滿意時,我會切換到Max Multimodel St dev,但仍然沒有成功。在先前關於BO的網路研討會中,建議切換到Max Max pro標準,但這也不起作用。附件是我的結果(有3個輸出Y123)。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題你怎麼知道在第一次 BO 運行中,需要使用 Max Multimodel St dev 而不是空間填充?
回覆:利用貝葉斯優化尋找混合模型最優參數的問題嗨@frankderuyck ,
我建議從頭開始建立場景,只保留最初 6 個填充空間的運行,並刪除其他所有運行。
請從頭開始使用預設設定重啟 BayesOpt 平台,並強制平台使用「最大多模型標準差」準則運行兩次。這兩次運行的結果應該相同,之後您可以強制使用「最大預期改進」準則進行最佳化,平台會建議一個與您使用實驗設計 (DoE) 得到的最優解接近的最優解(輸入參數與第二次「最大多模型標準差」運行相同)。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題我用 Max Multimodel St Dev 啟動時,無法重現你的結果。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題我忘了回答這部分評分標準:
- MaxPro 最大化準則是一種與模型無關/無模型的設計空間探索方法。它不考慮高斯過程模型的結果和學習,而只是基於最大化點間距離這一目標。其目標是在設計空間中「空白」區域添加點/實驗(最大化現有點與新推薦點之間的距離)。
- 「最大化多模型標準差」是基於模型的設計空間探索。它會考慮高斯過程模型的輸出和學習結果,並建議預測不確定性最高的區域內的點。
在您提供的 6 次運行方案中,模型在初期表現尚可:Y 的 R² 值最低,但也達到了 0.3566,說明模型已經捕捉到了一些資訊。 Y2 和 Y3 的 R² 值非常高,因此下一步可能並非繼續進行無模型探索,更明智的做法是利用模型的學習成果,嘗試降低其預測的不確定性。
希望這個回答對您有幫助。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題我不太清楚你具體做了什麼,但你似乎只用了一次以最大多模型標準差為準則的運行和一次以最大預期改進為準則的運行就找到了最優解?所以任務成功了?
就我而言,我需要運行 2 次最大多模型標準差和 1 次最大預期改進(與第二次最大多模型標準差的輸入相同)才能接近最佳解。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題預設 R² = 0.25?初始值不增加到 0.7?
回覆:利用貝葉斯優化尋找混合模型最優參數的問題這方面並沒有硬性規定。 JMP BayesOpt 開發團隊選擇 0.25 作為閾值,用於引導模型進入探索階段(R² < 0.25)或利用階段(R² > 0.25),但這只是他們基於自身工作和模擬經驗得出的一條規則,不應成為您唯一的依據。在某些特定情況下,這個閾值可能並不適用。
相反,應該查看模型、分析器和圖表,並找到能夠改進所收集資訊的最佳措施,例如:
- 強制執行無模型探索,以確保設計空間得到充分探索(Max Pro準則),
- 強制執行基於模型的探索,以利用初始模型並降低其預測不確定性(多模型標準差或貝葉斯期望標準差準則),
- 平衡探索與利用(置信上限準則),或
- 利用模型的預測結果,開始最佳化(最大預期改善或最大貝葉斯期望準則)。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題雙倍最大多模型標準差後仍未成功,異構體 1 的期望值較低,BO 又回到了異構體 2。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題Frank,請先只運行 6 個初始空間填充運行,表中不要有任何 BO 腳本(刪除腳本並刪除任何其他行)。
然後,使用預設設定啟動 BayesOpt 平台,移除所有自動批次推薦,並添加 1 次最大多模型標準差迭代,持續 2 次,您應該能夠使用異構體 1 獲得接近最優值的結果(與我的測試結果一致)。一旦連續兩次最大多模型標準差運行完成,您應該會看到異構體類型的正確排序:
Victor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.png
回覆:利用貝葉斯優化尋找混合模型最優參數的問題Victor,您好,我按照附件中的說明操作了,但無法復現您的結果。使用 6 個初始空間填充 RUS 建立的模型效果很差,所以我不太明白為什麼一開始要使用最大多模型標準差:從效果不佳的高斯過程模型中學習效果並不好?
回覆:利用貝葉斯優化尋找混合模型最優參數的問題你的結果中只有 2 個輸出;應該有三個才對。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題經過 6 次初始空間填充運行後,高斯 Y1 模型的性能非常差,因此需要進行額外的空間填充運行才能獲得可接受的模型性能;不幸的是,每次 BO 演算法都再次將異構體 2 檢測為最優解(?)
回覆:利用貝葉斯優化尋找混合模型最優參數的問題我從最初的10次運行空間填充實驗設計(DOE,請參閱附件)開始就遇到了同樣的問題,到底哪裡出了問題?我們在實驗室進行了驗證,正確的最優解是異構體1。異構體2的結果更差,而異構體3則完全無法接受。值得注意的是,從第9次運行開始,初始空間填充實驗設計的最適解很快就轉換到了正確的異構體1設定!
回覆:利用貝葉斯優化尋找混合模型最優參數的問題成功完成了 9 次空間填充實驗。奇怪的是,運行次數較少時結果卻正常。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題針對您提出的諸多問題,我在此作一些解答:
- 您可以復現結果,請查看您和我的檔案中第二次最大多模型標準差運行的輸入和回應值。如果在第二次運行後,您強制 BayesOpt 平台添加一次使用最大預期改進的運行(而不是自動建議的 MaxPro 空間填充運行準則),則第二次添加的運行將會重複,並且結果接近您預期使用異構體 1 得到的最佳結果。
- 我發送的文件中有三個輸出:Y、第 6 列第 1 列和第 6 列第 2 列。
- MaxPro 空間填充準則運行透過最大化現有設計點與新設計點之間的距離來強制探索設計空間,從而間接地改進模型。但其對模型的影響並不確定,取決於反應的複雜度。因此,我在 JMP 說明文件和我的回答中將此選項稱為「無模型」探索選項。另一方面,多模型標準差和貝葉斯期望標準差是基於模型的設計空間探索:它們利用模型及其預測不確定性,在不確定性最高的區域推薦實驗。
因此,為了獲得可接受的模型性能,兩者都需要:- 空間填充運作是為了確保設計空間得到良好的覆蓋,並確保模型能夠概括學習到的行為,並且這種行為能夠代表設計空間中的真實現象。
- 貝葉斯/多模型標準差運行,以確保降低預測不確定性,達到可接受的精度水準。
請參閱我之前的解釋( 鏈接在此) 。
仔細考慮所有不同的方案需要花費大量時間。你需要記住的是:
- 貝葉斯最佳化的目標是達到你的目標:一旦達到可接受的結果(基於你的條件),循環就會收斂到這個結果,無論最優解是全域最優還是局部最優。因此,根據你的目標規範的「嚴格程度」(以及響應面的複雜程度),可能會出現過早收斂,也可能不會。
- 在 BayesOpt 平台中,探索/利用部分預設根據 R² 閾值(預設值為 0.25)自動設定:如果模型 R² 低於閾值,則建議使用 MaxPro 空間填充演算法;如果高於閾值,則首先使用最大預期改進準則進行利用。其他選項需要手動設定。
- 我強烈建議您花時間仔細查看和研究您的模型;BayesOpt 可能看起來像一個自動實驗循環,並提供了良好的預設實驗建議,但您可以透過強制執行模型所需的特定運行來獲得更好的結果。
- 不同的場景和不同次數的空間填充運行會提供不同數量和精確度的資訊。初始運行次數越少,任務難度越大,因此您需要投入更多的信息和精力來構建模型,通過提供足夠的運行次數和正確的信息,例如使用 MaxPro 空間填充運行探索設計空間,或使用貝葉斯/多模型標準差運行來改進模型的不確定性。採集函數的選擇、平行或串列運行的次數等策略都應根據您已有的資訊、模型的精確度和學習情況來決定。
希望這個回答能幫助你理解你得到的不同結果。請仔細閱讀我之前發送的文件,你已經能夠重現我的結果,你只需要使用 Profiler 和專用採集功能強制執行相同的運行(不要讓自動選擇功能運行,否則會導致最後一次運行使用 MaxPro 空間填充)。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題嗨,Victor,在你上面成功的 6 次運行結果中,我只看到了兩個輸出,分別是第 6.1 列和第 6.2 列(見下文)。還有第三個輸出 Y,但我沒看到。
frankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.png
包括 YI 在內的所有測試都無法檢測到正確的最佳設置,即使運行了 10 次也一樣,請參見附件(我將 3 個輸出重新編碼為 Y1、Y2 和 Y3)。
我做錯了什麼?弄清楚這一點對我們來說很重要。
前9次運行都完美無缺,為什麼?
回覆:利用貝葉斯優化尋找混合模型最優參數的問題「空間填充運行是為了確保設計空間的良好覆蓋--> 我使用了快速靈活的空間填充方法,可以嗎?是否需要評估初始的實驗設計(DOE)?我看到一些網絡研討會,其中提到僅使用非常有限的初始運行次數,有時甚至僅使用單次試驗(OFAT);我猜這種方法只適用於模型簡單且數據噪聲不太大的情況,對嗎?
確保模型能夠泛化學習到的行為,並且這種行為能夠代表設計空間中的真實現象」 -- > 在我的範例中,模型的 R² > 0.8,還有其他標準嗎?
回覆:利用貝葉斯優化尋找混合模型最優參數的問題嗨@frankderuyck ,
@frankderuyck寫道:
嗨,Victor,在你上面成功的 6 次運行結果中,我只看到了兩個輸出,分別是第 6.1 列和第 6.2 列(見下文)。還有第三個輸出 Y,但我沒看到。
我在第一篇文章中已經提到我忘記新增 Y 列,但由於 Y 列似乎與第 6 列第 2 列呈負相關,BayesOpt 平台仍然能夠優化所有 3 個回應變數。因此,即使最終只用 2 個回應變數而不是 3 個進行最佳化,我也找到了一個與您提供的最優解非常接近的最優解。我進行的其他測試都是使用全部 3 個反應變數進行的。
@frankderuyck寫道:
包括 YI 在內的所有測試都無法檢測到正確的最佳設置,即使運行了 10 次也一樣,請參見附件(我將 3 個輸出重新編碼為 Y1、Y2 和 Y3)。
我做錯了什麼?弄清楚這一點對我們來說很重要。
前9次運行都完美無缺,為什麼?
抱歉,我不會重複我之前的帖子,您可以在我之前的回答中找到所有關於如何從 6 或 9 次空間填充運行開始成功進行優化的信息,關於模型的診斷、採集函數的選擇等等……我實在無法評估您提供的所有場景。
@frankderuyck寫道:
「空間填充運行是為了確保設計空間的良好覆蓋--> 我使用了快速靈活的空間填充方法,可以嗎?是否需要評估初始的實驗設計(DOE)?我看到一些網絡研討會,其中提到僅使用非常有限的初始運行次數,有時甚至僅使用單次試驗(OFAT);我猜這種方法只適用於模型簡單且數據噪聲不太大的情況,對嗎?
是的,從空間填充的快速靈活設計入手通常是個好主意,因為這種設計類型能夠處理多種限制和因素類型,所以是個不錯的選擇。關於運行次數與資訊量和精確度(取決於響應面的複雜度)相關的問題,請參閱我先前的評論。
@frankderuyck寫道:確保模型能夠泛化學習到的行為,並且這種行為能夠代表設計空間中的真實現象」 -- > 在我的範例中,模型的 R² > 0.8,還有其他標準嗎?
R² 是模型的一個評價指標,但還有很多其他指標。我建議先進行圖形分析,查看實際值與預測值的比較圖,因為這類圖能提供更多資訊。你可以檢查模型是否掌握了整體趨勢,模型的誤差是局部的(在高反應值或低反應值處)還是全域性的等等。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題請您將BO測試結果和三份回覆一起寄給我好嗎?謝謝。
回覆:利用貝葉斯優化尋找混合模型最優參數的問題請查看我的第一個回答!我附上了兩個文件,一個文件是針對兩個回應變數進行最佳化的(但也適用於三個回應變數),另一個檔案是針對三個回應變數進行最佳化的: https://community.jmp.com/t5/Discussions/Problem-to-find-optimal-settings-for-a-mixture-with-Bayesian/mp/96938