是否有可以優化具有黑盒約束的黑盒功能的算法和工具?
假設我們有一個目標函數 $ f $ 有作為參數 $ x_1, x_2 $ .
$ f $ 是針對給定問題最大化的目標函數。可以說:
$$ f(x_1,x_2)=x_1+x_2+E(x_1,x_2) $$
在哪裡 $ E $ 是一個神經網絡模型。因此 $ E $ 不表示為明確的數學關係。
我們還假設問題有一個約束:
$$ G(x_1, x_2) < C $$
在哪裡 $ C $ 是一個常數並且 $ G $ 至於 $ E $ 使用神經網絡建模。
我的問題如下:
- 假設我們不知道如何優化這個問題是否有可能 $ F $ 和 $ G $ 執行結果?
- 有什麼工具可以解決各種問題嗎?
對於黑盒優化,目前大多數最先進的方法都使用某種形式的代理建模,也稱為基於模型的優化。這是通過一些參數模型(例如線性/二次響應面或高斯過程回歸)局部逼近目標函數的地方。在僅使用參數模型導數的意義上,這種方法是“無導數優化”(DFO),而不是黑盒函數的有限差分。請注意,與有限差分相比,局部模型通常適合“大”鄰域。
最近的論文對無約束(和框約束)DFO 方法的當前技術狀態進行了很好的比較
Rios, LM, & Sahinidis, NV (2013)無導數優化:算法回顧和軟件實現比較。全球優化雜誌。
本研究對用於全局和局部優化的各種 DFO 方法進行了基準測試。(有關進一步討論,請參閱我的回答,包括對問題大小的限制。)
對於約束優化,工作量較少,但至少多項式響應面 DFO 方法存在一些推廣。這些方法往往被表述為順序線性規劃或順序二次規劃(SQP) 算法,取決於多項式逼近的程度。請注意,由於條件不佳,通常不使用三次或更高階多項式。
我沒有使用過這些程序,但一些可能的建議可能是:
- 線性案例:MJD Powell的COBYLA算法。
- 二次案例: CONDOR(基於 Powell 的無約束 SQP 算法)
我使用 Powell 的框約束 SQP 求解器 ( BOBYQA ) 取得了很好的效果,並且他的軟件/算法在我的經驗中非常可靠,因為它們經過多年的實際工業應用的磨練。因此我的建議。(他的二次 DFO 變體在上面引用的基準研究中也排名很好。)
正如Ami Tavory的回答(已刪除)所建議的那樣,懲罰方法是許多約束優化問題的可行替代方案。如果你走這條路,我不推薦使用Nelder-Mead。正如Rios & Sahinidis研究中所述,存在許多更好的替代方案。