機器學習之模型控制

語言: CN / TW / HK

theme: smartblue

機器學習需要根據問題特點和已有資料來確定最好的預測模型。可以設計為三個階段:

  • 模擬擬合:利用訓練資料集對模型的普通引數進行擬合。
  • 模型選擇:利用驗證資料集對模型的超引數進行調整,刷選出效能最好的模型。
  • 模型評價:利用測試資料集來評估模型在未知資料上的真實效能。

1、資料集

資料集在劃分時,最基本的原則就是確保訓練集、驗證集和測試集三者兩兩互不相交。

除了互不相交之外,另一個需要注意的問題是訓練、驗證、測試中樣例分佈的一致性,也就是三個集合中正例和負例的比例應該大致相同,避免在資料集之間出現不平衡,導致給效能的評估帶來偏差,從而給模型的選擇造成影響。

2、普通引數和超引數

機器學習中,普通引數和超引數是兩個不同的概念。普通引數就是模型的引數是對模擬的內部描述,超引數則是對模型的外部描述。舉例如下:

image.png

所有a(i)都是需要擬合的普通引數, 而N則是超引數。

一、模型擬合

模擬擬合的任務是計算未知的引數,但是它還要解決一個更重要的問題,就是擬合引數前確定模型的形式。這涉及到如下兩個方面: - 模擬的合理性很大程度上取決於解決問題本身的特徵 - 模型的複雜度也要和問題的複雜度匹配

機器學習中,對這兩個方面的理解催生了兩個基本的規律:無免費午餐定理和奧卡姆剃刀原則。

1.1、無免費午餐定理
無免費午餐(No Free Lunch, NFL)定理證明了任何模型在所有問題上的效能都是相同的,其總誤差和模型本身是沒有關係的。也就是每種問題出現的概率是均等的,每個模型用於解決所有問題時,其平均意義上的效能是一樣的。

NFL定理最重要的指導意義在於先驗知識的使用,也就是具體問題具體分析。機器學習的目標不是放之四海而皆準的通用模型,而是關於特定問題有針對性的解決方案。脫離問題的實際情況談論模型優劣是沒有意義的,只有讓模型的特點和問題的特徵相匹配,模型才能發揮最大的作用。

1.2、奧卡姆剃刀定理
奧卡姆剃刀可以理解為如果多種模型都能夠同等程度地符合一個問題的觀測結果,那就應該選擇其中使用假設最少的,也就是最簡單的模型。在結果大致相同的情況下,模型就越簡單越好。

奧卡姆剃刀本質上關注的就是模型複雜度。機器學習學到的模型應該能夠識別出資料背後的模式,也就是資料特徵和資料類別之間的關係。當模型過於複雜時,特徵和類別之間的關係中所有的細枝末節都被捕捉,主要的趨勢卻沒有得到重視,就會出現過擬合的發生。反過來,如果模型過於簡單,它不僅沒有捕捉細微的相關性,來主要趨勢本身都沒有辦法抓住,這樣的現象就是欠擬合

1.3、模型誤差
模型的誤差包括三個部分:偏差,方差,噪聲。

噪聲叫做不可約誤差,是待學習問題本身的難度,並不能通過模型訓練加以改善,噪聲來源於資料自身的不確定性。

偏差和方差之間的折中與模型自身的特性息息相關。偏差來源於模型中錯誤假設,偏差過高就意味著模型所代表的特徵和分類結果之間的關係是錯誤的,對應著欠擬合現象;方差則來源於對訓練資料波動的過度敏感,方差過高意味著模型對資料中的隨機噪聲也進行了建模,對應著過擬合現象。

一般來說,模型的複雜度越低,其偏差也就越高;模型的複雜度越高,其方差也就越高。

二、模型的驗證

模型本身的泛化效能,就是模型對未知資料的預測能力,這是機器學習的核心問題。在一個問題的學習中,不同的模型在訓練集上具有類似的效能,這時就需要模型驗證來從備選中做出合適的選擇。

評估泛化效能時,最重要的依據就是模型在訓練資料集上的精度。定性而論,模型在訓練集上的精度既不能太低,也不能太高。太低會導致欠擬合,太高會導致過擬合。

通用驗證的方法是直接估計泛化誤差,估計的方式則是資料的重取樣,充分利用有限的資料來估算模型的泛化效能。

2.1、留出法

留出法:隨機採用一部分資料作為訓練集,再取樣出另一部分資料作為驗證集。
留出法的一個問題是它所留出的,用於模型驗證的資料是固定不變的。即使在滿足分佈一致性的條件下,訓練集和驗證集的劃分方式也並不是唯一的。通過留出法計算出來的泛化誤差本質上也是個隨機變數,單次留出得到的估計結果就相當於對這個分佈進行一次取樣,這單次取樣的結果沒有辦法體現出隨機變數的分佈特性。所以,在使用留出法時一般採用多次隨機劃分,在不同的訓練/驗證集上評估模型效能再取平均值的方式,來得到更精確的泛化誤差估計。

2.2、k折交叉驗證法

k 折交叉驗證將原始資料集隨機劃分為 k 個相同大小的子集,並進行 k 輪驗證。每一輪驗證都選擇一個子集作為驗證集,而將剩餘的 k−1 個子樣本用作訓練集。由於每一輪中選擇的驗證集都互不相同,每一輪驗證得到的結果也是不同的,k 個結果的均值就是對泛化效能的最終估計值。

k折交叉驗證法中k值的選取直接決定估計結果的精確程度。較小的k值意味著更少的資料被用於訓練模型,這將導致每一輪估計得到的結果更加集中,但都會偏離真正的泛化誤差,也就是方差較小而偏差較大。隨著k值不斷增加,偏差不斷減小,而方差不斷變大。

2.3、留一法
k 折交叉驗證一個特例是 k 等於原始資料集的容量 N,此時每一輪中只有一個樣本被用做測試,不同輪次中的訓練集則幾乎完全一致。這個特例被稱為留一法(leave-one-out)。留一法得到的是關於真實泛化誤差的近似無偏的估計,其結果通常被認為較為準確。但它的缺點是需要訓練的模型數量和原始資料集的樣本容量是相等的,當資料量較大時,使用留一法無疑會帶來龐大的計算開銷。

三、模型的評估

用訓練資料集擬合出備選模型的引數,再用驗證資料集選出最優模型後,接下來就到了是騾子是馬牽出來溜溜,也就是模型評估的階段了。模型評估中使用的是測試資料集,通過衡量模型在從未出現過的資料上的效能來估計模型的泛化特性。

二分類任務是最重要也最基礎的機器學習任務,其最直觀的效能度量指標就是分類的準確率。給定一組訓練資料,演算法不可能完全正確地劃分所有例項,而是會將一部分正例誤判為反例,也會將一部分反例誤判為正例。分類正確的樣本佔樣本總數的比例是精度(accuracy),分類錯誤的樣本佔樣本總數的比例是錯誤率(error rate),兩者之和等於 1。

機器學習採用了混淆矩陣(confusion matrix),也叫列聯表(contingency table)來對不同的劃分結果加以區分。

image.png

如上圖所示,在混淆矩陣中,所有測試樣例被分為真正例(true positive, TP)、假正例(false positive, FP)、假反例(false negative, FN)、真反例(true negative, TN)四大類。

查準率 P 也叫正例預測值(positive predictive value),表示的是真正例佔所有預測結果為正例的樣例的比值,也就是模型預測結果的準確程度。

查全率 R 也叫真正例率(true positive rate, TPR),表示的是真正例佔所有真實情況為正例的樣例的比值,也就是模型對真實正例的判斷能力。

通俗地說,查準率要求把儘可能少的真實負例判定為預測正例,查全率則要求把儘可能少的真實正例判定為預測負例。

將查準率和查全率畫在同一個平面直角座標系內,得到的就是P-R 曲線,它表示了模型可以同時達到的查準率和查全率。如果一個模型的 P-R 曲線能夠完全包住另一個模型的曲線,就意味著前者全面地優於後者。可是更普遍的情況是有些模型查全效能較優,而另一些模型查準效能較優,這就需要根據任務本身的特點來加以選擇了。

除了 P-R 曲線外,另一個對機器學習模型效能進行視覺化的方式是受試者工作特徵曲線(receiver operating characteristic curve),簡稱 ROC 曲線

ROC 曲線描述的是真正例率和假正例率之間的關係,也就是收益(真正例)與代價(假正例)之間的關係。所謂的假正例率(false positive rate, FPR)等於假正例和所有真實反例之間的比值,其數學表示式為 image.png
ROC 空間將 FPR 定義為 X 軸,TPR 定義為 Y 軸。典型的 ROC 曲線(左)與 P-R 曲線(右)如下圖: image.png

ROC 曲線可以用來衡量習得模型的效能。模型的 ROC 曲線越靠近左上方,其效能就越好。和 P-R 曲線一樣,如果一個模型的 ROC 曲線能夠完全包住另一個模型的曲線,那麼前者的效能就優於後者。

四、總結

本次主要涵蓋了機器學習中模型的設計、驗證、評估的整體方式和方法。

後面繼續學習機器學習中各種詳細的數學模型介紹