機(jī)器學(xué)習(xí):模型調(diào)參之方法論
背景
在某個數(shù)據(jù)場景下,能夠通過模型調(diào)參達(dá)到比一般情況更好效果的調(diào)參技巧是從業(yè)者擺脫“調(diào)包俠”最有效的方法,
正因?yàn)榇耍?strong style="color: rgb(71, 193, 168);">模型調(diào)參一直是建模人員向往的高地,但這要求建模人員具有強(qiáng)大的綜合能力。
例如對數(shù)據(jù)業(yè)務(wù)的理解、算法本質(zhì)的理解、合適的調(diào)試工具、做實(shí)驗(yàn)的方法和策略、細(xì)致的觀察和分析能力,等等。
其中“調(diào)試工具、做實(shí)驗(yàn)的方法和策略”體現(xiàn)了軟件工程的實(shí)踐能力
模型調(diào)參概述
調(diào)參過程可通俗表述為:給定一組數(shù)據(jù)D和具有可調(diào)N個參數(shù)的算法 ,調(diào)參的目的就是在由參數(shù)組成的N維向量集 里,挑選一組參數(shù)λ,使得算法在訓(xùn)練集學(xué)習(xí)后能在驗(yàn)證集取得最小的損失(最優(yōu)的模型效果),
其數(shù)學(xué)表達(dá)式為式(12-1)
其中,N維向量集稱為參數(shù)配置空間,由實(shí)數(shù)、正數(shù)、布爾和條件等類型的變量組成。
實(shí)際上不同的特征處理方法、算法也可視為類別型變量,作為配置空間的一部分,這極大擴(kuò)展了配置空間,構(gòu)成了算法選擇和超參數(shù)優(yōu)化組合問題——CASH (Combined Algorithm Selection and Hyperparameter optimization problem)。
超參數(shù)和作弊的隨機(jī)種子
初學(xué)者是否有過這樣的疑問:“機(jī)器學(xué)習(xí)不就是學(xué)習(xí)/求解參數(shù)嗎,為什么還需要調(diào)參?”
對這個問題的最直接回答是:調(diào)算法學(xué)習(xí)不到的參數(shù)。那么,模型調(diào)參到底是調(diào)哪些參數(shù)呢?
答案是調(diào)超參數(shù)(Hyperparameter),簡稱超參,
在普通的編程里可以將其理解為Magic Number,調(diào)參的過程即為超參優(yōu)化的過程(Hyperparameter Optimization,HPO)。
那么什么是超參呢?
超參的概念來自統(tǒng)計(jì)學(xué),超參被人為當(dāng)作先驗(yàn)輸入到模型中。
例如,在對服從高斯分布的數(shù)據(jù)建模,即估計(jì)該分布的均值和方差,當(dāng)認(rèn)為均值服從參數(shù)為λ的Poisson分布時(shí),參數(shù)λ就是待建模的系統(tǒng)超參。
在機(jī)器學(xué)習(xí)中,超參的概念與此類似,指的是決定模型框架/結(jié)構(gòu)或算法行為的參數(shù)。
隨機(jī)種子:不論是數(shù)據(jù)劃分還是算法運(yùn)行過程,都存在隨機(jī)性(隨機(jī)種子的介紹請參考第3章)。
隨機(jī)種子是最常見的建模作弊的手段(或者建模工程師自己也沒有意識到),當(dāng)通過不斷調(diào)整隨機(jī)種子而擇優(yōu)選擇的模型,就是作弊的模型。
下面給出了3個是否是超參的直觀判斷方法:
1) 模型無法直接從數(shù)據(jù)中估算的參數(shù);
2) 是否必須手動指定的參數(shù)(包含接口中的缺省的一些參數(shù));
3) 算法接口中的輸入?yún)?shù)(排除與算法無關(guān)的參數(shù),如輸入數(shù)據(jù)等)。
機(jī)器學(xué)習(xí)學(xué)到的“參數(shù)”似乎比要調(diào)整的超參少,這個問題留給讀者思考。下文描述的參數(shù),無特別說明時(shí),指的都是超參!
調(diào)參三要素
在調(diào)參前通常需要了解3個調(diào)參要素:目標(biāo)函數(shù)、搜索域和優(yōu)化算法
目標(biāo)函數(shù):即定義要優(yōu)化的目標(biāo)/評估標(biāo)準(zhǔn)以判斷模型,一般來說即最小化損失、最大化驗(yàn)證集上模型指標(biāo)
搜索域:也稱為域空間、配置空間,即超參的搜索空間,亦稱為超參空間。實(shí)踐中需關(guān)注參數(shù)的上下界、取值范圍等。
搜索算法:在實(shí)踐中,我們需選用某種調(diào)參搜索算法,例如常見的、下文要介紹的網(wǎng)格搜索、隨機(jī)搜索、貝葉斯搜索以及它們組合而成的混合搜索
常見的超參類型如下所示。
布爾型:例如線性回歸中選擇是否擬合截距fit_intercept; 整數(shù)型:例如最近鄰中的鄰居的個數(shù),必須為正整數(shù); 浮點(diǎn)型:例如常見的抽樣比例、Gamma參數(shù)等; 對數(shù)型:例如常見的正則項(xiàng)和學(xué)習(xí)率,其參數(shù)一般取10的對數(shù),如0.1、0.01、0.001; 類別型:例如邏輯回歸中penalty選擇L1或L2正則,不同的數(shù)據(jù)處理方法也屬于類別型; 條件型:當(dāng)且僅當(dāng)具有某些前置條件的參數(shù)時(shí),該參數(shù)才有效或才定義(一個超參數(shù)的值取決于另一個或多個超參數(shù)的取值);例如邏輯回歸中只有L2的正則且solver參數(shù)為‘liblinear’時(shí),對偶求解參數(shù)dual才生效。
調(diào)參流程和方法
一定要銘記:參數(shù)只有更好,沒有最好,應(yīng)適可而止,朝著項(xiàng)目總體目標(biāo)推進(jìn)。
調(diào)參可分為手動調(diào)參、半自動化調(diào)參和自動化調(diào)參,這些內(nèi)容將在下文詳細(xì)介紹。
調(diào)參流程
調(diào)參首先應(yīng)有方向性的指導(dǎo)。
第5章提到,根據(jù)調(diào)參方向的不同,可分為:
先訓(xùn)練復(fù)雜的模型并在后續(xù)逐漸簡化;反之,由簡至繁逐漸改善模型,并建議使用方式一。
在奧卡姆剃刀原則的理論指導(dǎo)下,選擇前者,能減少我們決策的路徑。
選擇某個學(xué)習(xí)算法后,調(diào)參主體流程遵循調(diào)參三要素:定義目標(biāo)、定義配置空間、選擇搜索算法。此外,調(diào)參流程中還需要包括如下過程。
1)良好的記錄每輪結(jié)果:
2)可視化的呈現(xiàn)和分析:
3)配置空間的調(diào)整:
4)搜索算法的調(diào)整:
5)綜合得到最終的參數(shù)和結(jié)果:
超參選取策略和特定模型超參推薦
超參的選取分為:初次選取和啟發(fā)式選取
超參空間的初次選取主要從以下幾個方面獲得:學(xué)習(xí)算法缺省參數(shù)附近選取、個人經(jīng)驗(yàn)、他人建議、論文和書籍中的推薦等。
其中缺省參數(shù)是一個良好的起點(diǎn),具有一定的理論和實(shí)驗(yàn)依據(jù)
盡管超參數(shù)量可能很多,但并非所有超參都同等重要;在調(diào)參的過程中,應(yīng)該先選取重要的參數(shù),其次才是不那么重要的參數(shù)。
超參空間的選取具有一定的技巧。
1) 參數(shù)范圍:
2) 參數(shù)分組:機(jī)器學(xué)習(xí)是偏差和方差權(quán)衡的藝術(shù),一組是有利于偏差的參數(shù)、一組是有利于方差的參數(shù)。
3) 目標(biāo):前期的調(diào)參并不需要將關(guān)注點(diǎn)完全放在優(yōu)化目標(biāo)上,而是傾向于研究超參或超參組合與目標(biāo)的關(guān)系
一般來說,某個學(xué)習(xí)算法通常只有幾個重要參數(shù),掌握這些算法和對應(yīng)的重要參數(shù),我們就有了經(jīng)驗(yàn)。下面給出幾個參考示例。
1) 邏輯回歸:理論上邏輯回歸并沒有特別重要的參數(shù),調(diào)優(yōu)空間不大,常規(guī)包含penalty和對應(yīng)的懲罰力度、可根據(jù)不同的應(yīng)用場景嘗試不同的solver;
2) KNN中要屬n_neighbors最重要,其次有距離的度量方法;
3) SVM中的核的選取,其次是懲罰力度C;
4) Bagging樹模型中樹的數(shù)量n_estimators;
5) 隨機(jī)森林中隨機(jī)選取特征的數(shù)量max_features和樹的數(shù)量n_estimators;
6) 梯度樹中的樹的數(shù)量n_estimators和學(xué)習(xí)率learning_rate;
常用算法候選參數(shù)記錄在表12-1,請?jiān)膮⒖肌?/span>
自動調(diào)參之元學(xué)習(xí)和代理模型
筆者簡要的將自動調(diào)參劃分為兩種類型
利用學(xué)習(xí)過程中的經(jīng)驗(yàn):如何利用已有的“經(jīng)驗(yàn)”的元學(xué)習(xí)(Meta-Learning)
利用代理模型:不直接優(yōu)化原始模型,而是優(yōu)化原模型的代理模型
1、元學(xué)習(xí),是學(xué)習(xí)如何學(xué)習(xí)的方法
有哪些元信息可以作為經(jīng)驗(yàn)使用呢?
過程元信息:特征處理方法、學(xué)習(xí)算法和參數(shù)/網(wǎng)絡(luò)結(jié)構(gòu)、模型性能等;
特征元信息:用于描述樣本和特征的元信息。常用元信息有:樣本數(shù)、特征數(shù)、分類問題中的類別數(shù)、特征中數(shù)值和類別各自的數(shù)量、特征的缺失情況、特征的統(tǒng)計(jì)特征(偏度、峰度、標(biāo)準(zhǔn)差等)、特征間的關(guān)系(如相關(guān)性)、與目標(biāo)變量的信息熵等。
理論上說,具有相似的元信息,可以應(yīng)用相似的算法和參數(shù)。
有的機(jī)器學(xué)習(xí)軟件包中,能夠記錄每次訓(xùn)練的元特征信息,用于豐富自身的元信息庫/知識庫,SmartML就是這樣的一個R包。
Auto-sklearn 開源包中,不僅利用特征元信息(包含140個數(shù)據(jù)集,每個數(shù)據(jù)集至少包含1000個樣本)實(shí)現(xiàn)學(xué)習(xí)熱啟動,還有下文提到的貝葉斯自動調(diào)參方法和自動模型集成的功能!
2、代理模型
代理模型是需要建立新的關(guān)于超參的模型的方法——超參和模型性能上建模。常見序列化的代理模型,使用貝葉斯方法迭代建模。常見有:
1) 基于高斯過程的代理模型。
2) 基于樹模型的代理模型。
3) 基于TPE(Tree-structured Parzen Estimator)的代理模型
此外,還有基于MCMC的方法、基于進(jìn)化算法的自動超參優(yōu)化等。
也可以加一下老胡的微信 圍觀朋友圈~~~
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
《機(jī)器學(xué)習(xí)暑期前沿學(xué)校》課程視頻及ppt分享
下載 | 經(jīng)典著作《機(jī)器學(xué)習(xí):概率視角》.pdf
【小抄】機(jī)器學(xué)習(xí)常見知識點(diǎn)總結(jié)(2021)
從貝葉斯定理到概率分布:詳解概率論老鐵,三連支持一下,好嗎?↓↓↓
