0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機(jī)器學(xué)習(xí)的幾個(gè)超參數(shù)調(diào)試方法

新機(jī)器視覺 ? 來源:AI公園導(dǎo)讀 ? 作者:Sivasai ? 2020-10-09 14:17 ? 次閱讀

作者:Sivasai,來源:AI公園導(dǎo)讀

ML工作流中最困難的部分之一是為模型找到最好的超參數(shù)。ML模型的性能與超參數(shù)直接相關(guān)。

介紹

維基百科上說,“Hyperparameter optimization或tuning是為學(xué)習(xí)算法選擇一組最優(yōu)的hyperparameters的問題”。

ML工作流中最困難的部分之一是為模型找到最好的超參數(shù)。ML模型的性能與超參數(shù)直接相關(guān)。超參數(shù)調(diào)優(yōu)的越好,得到的模型就越好。調(diào)優(yōu)超參數(shù)可能是非常乏味和困難的,更像是一門藝術(shù)而不是科學(xué)。

超參數(shù)

參數(shù)是在建立模型時(shí)用于控制算法行為的參數(shù)。這些參數(shù)不能從常規(guī)訓(xùn)練過程中獲得。在對(duì)模型進(jìn)行訓(xùn)練之前,需要對(duì)它們進(jìn)行賦值。

超參數(shù)的簡(jiǎn)單列表

內(nèi)容

傳統(tǒng)的手工調(diào)參

網(wǎng)格搜索

隨機(jī)搜索

貝葉斯搜索

1. 傳統(tǒng)手工搜索

在傳統(tǒng)的調(diào)參過程中,我們通過訓(xùn)練算法手動(dòng)檢查隨機(jī)超參數(shù)集,并選擇符合我們目標(biāo)的最佳參數(shù)集。

我們看看代碼:

#importingrequiredlibraries fromsklearn.neighborsimportKNeighborsClassifier fromsklearn.model_selectionimporttrain_test_split fromsklearn.model_selectionimportKFold,cross_val_score fromsklearn.datasetsimportload_wine wine=load_wine() X=wine.data y=wine.target #splittingthedataintotrainandtestset X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=14) #declaringparametersgrid k_value=list(range(2,11)) algorithm=['auto','ball_tree','kd_tree','brute'] scores=[] best_comb=[] kfold=KFold(n_splits=5) #hyperparametertunning foralgoinalgorithm: forkink_value: knn=KNeighborsClassifier(n_neighbors=k,algorithm=algo) results=cross_val_score(knn,X_train,y_train,cv=kfold) print(f'Score:{round(results.mean(),4)}withalgo={algo},K={k}') scores.append(results.mean()) best_comb.append((k,algo)) best_param=best_comb[scores.index(max(scores))] print(f' TheBestScore:{max(scores)}') print(f"['algorithm':{best_param[1]},'n_neighbors':{best_param[0]}]")

缺點(diǎn):

沒辦法確保得到最佳的參數(shù)組合。

這是一個(gè)不斷試錯(cuò)的過程,所以,非常的耗時(shí)。

2. 網(wǎng)格搜索

網(wǎng)格搜索是一種基本的超參數(shù)調(diào)優(yōu)技術(shù)。它類似于手動(dòng)調(diào)優(yōu),為網(wǎng)格中指定的所有給定超參數(shù)值的每個(gè)排列構(gòu)建模型,評(píng)估并選擇最佳模型??紤]上面的例子,其中兩個(gè)超參數(shù)k_value =[2,3,4,5,6,7,8,9,10]&algorithm =[' auto ', ' ball_tree ', ' kd_tree ', ' brute '],在這個(gè)例子中,它總共構(gòu)建了9*4 = 36不同的模型。

讓我們來了解一下sklearn的GridSearchCV是如何工作的:

fromsklearn.model_selectionimportGridSearchCV knn=KNeighborsClassifier() grid_param={'n_neighbors':list(range(2,11)), 'algorithm':['auto','ball_tree','kd_tree','brute']} grid=GridSearchCV(knn,grid_param,cv=5) grid.fit(X_train,y_train) #bestparametercombination grid.best_params_ #Scoreachievedwithbestparametercombination grid.best_score_ #allcombinationsofhyperparameters grid.cv_results_['params'] #averagescoresofcross-validation grid.cv_results_['mean_test_score']

缺點(diǎn):

由于它嘗試了超參數(shù)的每一個(gè)組合,并根據(jù)交叉驗(yàn)證得分選擇了最佳組合,這使得GridsearchCV非常慢。

3. 隨機(jī)搜索

使用隨機(jī)搜索代替網(wǎng)格搜索的動(dòng)機(jī)是,在許多情況下,所有的超參數(shù)可能不是同等重要的。隨機(jī)搜索從超參數(shù)空間中隨機(jī)選擇參數(shù)組合,參數(shù)由n_iter給定的固定迭代次數(shù)的情況下選擇。實(shí)驗(yàn)證明,隨機(jī)搜索的結(jié)果優(yōu)于網(wǎng)格搜索。

讓我們來了解sklearn的RandomizedSearchCV是如何工作的,

fromsklearn.model_selectionimportRandomizedSearchCV knn=KNeighborsClassifier() grid_param={'n_neighbors':list(range(2,11)), 'algorithm':['auto','ball_tree','kd_tree','brute']} rand_ser=RandomizedSearchCV(knn,grid_param,n_iter=10) rand_ser.fit(X_train,y_train) #bestparametercombination rand_ser.best_params_ #scoreachievedwithbestparametercombination rand_ser.best_score_ #allcombinationsofhyperparameters rand_ser.cv_results_['params'] #averagescoresofcross-validation rand_ser.cv_results_['mean_test_score']

缺點(diǎn):

隨機(jī)搜索的問題是它不能保證給出最好的參數(shù)組合。

4. 貝葉斯搜索

貝葉斯優(yōu)化屬于一類優(yōu)化算法,稱為基于序列模型的優(yōu)化(SMBO)算法。這些算法使用先前對(duì)損失f的觀察結(jié)果,以確定下一個(gè)(最優(yōu))點(diǎn)來抽樣f。該算法大致可以概括如下。

使用先前評(píng)估的點(diǎn)X1*:n*,計(jì)算損失f的后驗(yàn)期望。

在新的點(diǎn)X的抽樣損失f,從而最大化f的期望的某些方法。該方法指定f域的哪些區(qū)域最適于抽樣。

重復(fù)這些步驟,直到滿足某些收斂準(zhǔn)則。

讓我們用scikit- optimization的BayesSearchCV來理解這

Installation: pip install scikit-optimize

fromskoptimportBayesSearchCV importwarnings warnings.filterwarnings("ignore") #parameterrangesarespecifiedbyoneofbelow fromskopt.spaceimportReal,Categorical,Integer knn=KNeighborsClassifier() #defininghyper-parametergrid grid_param={'n_neighbors':list(range(2,11)), 'algorithm':['auto','ball_tree','kd_tree','brute']} #initializingBayesianSearch Bayes=BayesSearchCV(knn,grid_param,n_iter=30,random_state=14) Bayes.fit(X_train,y_train) #bestparametercombination Bayes.best_params_ #scoreachievedwithbestparametercombination Bayes.best_score_ #allcombinationsofhyperparameters Bayes.cv_results_['params'] #averagescoresofcross-validation Bayes.cv_results_['mean_test_score']

缺點(diǎn):

要在2維或3維的搜索空間中得到一個(gè)好的代理曲面需要十幾個(gè)樣本,增加搜索空間的維數(shù)需要更多的樣本。

總結(jié)

在確定參數(shù)的最佳組合的保證和計(jì)算時(shí)間之間總是存在權(quán)衡。如果超參數(shù)空間(超參數(shù)個(gè)數(shù))非常大,則使用隨機(jī)搜索找到超參數(shù)的潛在組合,然后在該局部使用網(wǎng)格搜索(超參數(shù)的潛在組合)選擇最優(yōu)特征。

原文標(biāo)題:機(jī)器學(xué)習(xí)4個(gè)常用超參數(shù)調(diào)試方法!

文章出處:【微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ML
    ML
    +關(guān)注

    關(guān)注

    0

    文章

    144

    瀏覽量

    34527
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8323

    瀏覽量

    132171

原文標(biāo)題:機(jī)器學(xué)習(xí)4個(gè)常用超參數(shù)調(diào)試方法!

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    伺服電機(jī)有哪些調(diào)試方法?如何調(diào)?

    伺服電機(jī)是一種高精度的電機(jī),廣泛應(yīng)用于自動(dòng)化設(shè)備、機(jī)器人、數(shù)控機(jī)床等領(lǐng)域。為了確保伺服電機(jī)的性能和穩(wěn)定性,需要進(jìn)行正確的調(diào)試。以下是一些常見的伺服電機(jī)調(diào)試方法及其操作步驟: 電機(jī)
    的頭像 發(fā)表于 10-22 11:04 ?71次閱讀

    無線網(wǎng)橋的連接與調(diào)試方法

    無線網(wǎng)橋的連接與調(diào)試方法主要涉及設(shè)備的配置、網(wǎng)絡(luò)參數(shù)的設(shè)定以及通信質(zhì)量的優(yōu)化。以下是詳細(xì)的步驟和注意事項(xiàng):
    的頭像 發(fā)表于 10-01 15:23 ?313次閱讀

    【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】+ 簡(jiǎn)單建議

    這本書以其系統(tǒng)性的框架和深入淺出的講解,為讀者繪制了一幅時(shí)間序列分析與機(jī)器學(xué)習(xí)融合應(yīng)用的宏偉藍(lán)圖。作者不僅扎實(shí)地構(gòu)建了時(shí)間序列分析的基礎(chǔ)知識(shí),更巧妙地展示了機(jī)器學(xué)習(xí)如何在這一領(lǐng)域發(fā)揮巨
    發(fā)表于 08-12 11:21

    機(jī)器學(xué)習(xí)中的數(shù)據(jù)分割方法

    機(jī)器學(xué)習(xí)中,數(shù)據(jù)分割是一項(xiàng)至關(guān)重要的任務(wù),它直接影響到模型的訓(xùn)練效果、泛化能力以及最終的性能評(píng)估。本文將從多個(gè)方面詳細(xì)探討機(jī)器學(xué)習(xí)中數(shù)據(jù)分割的方法
    的頭像 發(fā)表于 07-10 16:10 ?913次閱讀

    機(jī)器學(xué)習(xí)中的交叉驗(yàn)證方法

    機(jī)器學(xué)習(xí)中,交叉驗(yàn)證(Cross-Validation)是一種重要的評(píng)估方法,它通過將數(shù)據(jù)集分割成多個(gè)部分來評(píng)估模型的性能,從而避免過擬合或欠擬合問題,并幫助選擇最優(yōu)的
    的頭像 發(fā)表于 07-10 16:08 ?599次閱讀

    深度學(xué)習(xí)的模型優(yōu)化與調(diào)試方法

    深度學(xué)習(xí)模型在訓(xùn)練過程中,往往會(huì)遇到各種問題和挑戰(zhàn),如過擬合、欠擬合、梯度消失或爆炸等。因此,對(duì)深度學(xué)習(xí)模型進(jìn)行優(yōu)化與調(diào)試是確保其性能優(yōu)越的關(guān)鍵步驟。本文將從數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)、
    的頭像 發(fā)表于 07-01 11:41 ?570次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對(duì)比

    在人工智能的浪潮中,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)無疑是兩大核心驅(qū)動(dòng)力。它們各自以其獨(dú)特的方式推動(dòng)著技術(shù)的進(jìn)步,為眾多領(lǐng)域帶來了革命性的變化。然而,盡管它們都屬于機(jī)器
    的頭像 發(fā)表于 07-01 11:40 ?947次閱讀

    焊接機(jī)器調(diào)試技巧有哪些

    調(diào)試的技巧,創(chuàng)想智控焊縫跟蹤小編帶大家一起了解。 1. 準(zhǔn)備工作 在開始調(diào)試工作之前,工程師必須充分了解焊接機(jī)器人的結(jié)構(gòu)、工作原理及其工作環(huán)境。這包括機(jī)器人的控制系統(tǒng)、運(yùn)動(dòng)學(xué)特性、焊
    的頭像 發(fā)表于 06-27 14:25 ?382次閱讀
    焊接<b class='flag-5'>機(jī)器</b>人<b class='flag-5'>調(diào)試</b>技巧有哪些

    變頻器的參數(shù)調(diào)試方法有哪些?

    參數(shù)調(diào)試方法,包括基本參數(shù)設(shè)置、頻率設(shè)定、加減速時(shí)間調(diào)整、轉(zhuǎn)矩提升、制動(dòng)功能設(shè)置、通訊設(shè)置等方面的內(nèi)容。 ? ? ??一、基本參數(shù)設(shè)置 ?
    的頭像 發(fā)表于 06-23 15:29 ?1616次閱讀
    變頻器的<b class='flag-5'>參數(shù)</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>方法</b>有哪些?

    變頻器的參數(shù)調(diào)試方法有哪些

    變頻器是一種將工頻電源轉(zhuǎn)換為頻率和電壓可調(diào)的電能控制裝置,廣泛應(yīng)用于工業(yè)自動(dòng)化、電力系統(tǒng)、交通等領(lǐng)域。變頻器參數(shù)調(diào)試是確保其正常運(yùn)行和滿足特定應(yīng)用需求的關(guān)鍵環(huán)節(jié)。本文將詳細(xì)介紹變頻器參數(shù)調(diào)試
    的頭像 發(fā)表于 06-17 15:20 ?1243次閱讀

    機(jī)器學(xué)習(xí)8大調(diào)參技巧

    今天給大家一篇關(guān)于機(jī)器學(xué)習(xí)調(diào)參技巧的文章。參數(shù)調(diào)優(yōu)是機(jī)器學(xué)習(xí)例程中的基本步驟之一。該
    的頭像 發(fā)表于 03-23 08:26 ?521次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>8大調(diào)參技巧

    什么是機(jī)器學(xué)習(xí)?它的重要性體現(xiàn)在哪

    任務(wù)的解決方法。機(jī)器學(xué)習(xí)的重要性體現(xiàn)在幾個(gè)方面數(shù)據(jù)處理能力:在當(dāng)今數(shù)字化時(shí)代,我們產(chǎn)生了大量的數(shù)據(jù)。機(jī)器
    的頭像 發(fā)表于 01-05 08:27 ?1257次閱讀
    什么是<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>?它的重要性體現(xiàn)在哪

    學(xué)習(xí)處理電源emi的幾個(gè)問題

    電子發(fā)燒友網(wǎng)站提供《學(xué)習(xí)處理電源emi的幾個(gè)問題.pdf》資料免費(fèi)下載
    發(fā)表于 11-20 10:16 ?0次下載
    <b class='flag-5'>學(xué)習(xí)</b>處理電源emi的<b class='flag-5'>幾個(gè)</b>問題

    NNI:自動(dòng)幫你做機(jī)器學(xué)習(xí)調(diào)參的神器

    NNI 自動(dòng)機(jī)器學(xué)習(xí)調(diào)參,是微軟開源的又一個(gè)神器,它能幫助你找到最好的神經(jīng)網(wǎng)絡(luò)架構(gòu)或參數(shù),支持 各種訓(xùn)練環(huán)境 。 它常用的 使用場(chǎng)景 如下: 想要在自己的代碼、模型中試驗(yàn) 不同的
    的頭像 發(fā)表于 10-30 10:28 ?2235次閱讀
    NNI:自動(dòng)幫你做<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>調(diào)參的神器

    機(jī)器視覺為什么需要反復(fù)調(diào)試?

    機(jī)器視覺需要反復(fù)調(diào)試的原因有以下幾點(diǎn): 圖像集的質(zhì)量不同,需要針對(duì)不同的圖像集進(jìn)行調(diào)試; 算法的參數(shù)設(shè)置不同,需要不斷調(diào)整參數(shù)以達(dá)到最優(yōu)
    的頭像 發(fā)表于 10-25 16:12 ?364次閱讀