機器學習之模型控制

語言: 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 曲線能夠完全包住另一個模型的曲線,那麼前者的性能就優於後者。

四、總結

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

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