一蹦渣、簡介
https://zhuanlan.zhihu.com/p/53826787
貝葉斯優(yōu)化用于機器學習調(diào)參由J. Snoek(2012)提出活喊,主要思想是,給定優(yōu)化的目標函數(shù)(廣義的函數(shù)覆山,只需指定輸入和輸出即可髓迎,無需知道內(nèi)部結(jié)構(gòu)以及數(shù)學性質(zhì))粥庄,通過不斷地添加樣本點來更新目標函數(shù)的后驗分布(高斯過程,直到后驗分布基本貼合于真實分布薯酝。簡單的說,就是考慮了上一次參數(shù)的信息**母截,從而更好的調(diào)整當前的參數(shù)到忽。
他與常規(guī)的網(wǎng)格搜索或者隨機搜索的區(qū)別是:
- 貝葉斯調(diào)參采用高斯過程,考慮之前的參數(shù)信息微酬,不斷地更新先驗绘趋;網(wǎng)格搜索未考慮之前的參數(shù)信息
- 貝葉斯調(diào)參迭代次數(shù)少,速度快颗管;網(wǎng)格搜索速度慢,參數(shù)多時易導致維度爆炸
- 貝葉斯調(diào)參針對非凸問題依然穩(wěn)较菡凇;網(wǎng)格搜索針對非凸問題易得到局部最優(yōu)
(一)垦江、當前主流的超參數(shù)優(yōu)化算法
1帽馋、暴力型
- 網(wǎng)格搜索
顧名思義,每個超參數(shù)用規(guī)則得到幾個枚舉點比吭,然后交叉組合得到一堆解绽族,挨個枚舉選出結(jié)果最好的超參數(shù)。 - 隨機搜索
顧名思義衩藤,就是隨機生成一堆解吧慢,然后挨個嘗試,選出結(jié)果最好的作為最優(yōu)解赏表。
2检诗、擬合型
a中方法很暴力,在大多數(shù)情況下也是比較實用的瓢剿,但該類方法多次嘗試之間是獨立的逢慌,因而往往需要大量嘗試才能獲得非常優(yōu)的解。
有研究者針對此進行優(yōu)化间狂,使用模型來擬合這個問題攻泼,把超參數(shù)作為輸入,訓練模型的能力作為輸出鉴象,其他作為黑盒忙菠,即"模型能力=f(超參數(shù))",通過合適的模型來擬合這個f纺弊。這類方法通常如下圖的步驟所示:
這類算法最典型的就是貝葉斯優(yōu)化只搁。
貝葉斯優(yōu)化算法是通過高斯過程回歸來擬合f,.
算法流程主要分為4步和第二節(jié)提到的流程幾乎一致:
隨機一些超參數(shù)x并訓練得到模型俭尖,然后刻畫這些模型的能力y,得到先驗數(shù)據(jù)集合D = (x1, y1)、(x2, y2)稽犁、...焰望、(xk,yk)
通過先驗數(shù)據(jù)D來擬合出高斯模型GM
通過采集函數(shù)找到在GM下的極大值 超參數(shù)x',并通過x'訓練得到模型和刻畫模型能力y'已亥,將(x'熊赖,y')加入數(shù)據(jù)集D
重復2-3步,直至終止條件
這里值得注意的是虑椎,第2步擬合的模型GM震鹉,對于任何一組超參數(shù)x輸入,輸出的是一個分布即均值和標準差捆姜,而不是一個準確的值(因而需要效用函數(shù)來量化)传趾,具體如下圖所示,通過藍色先驗點擬合出的GM泥技,綠色區(qū)域即為對應輸入x浆兰,輸出y的可能范圍
ps. 擬合方法需要面對的幾個難題:(1) 訓練的不穩(wěn)定性,同一組超參數(shù)多次訓練無法完全一致 (2) 模型能力的刻畫珊豹,衡量方法很難準確的刻畫出模型能力 (3) 受資源和時間的原因簸呈,無法進行大量的嘗試 (4) 隨機因素太多,很難用簡單固定的模型來擬合
3店茶、其他型
比如pbt算法蜕便,pbt是基于遺傳算法的靈感改進出來的算法,從結(jié)果上講他是找到了一個訓練過程(一個階段一組超參數(shù))贩幻,而不是一組最優(yōu)超參數(shù)
二轿腺、理論
介紹貝葉斯優(yōu)化調(diào)參,必須要從兩個部分講起:
- 高斯過程段直,用以擬合優(yōu)化目標函數(shù)
- 貝葉斯優(yōu)化吃溅,包括了“開采”和“勘探”,用以花最少的代價找到最優(yōu)值
(一)鸯檬、高斯過程
1决侈、高斯過程簡介
高斯過程可以用于非線性回歸、非線性分類喧务、參數(shù)尋優(yōu)等等赖歌。以往的建模需要對 ??(??|??) 建模,當用于預測時功茴,則是
而高斯過程則還考慮了y(N)和y(N+1)之間的關(guān)系庐冯,即:
高斯過程通過假設 ?? 值服從聯(lián)合正態(tài)分布,來考慮 ???? 和 ????+1 之間的關(guān)系坎穿,因此需要給定參數(shù)包括:均值向量和協(xié)方差矩陣展父,即
其中協(xié)方差矩陣又叫做 核矩陣, 記為 ?? 返劲,僅和特征 ?? 有關(guān),和 ?? 無關(guān)栖茉。
高斯過程的思想是: 假設 ?? 服從高維正態(tài)分布(先驗)篮绿,而根據(jù)訓練集可以得到最優(yōu)的核矩陣 ,從而得到后驗以估計測試集 ???
我們有后驗:
其中吕漂,???為訓練集的核向量亲配,有如下關(guān)系:
可以發(fā)現(xiàn),在后驗公式中惶凝,只有均值和訓練集 ?? 有關(guān)吼虎,方差則僅僅和核矩陣,也就是訓練集和測試集的 ?? 有關(guān)苍鲜,與訓練集 ?? 無關(guān)
2思灰、高斯過程的估計(訓練)方法
假設使用平方指數(shù)核(Squared Exponential Kernel),那么有:
那么所需要的確定的超參數(shù) ??=[??^2_??,??] 坡贺,由于 ?? 服從多維正態(tài)分布官辈,因此似然函數(shù)為:
由于 ?? 是由 ?? 決定的,所以通過梯度下降即可求出超參數(shù) ??遍坟,而根據(jù)核矩陣的計算方式也可以進行預測拳亿。
上圖是一張高斯分布擬合函數(shù)的示意圖,可以看到愿伴,它只需要九個點肺魁,就可以大致擬合出整個函數(shù)形狀
(二)、貝葉斯優(yōu)化理論
貝葉斯優(yōu)化是一種逼近思想隔节,當計算非常復雜鹅经、迭代次數(shù)較高時能起到很好的效果,多用于超參數(shù)確定
1怎诫、基本思想
貝葉斯優(yōu)化理論是基于數(shù)據(jù)使用貝葉斯定理估計目標函數(shù)的后驗分布瘾晃,然后再根據(jù)分布選擇下一個采樣的超參數(shù)組合。它充分利用了前一個采樣點的信息幻妓,其優(yōu)化的工作方式是通過對目標函數(shù)形狀的學習蹦误,并找到使結(jié)果向全局最大提升的參數(shù)。
高斯過程 用于在貝葉斯優(yōu)化中對目標函數(shù)建模肉津,得到其后驗分布强胰。
通過高斯過程建模之后,我們嘗試抽樣進行樣本計算妹沙,而貝葉斯優(yōu)化很容易在局部最優(yōu)解上不斷采樣偶洋,這就涉及到了開發(fā)和探索之間的權(quán)衡。
- 開發(fā) (exploitation): 根據(jù)后驗分布距糖,在最可能出現(xiàn)全局最優(yōu)解的區(qū)域進行采樣, 開發(fā)高意味著均值高
- 探索 (exploration): 在還未取樣的區(qū)域獲取采樣點玄窝, 探索高意味著方差高牵寺。
而如何高效的采樣,即開發(fā)和探索哆料,我們需要用到 Acquisition Function, 它是用來尋找下一個 x 的函數(shù)缸剪。
2、Acquistion Function
一般形式的Acquisition Funtion是關(guān)于x的函數(shù)东亦,映射到實數(shù)空間R,表示改點的目標函數(shù)值能夠比當前最優(yōu)值大多少的概率唬渗,目前主要有以下幾種主流的Acquisition Function
(1)典阵、POI(probability of improvement)
其中, ??(??) 為X的目標函數(shù)值镊逝, ??(??+) 為 到目前為止 最優(yōu)的X的目標函數(shù)值壮啊, ??(??),??(??) 分別是高斯過程所得到的目標函數(shù)的均值和方差,即 ??(??) 的后驗分布撑蒜。 ?? 為trade-off系數(shù),如果沒有該系數(shù)歹啼,POI函數(shù)會傾向于取在 ??+ 周圍的點,即傾向于exploit而不是explore座菠,因此加入該項進行權(quán)衡狸眼。
而我們要做的,就是嘗試新的X浴滴,使得 ??????(??) 最大拓萌,則采取該?? (因為??(??)的計算代價非常大),通常我們使用 蒙特卡洛模擬 的方法進行升略。詳細情況見下圖(圖片來自 Ref[5])
(2)微王、Expected Improvement
POI是一個概率函數(shù),因此只考慮了f(x) 比 ??(??+) 大的概率品嚣,而EI則是一個期望函數(shù)炕倘,因此考慮了 f(x) 比 ??(??+) 大多少。我們通過下式獲取x其中 ???? 為前t個樣本翰撑,在正態(tài)分布的假定下罩旋,最終得到:
其中
(3)、Confidence bound criteria
(三)额嘿、缺點和不足
高斯過程核矩陣不好選