本文轉(zhuǎn)自:Coggle數(shù)據(jù)科學(xué)
超參數(shù)搜索確實(shí)是機(jī)器學(xué)習(xí)生命周期中不可或缺的一步,特別是在模型性能方面。正確的超參數(shù)選擇可以顯著提高模型的準(zhǔn)確性、對(duì)未見(jiàn)數(shù)據(jù)的泛化能力以及收斂速度。不當(dāng)?shù)某瑓?shù)選擇可能導(dǎo)致過(guò)擬合或欠擬合等問(wèn)題。
一些常見(jiàn)的超參數(shù)例子包括梯度基算法中的學(xué)習(xí)率,或者決策樹(shù)算法中樹(shù)的深度,這些可以直接影響模型準(zhǔn)確擬合訓(xùn)練數(shù)據(jù)的能力。超參數(shù)調(diào)優(yōu)涉及在復(fù)雜的、高維的超參數(shù)空間中搜索模型的最佳配置。挑戰(zhàn)不僅在于計(jì)算成本,還在于模型復(fù)雜性、泛化能力和過(guò)擬合之間的權(quán)衡。
方法1:網(wǎng)格搜索
網(wǎng)格搜索(Grid Search)是一種流行的超參數(shù)優(yōu)化方法,它系統(tǒng)地遍歷多種超參數(shù)的組合。這種方法簡(jiǎn)單、直觀,但可能在高維參數(shù)空間中變得非常耗時(shí)和計(jì)算密集。
網(wǎng)格搜索會(huì)生成所有可能的參數(shù)組合。如果你有兩個(gè)超參數(shù),每個(gè)參數(shù)有3個(gè)可能的值,那么網(wǎng)格搜索將會(huì)產(chǎn)生 9 種不同的參數(shù)組合。
簡(jiǎn)單易懂:網(wǎng)格搜索的概念直觀,易于理解和實(shí)現(xiàn)。
全面搜索:如果你定義的參數(shù)網(wǎng)格足夠密集,網(wǎng)格搜索可以保證找到全局最優(yōu)解。
- 計(jì)算成本高:隨著超參數(shù)數(shù)量和每個(gè)參數(shù)的可能值數(shù)量增加,需要評(píng)估的組合數(shù)量呈指數(shù)級(jí)增長(zhǎng),這可能導(dǎo)致計(jì)算成本非常高。
fromsklearnimportsvm,datasets
fromsklearn.model_selectionimportGridSearchCV
iris=datasets.load_iris()
parameters={'kernel':('linear','rbf'),'C':[1,10]}
svc=svm.SVC()
clf=GridSearchCV(svc,parameters)
clf.fit(iris.data,iris.target)
sorted(clf.cv_results_.keys())
方法2:隨機(jī)搜索
隨機(jī)搜索(Random Search)是另一種流行的超參數(shù)優(yōu)化方法,與網(wǎng)格搜索相比,它不嘗試遍歷所有可能的參數(shù)組合,而是在參數(shù)空間中隨機(jī)選擇參數(shù)組合進(jìn)行評(píng)估。
![d9f3b722-e5e5-11ef-9434-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/07/8B/wKgZPGenJUaAIJP8AAIT71X7PNc967.png)
隨機(jī)搜索會(huì)從這些分布中隨機(jī)抽取參數(shù)值,形成參數(shù)組合。每次抽取都是獨(dú)立的,這意味著同一參數(shù)的不同組合可以被多次抽取。
靈活性:隨機(jī)搜索可以很容易地處理連續(xù)參數(shù)和離散參數(shù)。
避免局部最優(yōu):由于隨機(jī)搜索的隨機(jī)性,它不太可能陷入局部最優(yōu)解,有更高的機(jī)會(huì)探索到全局最優(yōu)解。
結(jié)果不可重復(fù):每次運(yùn)行隨機(jī)搜索可能會(huì)得到不同的結(jié)果,因?yàn)閰?shù)組合是隨機(jī)選擇的。
fromsklearn.datasetsimportload_iris
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.model_selectionimportRandomizedSearchCV
fromscipy.statsimportuniform
iris=load_iris()
logistic=LogisticRegression(solver='saga',tol=1e-2,max_iter=200,
random_state=0)
distributions=dict(C=uniform(loc=0,scale=4),
penalty=['l2','l1'])
clf=RandomizedSearchCV(logistic,distributions,random_state=0)
search=clf.fit(iris.data,iris.target)
search.best_params_
方法3:貝葉斯優(yōu)化貝葉斯優(yōu)化核心思想是構(gòu)建一個(gè)概率模型,該模型能夠預(yù)測(cè)目標(biāo)函數(shù)(通常是模型的性能指標(biāo),如準(zhǔn)確率或損失)在不同超參數(shù)組合下的表現(xiàn)。
![da184736-e5e5-11ef-9434-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/07/8B/wKgZPGenJUaASYvfAACd7bCpuig538.png)
這個(gè)概率模型通常是基于高斯過(guò)程(Gaussian Process),它能夠根據(jù)已有的觀測(cè)數(shù)據(jù)(即之前評(píng)估過(guò)的超參數(shù)組合及其對(duì)應(yīng)的性能指標(biāo))來(lái)預(yù)測(cè)新的超參數(shù)組合的性能,并據(jù)此選擇新的超參數(shù)組合進(jìn)行評(píng)估。
避免稀疏梯度和探索-利用平衡問(wèn)題:貝葉斯優(yōu)化避免了傳統(tǒng)優(yōu)化方法中遇到的稀疏梯度和探索-利用平衡問(wèn)題的影響。
提高搜索效率:貝葉斯優(yōu)化能夠有效地搜索高維參數(shù)空間,從而提高搜索效率
defblack_box_function(x,y):
"""Functionwithunknowninternalswewishtomaximize.
Thisisjustservingasanexample,forallintentsand
purposesthinkoftheinternalsofthisfunction,i.e.:theprocess
whichgeneratesitsoutputvalues,asunknown.
"""
return-x**2-(y-1)**2+1
frombayes_optimportBayesianOptimization
pbounds={'x':(2,4),'y':(-3,3)}
optimizer=BayesianOptimization(
f=black_box_function,
pbounds=pbounds,
random_state=1,
)
optimizer.maximize(
init_points=2,
n_iter=3,
)
方法4:模擬退火模擬退火算法(Simulated Annealing,簡(jiǎn)稱(chēng)SA)是一種基于概率的啟發(fā)式隨機(jī)搜索優(yōu)化算法,靈感來(lái)源于物理中的退火過(guò)程。它通過(guò)模擬金屬退火過(guò)程中分子運(yùn)動(dòng)的方式來(lái)解決復(fù)雜的優(yōu)化問(wèn)題。
![da38f314-e5e5-11ef-9434-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/07/8B/wKgZPGenJUaALcndAACDXRSJVhY470.png)
從一個(gè)初始解開(kāi)始,并設(shè)置一個(gè)較高的初始溫度。在當(dāng)前解的鄰域中隨機(jī)生成一個(gè)新的解,計(jì)算新解的目標(biāo)函數(shù)值。如果新解比當(dāng)前解好,則接受新解;如果新解比當(dāng)前解差,仍然以一定的概率接受新解。
- 全局優(yōu)化:模擬退火算法能夠在整個(gè)解空間中進(jìn)行搜索,有助于找到全局最優(yōu)解,尤其適用于解決具有多個(gè)局部最優(yōu)解的復(fù)雜問(wèn)題。
隨機(jī)性:算法通過(guò)隨機(jī)擾動(dòng)和接受劣解的方式,增加了搜索過(guò)程的隨機(jī)性,有助于跳出局部最優(yōu)解。
方法5:遺傳算法遺傳算法(Genetic Algorithm, GA)是一種模擬自然界進(jìn)化過(guò)程的優(yōu)化算法,它基于自然選擇和群體遺傳機(jī)理,通過(guò)模擬繁殖、雜交和突變等現(xiàn)象來(lái)求解優(yōu)化問(wèn)題。隨機(jī)生成一個(gè)初始種群,每個(gè)個(gè)體(解決方案)被編碼為一個(gè)染色體,將兩個(gè)個(gè)體的一部分基因組合在一起,生成新的個(gè)體。隨機(jī)更改個(gè)體的一些基因值,以引入新的遺傳變異。
- 全局搜索能力:遺傳算法采用群體方式進(jìn)行搜索,能夠有效地探索整個(gè)搜索空間,避免陷入局部最優(yōu)解。
并行性:遺傳算法天然適合并行計(jì)算,因?yàn)槊總€(gè)個(gè)體的評(píng)估和選擇過(guò)程相對(duì)獨(dú)立
方法6:連續(xù)減半Successive Halving(連續(xù)減半)算法是一種高效的超參數(shù)優(yōu)化方法,特別適用于大規(guī)模的參數(shù)搜索問(wèn)題。Successive Halving是一種迭代選擇過(guò)程,它通過(guò)逐步減少候選解的數(shù)量并增加剩余候選解的資源分配來(lái)優(yōu)化超參數(shù)。這種方法類(lèi)似于“錦標(biāo)賽”或“達(dá)爾文進(jìn)化”,其中表現(xiàn)不佳的候選解會(huì)被淘汰,而表現(xiàn)較好的候選解則獲得更多的資源以進(jìn)行進(jìn)一步的評(píng)估。
fromsklearn.datasetsimportload_iris
fromsklearn.ensembleimportRandomForestClassifier
fromsklearn.experimentalimportenable_halving_search_cv #noqa
fromsklearn.model_selectionimportHalvingGridSearchCV
X,y=load_iris(return_X_y=True)
clf=RandomForestClassifier(random_state=0)
param_grid={"max_depth":[3,None],
"min_samples_split":[5,10]}
search=HalvingGridSearchCV(clf,param_grid,resource='n_estimators',
max_resources=10,
random_state=0).fit(X,y)
search.best_params_
方法7:大模型思維鏈在超參數(shù)優(yōu)化中,LLMs可以被用來(lái)推薦一組超參數(shù)進(jìn)行評(píng)估。在接收到這些超參數(shù)后,根據(jù)提議的配置訓(xùn)練模型,并記錄最終的指標(biāo)(例如,驗(yàn)證損失)。然后,再次詢(xún)問(wèn)LLM以獲取下一組超參數(shù)。這個(gè)過(guò)程是迭代的,直到耗盡搜索預(yù)算。
LLMs在進(jìn)行超參數(shù)優(yōu)化時(shí),可以利用鏈?zhǔn)剿伎纪评?,這意味著它們可以生成解釋其推薦的理由。這種推理能力可以幫助理解模型為何推薦特定的超參數(shù),并提供更深入的洞察。
-
人工智能
+關(guān)注
關(guān)注
1796文章
47734瀏覽量
240444 -
模型
+關(guān)注
關(guān)注
1文章
3329瀏覽量
49252 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8442瀏覽量
133107
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
C語(yǔ)言程序小知識(shí)點(diǎn)總結(jié)
計(jì)算機(jī)組成原理考研知識(shí)點(diǎn)歸納
模電主要知識(shí)點(diǎn)及計(jì)算方法
高一數(shù)學(xué)知識(shí)點(diǎn)總結(jié)
高二數(shù)學(xué)知識(shí)點(diǎn)總結(jié)
嵌入式知識(shí)點(diǎn)總結(jié)
![嵌入式<b class='flag-5'>知識(shí)點(diǎn)</b>總結(jié)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
數(shù)字電路知識(shí)點(diǎn)總結(jié)
![數(shù)字電路<b class='flag-5'>知識(shí)點(diǎn)</b>總結(jié)](https://file1.elecfans.com/web2/M00/88/DF/wKgZomR1oB2ATkOzAABYL6bXL8c171.jpg)
STM32 RTOS知識(shí)點(diǎn)
![STM32 RTOS<b class='flag-5'>知識(shí)點(diǎn)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論