乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      機(jī)器學(xué)習(xí)模型的超參數(shù)優(yōu)化

       禁忌石 2022-05-06 發(fā)布于浙江
      文章圖片1

      引言

      模型優(yōu)化是機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)中最困難的挑戰(zhàn)之一。機(jī)器學(xué)習(xí)和深度學(xué)習(xí)理論的所有分支都致力于模型的優(yōu)化。

      機(jī)器學(xué)習(xí)中的超參數(shù)優(yōu)化旨在尋找使得機(jī)器學(xué)習(xí)算法在驗(yàn)證數(shù)據(jù)集上表現(xiàn)性能最佳的超參數(shù)。超參數(shù)與一般模型參數(shù)不同,超參數(shù)是在訓(xùn)練前提前設(shè)置的。舉例來說,隨機(jī)森林算法中樹的數(shù)量就是一個超參數(shù),而神經(jīng)網(wǎng)絡(luò)中的權(quán)值則不是超參數(shù)。

      其它超參數(shù)有:

      · 神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的學(xué)習(xí)率

      · 支持向量機(jī)中的 參數(shù)和 參數(shù)

      · k 近鄰算法中的 參數(shù)……

      超參數(shù)優(yōu)化找到一組超參數(shù),這些超參數(shù)返回一個優(yōu)化模型,該模型減少了預(yù)定義的損失函數(shù),進(jìn)而提高了給定獨(dú)立數(shù)據(jù)的預(yù)測或者分類精度。

      文章圖片2

      分類算法中的超參數(shù)

      超參數(shù)優(yōu)化方法

      超參數(shù)的設(shè)置對于模型性能有著直接影響,其重要性不言而喻。為了最大化模型性能,了解如何優(yōu)化超參數(shù)至關(guān)重要。接下來介紹了幾種常用的超參數(shù)優(yōu)化方法。

      1.手動調(diào)參

      很多情況下,工程師們依靠試錯法手動對超參數(shù)進(jìn)行調(diào)參優(yōu)化,有經(jīng)驗(yàn)的工程師能夠很大程度上判斷超參數(shù)如何進(jìn)行設(shè)置能夠獲得更高的模型準(zhǔn)確性。但是,這一方法依賴大量的經(jīng)驗(yàn),并且比較耗時(shí),因此發(fā)展出了許多自動化超參數(shù)優(yōu)化方法。

      2. 網(wǎng)格化尋優(yōu)(Grid Search)

      網(wǎng)格化尋優(yōu)可以說是最基本的超參數(shù)優(yōu)化方法。使用這種技術(shù),我們只需為所有超參數(shù)的可能構(gòu)建獨(dú)立的模型,評估每個模型的性能,并選擇產(chǎn)生最佳結(jié)果的模型和超參數(shù)。

      文章圖片3

      網(wǎng)格化尋優(yōu)方法

      以一個典型的核函數(shù)為 RBF 的 SVM 分類模型為例,其至少有兩個超參數(shù)需要優(yōu)化——正則化常數(shù) 和 核函數(shù)參數(shù) 。這兩個超參數(shù)都是連續(xù)的,需要執(zhí)行網(wǎng)格化尋優(yōu)為每個超參數(shù)選擇合理取值。假設(shè) 。那么網(wǎng)格化尋優(yōu)方法將對每一對( ,)賦值后的 SVM 模型進(jìn)行訓(xùn)練,并在驗(yàn)證集上分別評估它們的性能(或者在訓(xùn)練集內(nèi)進(jìn)行 cross-validation)。最終,網(wǎng)格化尋優(yōu)方法返回在評估過程中得分最高的模型及其超參數(shù)。

      通過以下代碼,可以實(shí)現(xiàn)上述方法:

      首先,通過 sklearn 庫調(diào)用 GridSearchCV 。

      from sklearn.datasets import load_irisfrom sklearn.svm import SVCiris = load_iris()svc = SVR()from sklearn.model_selection import GridSearchCVfrom sklearn.svm import SVRgrid = GridSearchCV( estimator=SVR(kernel='rbf'), param_grid={ 'C': [0.1, 1, 100, 1000], 'epsilon': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10], 'gamma': [0.0001, 0.001, 0.005, 0.1, 1, 3, 5] }, cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)

      然后擬合網(wǎng)格。

      grid.fit(X,y)

      輸出結(jié)果。

      #print the best score throughout the grid searchprint grid.best_score_#print the best parameter used for the highest score of the model.print grid.best_param_

      網(wǎng)格化尋優(yōu)的一個缺點(diǎn)是,當(dāng)涉及到多個超參數(shù)時(shí),計(jì)算數(shù)量呈指數(shù)增長。并且這一方法并不能保證搜索會找到完美的超參數(shù)值。

      隨機(jī)尋優(yōu)(Random Search)

      通常并不是所有的超參數(shù)都有同樣的重要性,某些超參數(shù)可能作用更顯著。 而隨機(jī)尋優(yōu)方法相對于網(wǎng)格化尋優(yōu)方法能夠更準(zhǔn)確地確定某些重要的超參數(shù)的最佳值。

      文章圖片4

      隨機(jī)尋優(yōu)方法

      隨機(jī)尋優(yōu)方法在超參數(shù)網(wǎng)格的基礎(chǔ)上選擇隨機(jī)的組合來進(jìn)行模型訓(xùn)練。 可以控制組合的數(shù)量,基于時(shí)間和計(jì)算資源的情況,選擇合理的計(jì)算次數(shù)。 這一方法可以通過調(diào)用 sklearn 庫中的 randomizedSearchCV 函數(shù)來實(shí)現(xiàn)。

      盡管 RandomizedSearchCV 的結(jié)果可能不如GridSearchCV準(zhǔn)確,但它令人意外地經(jīng)常選擇出最好的結(jié)果,而且只花費(fèi)GridSearchCV所需時(shí)間的一小部分。給定相同的資源,RandomizedSearchCV甚至可以優(yōu)于的結(jié)果可能不如GridSearchCV準(zhǔn)確。當(dāng)使用連續(xù)參數(shù)時(shí),兩者的差別如下圖所示。

      文章圖片5

      網(wǎng)格化尋優(yōu) VS 隨機(jī)尋優(yōu)

      隨機(jī)尋優(yōu)方法找到最優(yōu)參數(shù)的機(jī)會相對更高,但是這一方法適用于低維數(shù)據(jù)的情況,可以在較少迭代次數(shù)的情況下找到正確的參數(shù)集合,并且花費(fèi)的時(shí)間較少。

      通過以下代碼,可以實(shí)現(xiàn)上述方法:

      首先,通過 sklearn 庫調(diào)用 RandomizedSearchCV 。

      from sklearn.datasets import load_irisfrom sklearn.ensemble import RandomForestRegressoriris = load_iris()rf = RandomForestRegressor(random_state = 42)from sklearn.model_selection import RandomizedSearchCVrandom_grid = {'n_estimators': n_estimators,               'max_features': max_features,               'max_depth': max_depth,               'min_samples_split': min_samples_split,               'min_samples_leaf': min_samples_leaf,               'bootstrap': bootstrap}rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid, n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)# Fit the random search model

      然后進(jìn)行計(jì)算。

      rf_random.fit(X,y)

      輸出結(jié)果。

      #print the best score throughout the grid searchprint rf_random.best_score_#print the best parameter used for the highest score of the model.print rf_random.best_param_Output:{'bootstrap': True, 'max_depth': 70, 'max_features': 'auto', 'min_samples_leaf': 4, 'min_samples_split': 10, 'n_estimators': 400}

      貝葉斯優(yōu)化方法(Bayesian Optimization)

      前面兩種方法能夠針對單獨(dú)超參數(shù)組合模型進(jìn)行訓(xùn)練,并評估各自的性能。每個模型都是獨(dú)立的,因此很易于進(jìn)行并行計(jì)算。但是每個模型都是獨(dú)立的,也導(dǎo)致模型之間不具有指導(dǎo)意義,前一模型的計(jì)算結(jié)果并不能影響后一模型的超參數(shù)選擇。 而貝葉斯優(yōu)化方法(順序優(yōu)化方法的一種,sequential model-besed optimization, SMBO)則可以借鑒已有的結(jié)果進(jìn)而影響后續(xù)的模型超參數(shù)選擇。

      這也限制了模型訓(xùn)練評估的計(jì)算次數(shù),因?yàn)橹挥杏型岣吣P托阅艿某瑓?shù)組合才會被進(jìn)行計(jì)算。

      貝葉斯優(yōu)化是通過構(gòu)造一個函數(shù)的后驗(yàn)分布(高斯過程)來工作的,該后驗(yàn)分布最好地描述了要優(yōu)化的函數(shù)。隨著觀測次數(shù)的增加,后驗(yàn)分布得到改善,算法更加確定參數(shù)空間中哪些區(qū)域值得探索,哪些區(qū)域不值得探索。

      文章圖片6

      當(dāng)反復(fù)迭代時(shí),算法會在考慮到它對目標(biāo)函數(shù)的了解的情況下,平衡它的探索和開發(fā)需求。在每個步驟中,高斯過程被擬合到已知的樣本(先前探索的點(diǎn)),后驗(yàn)分布與探索策略(例如UCB(上置信限,upper confidence bound)或EI(預(yù)期改善, expected improvement))被用于確定下一個應(yīng)該探索的點(diǎn)。

      通過貝葉斯優(yōu)化方法,可以更高效得探索超參數(shù)變量空間,降低優(yōu)化時(shí)間。

      基于梯度的優(yōu)化方法(Gradient-based Optimization)

      基于梯度的優(yōu)化方法經(jīng)常被用于神經(jīng)網(wǎng)絡(luò)模型中,主要計(jì)算超參數(shù)的梯度,并且通過梯度下降算法進(jìn)行優(yōu)化。

      文章圖片7

      這一方法的應(yīng)用場景并不廣泛,其局限性主要在于:

      1. 超參數(shù)優(yōu)化通常不是一個平滑的過程

      1. 超參數(shù)優(yōu)化往往具有非凸的性質(zhì)

      進(jìn)化尋優(yōu)(Evolutionary Optimization)

      進(jìn)化尋優(yōu)方法的思想來源于生物學(xué)概念,由于自然進(jìn)化是不斷變化的環(huán)境中發(fā)生的一個動態(tài)過程,因此適用于超參數(shù)尋優(yōu)問題,因?yàn)槌瑓?shù)尋優(yōu)也是一個動態(tài)過程。

      文章圖片8

      進(jìn)化算法經(jīng)常被用來尋找其他技術(shù)不易求解的近似解。優(yōu)化問題往往沒有一個精確的解決方案,因?yàn)樗赡芴臅r(shí)并且計(jì)算資源占用很大。在這種情況下,進(jìn)化算法通??梢杂脕韺ふ乙粋€足夠的近似最優(yōu)解。 進(jìn)化算法的一個優(yōu)點(diǎn)是,它們可以產(chǎn)生出不受人類誤解或偏見影響的解決方案。

      作為一個一般性的經(jīng)驗(yàn)法則,任何時(shí)候想要優(yōu)化調(diào)整超參數(shù),優(yōu)先考慮網(wǎng)格化尋優(yōu)方法和隨機(jī)尋優(yōu)方法!

      總結(jié)

      在本文中,我們了解到為超參數(shù)找到正確的值可能是一項(xiàng)令人沮喪的任務(wù),并可能導(dǎo)致機(jī)器學(xué)習(xí)模型的欠擬合或過擬合。我們看到了如何通過使用網(wǎng)格化尋優(yōu)、隨機(jī)尋優(yōu)和其他算法來克服這一障礙。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多