日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习模型定点化_机器学习模型的超参数优化

發(fā)布時間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习模型定点化_机器学习模型的超参数优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

模型優(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ù)測或者分類精度。

分類算法中的超參數(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),并且比較耗時,因此發(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ù)。

網(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ù)量呈指數(shù)增長。并且這一方法并不能保證搜索會找到完美的超參數(shù)值。

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

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

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

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

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

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

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

通過以下代碼,可以實(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)行計算。

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)行并行計算。但是每個模型都是獨(dú)立的,也導(dǎo)致模型之間不具有指導(dǎo)意義,前一模型的計算結(jié)果并不能影響后一模型的超參數(shù)選擇。 而貝葉斯優(yōu)化方法(順序優(yōu)化方法的一種,sequential model-besed optimization, SMBO)則可以借鑒已有的結(jié)果進(jìn)而影響后續(xù)的模型超參數(shù)選擇。

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

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

當(dāng)反復(fù)迭代時,算法會在考慮到它對目標(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)化時間。

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

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

這一方法的應(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)過程。

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

作為一個一般性的經(jīng)驗(yàn)法則,任何時候想要優(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)和其他算法來克服這一障礙。

作者:Nagesh Singh Chauhan

deephub翻譯組:Oliver Lee

總結(jié)

以上是生活随笔為你收集整理的机器学习模型定点化_机器学习模型的超参数优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。