black-box優化——第一篇:基礎BBO算法

本篇博客先介紹一些 naive 的方法來解決 BBO 問題,這樣可以讓大家瞭解到爲什麼DFO在實際中,如此受到歡迎。

兩個縮寫:
derivative free optimization (DFO) :無導數優化
black-box optimization (BBO) :黑箱優化
兩者的兩點區別:
(1)對於某些優化問題,可能存在導數,但獲取或估計導數在計算上可能會很難。此類問題最好通過DFO解決,而不是BBO解決;
(2)BBO還包括研究用於解決問題的啓發式方法或特用的方法;

1. ES算法(Exhaustive Search)

優化問題:
min{f(x),xΩ} \begin{aligned} min\{f(x),x\in \Omega\} \end{aligned}
即:優化目標是f(x)f(x),約束條件是xΩx\in\OmegaSS是閉集Ω\Omega的可數緊集,則ES算法求解最優解的算法流程爲:

看完流程可知,上述算法的實質就是“遍歷”。。。。。

遍歷所有解尋找最大的那個,因此,叫做 Exhaustive Search,而此時的優化求解的確沒有用到導數,滿足了DFO的要求。文中假設ES算法可以無休止地運行下去,故該算法的收斂性可得到證明,這裏只給出收斂性成立的定理,不給出證明步驟,定理如下:

順便提一句,在RnR^n中尋找一個可數的集合SS,那集合SS的規模可不小,準確地說是無窮個元素(因爲他有可數個元素),也由此可知是沒有辦法在有限次疊代後終止ES算法的,因此ES算法不具備實用性,只存在於理論中。

2. GS算法( Grid Search)

上一節的ES算法對Ω\Omega沒有要求,但當Ω\Omega是有界的集合時,則可使用本節的GE算法。

該算法的算法流程是:

看完流程可知,上述算法的實質就是“抽樣”的思想,即:等距切分集合Ω\Omegapp份後,再遍歷。。。。。。

這樣一來相比ES而言,至少是可行的,不再只是理論上可行而實際上無法求解的了,但是GS算法仍然需要龐大的計算搜索工作,實際中雖然可行,但是難以採用。最後,GS算法的收斂性證明及收斂性定理都省略,可參考原書。

3. CS算法(Coordinate Search)

CS算法是GS的改進,該算法的思想略有類似於梯度下降,其算法流程如下:

如果提供了約束集ΩΩ,則只要違反該約束,就可以通過將目標函數值設置爲++\infty再應用CS算法即可。

下圖爲CS算法再二維平面搜索過程的疊代實例,初始點爲(2,2),初始步長爲1,搜索方向爲四個方向。第一次疊代搜索成功,尋找並得到了比當前值小的一組解。第二次疊代搜索失敗,因此,步長減半,繼續搜索。

對於n維問題,算法的每次迭代都精確地探索2n個方向。但是疊代需要有一個判定迭代終止的條件,這裏的條件可以是步長小於某數值,或者疊代超過N次,或運行到明天早上8點停止等等。

說明:
(1)CS算法得到的是局部最優解,GS算法得到的是全局最優解;
(2)CS算法的收斂性問題:

(3)(待確定?) 根據上述收斂性可知,若目標函數是不可微函數或f(x;d)0f(x;d)\geq0時(尤其是是凸函數時,則任意點處都0\geq0),此時CS算法可能會失敗;

4. CS算法初始點的選取

可採用“拉丁超立方抽樣(Latin hypercube sampling,LHS)”的方式,選取多組初始點。在統計抽樣中,拉丁方陣是指每行、每列僅包含一個樣本的方陣。拉丁超立方則是拉丁方陣在多維中的推廣,每個與軸垂直的超平面最多含有一個樣本。假設有N個變量(維度),可以將每個變量分爲M個概率相同的區間。此時,可以選取M個滿足拉丁超立方條件的樣本點。需要注意的是,拉丁超立方抽樣要求每個變量的分區數量M相同。不過,該方法並不要求當變量增加時樣本數M同樣增加。

LHS算法流程如下:

抽取案例如下圖:

LHS的方式可以作爲許多算法選取初始點的方案。

5. 求解BBO問題的高水平算法

下表列出了後文待介紹的的高水平BBO算法:

(遺傳算法等啓發式類型的,我們不予介紹了)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章