對于很多算法工程師來說,超參數(shù)調(diào)優(yōu)是件非常頭疼的事,這項(xiàng)工作比較玄學(xué)。除了根據(jù)經(jīng)驗(yàn)設(shè)定所謂的“合理值”之外,一般很難找到合理的方法去尋找超參數(shù)的最優(yōu)值。而與此同時(shí),超參數(shù)對于模型效果的影響又至關(guān)重要。那么有沒有一些可行的辦法進(jìn)行超參數(shù)調(diào)優(yōu)呢?
超參數(shù)調(diào)優(yōu)的方法
為了進(jìn)行超參數(shù)調(diào)優(yōu),我們一般會(huì)采用網(wǎng)格搜索、隨機(jī)搜索以及貝葉斯等算法。在具體介紹算法之前,需要明確超參數(shù)搜索算法一般包括哪幾個(gè)要素。一是目標(biāo)函數(shù),即算法需要最大化/最小化的目標(biāo);二是搜索范圍,一般通過上限和下限來確定;三是算法的其它參數(shù),如搜索步長等。
1. 網(wǎng)格搜索
網(wǎng)格搜索可能是最簡單、應(yīng)用最廣泛的超參數(shù)搜索算法,它通過查找搜索范圍內(nèi)的所有的點(diǎn)來確定最優(yōu)值。如果采用較大的搜索范圍以及較小的步長,網(wǎng)格搜索有很大的概率找到全局最優(yōu)值。然而,這種搜索方法十分消耗計(jì)算資源和時(shí)間,特別是需要調(diào)優(yōu)的超參數(shù)比較多的時(shí)候。因此,在實(shí)際應(yīng)用中,網(wǎng)格搜索法一般會(huì)先使用較廣的搜索范圍和較大的步長,來尋找全局最優(yōu)值可能的位置;然后會(huì)逐漸縮小搜索范圍和步長,來尋找更精確的最優(yōu)值。這種操作方案可以降低所需的時(shí)間和計(jì)算量,但由于目標(biāo)函數(shù)一般是非凸的,所以很可能會(huì)錯(cuò)過全局最優(yōu)值。
2. 隨機(jī)搜索
隨機(jī)搜索的思想與網(wǎng)格搜索比較相似,只是不再測試上界和下界之間的所有值,而是在搜索范圍中隨機(jī)選取樣本點(diǎn)。它的理論依據(jù)是,如果樣本點(diǎn)集足夠大,那么通過隨機(jī)采樣也能大概率地找到全局最優(yōu)值或其近似值。隨機(jī)搜索一般會(huì)比網(wǎng)格搜索要快一些,但是和網(wǎng)格搜索的快速版一樣,它的結(jié)果也是沒法保證的。
3. 貝葉斯優(yōu)化算法
貝葉斯優(yōu)化算法在尋找最優(yōu)最值參數(shù)時(shí),采用了與網(wǎng)格搜索、隨機(jī)搜索完全不同的方法。網(wǎng)格搜索和隨機(jī)搜索在測試一個(gè)新點(diǎn)時(shí),會(huì)忽略前一個(gè)點(diǎn)的信息;而貝葉斯優(yōu)化算法則充分利用了之前的信息。貝葉斯優(yōu)化算法通過對目標(biāo)函數(shù)形狀進(jìn)行學(xué)習(xí),找到使目標(biāo)函數(shù)向全局最優(yōu)值提升的參數(shù)。具體來說,它學(xué)習(xí)目標(biāo)函數(shù)形狀的方法是,首先根據(jù)先驗(yàn)分布,假設(shè)一個(gè)搜索函數(shù);然后,每一次使用新的采樣點(diǎn)來測試目標(biāo)函數(shù)時(shí),利用這個(gè)信息來更新目標(biāo)函數(shù)的先驗(yàn)分布;最后,算法測試由后驗(yàn)分布給出的全局最值最可能出現(xiàn)的位置的點(diǎn)。對于貝葉斯優(yōu)化算法,有一個(gè)需要注意的地方,一旦找到一個(gè)局部最優(yōu)值,它會(huì)在該區(qū)域不斷采樣,所以很容易陷入局部最優(yōu)值。為了彌補(bǔ)這個(gè)缺陷,貝葉斯優(yōu)化算法會(huì)在探索和利用之間找到一個(gè)平衡點(diǎn),“探索”就是在還未取樣的區(qū)域獲取采樣點(diǎn);而“利用”則是根據(jù)后驗(yàn)分布在最可能出現(xiàn)全局最值的區(qū)域進(jìn)行采樣。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8541瀏覽量
136209
發(fā)布評論請先 登錄
實(shí)戰(zhàn)RK3568性能調(diào)優(yōu):如何利用迅為資料壓榨NPU潛能-在Android系統(tǒng)中使用NPU
HarmonyOSAI編程智慧調(diào)優(yōu)
HarmonyOS AI輔助編程工具(CodeGenie)智慧調(diào)優(yōu)
Linux網(wǎng)絡(luò)性能調(diào)優(yōu)方案
Linux內(nèi)核參數(shù)調(diào)優(yōu)方案
Linux系統(tǒng)性能調(diào)優(yōu)方案
MySQL配置調(diào)優(yōu)技巧
Nginx在企業(yè)環(huán)境中的調(diào)優(yōu)策略
手把手教你如何調(diào)優(yōu)Linux網(wǎng)絡(luò)參數(shù)
BP神經(jīng)網(wǎng)絡(luò)的調(diào)參技巧與建議
Kaggle知識(shí)點(diǎn):7種超參數(shù)搜索方法
xgboost超參數(shù)調(diào)優(yōu)技巧 xgboost在圖像分類中的應(yīng)用
傳統(tǒng)機(jī)器學(xué)習(xí)方法和應(yīng)用指導(dǎo)
變頻器出現(xiàn)超調(diào)問題案例分析及維修

機(jī)器學(xué)習(xí)的超參數(shù)調(diào)優(yōu)方法
評論