機器學習(二):機器學習中的幾個基本概念
前言
對於《統計學習方法》中遇到的一些問題,以及機器學習中的一些自己沒有理解透徹的問題,希望通過梳理總結能夠有更深入的理解。
在上一章最開始我們已經概括了統計學習方法的三要素,即模型、策略、演算法,這裡就不再詳述了。
本文討論總結了如下幾個概念:損失函式與風險函式、經驗風險最小化與結構風險最小化、欠擬合與過擬合、正則化、生成模型與判別模型等。這些都是機器學習中的常見問題,這裡僅做一個梳理,不能保證非常全面,不足之處煩請指正。
1. 損失函式與風險函式
(1) 損失函式:
損失函式(Loss Function),也稱代價函式(Cost Function),是用來度量預測的錯誤程度的函式,是預測值和實際值的非負實值函式,記作。
常用的損失函式如下:
0-1損失函式:
平方損失函式:
絕對損失函式:
對數或對數似然損失函式:
(2) 風險函式:
風險函式(Risk Function),也稱期望損失(Excepted Loss),用來表示損失函式的期望。具體的說,就是表示理論上模型關於聯合概率分佈的平均意義下的損失,即: 然而,一般情況下樣本的聯合概率分佈是未知的(如果已知就可以直接求出條件概率分佈了),學習的目標則是選擇期望風險最小的模型,這是矛盾的。
那麼,如何解決這一問題呢? 這裡,考慮模型關於個樣本的訓練資料集的平均損失,即經驗風險(Empirical Risk)或經驗損失(Empirical Loss): 可以看到,期望風險是模型關於聯合分佈的期望損失,經驗風險是模型關於訓練集的平均損失。
由大數定律知,當樣本容量趨於無窮時,經驗風險趨於期望風險。那麼,似乎就可以用經驗風險估計期望風險了。但是,實際上訓練樣本數目都是有限的,甚至有時候樣本數目很小,那麼這樣估計就會有很大偏差。因此,需要對經驗風險進行一定的矯正,這就關係到監督學習的兩個基本策略:經驗風險最小化和結構風險最小化。
注: 這裡簡單說一下大數定律(辛欽大數定律):對於相互獨立同分布的個樣本,及任意的, 有。
2. 經驗風險最小化與結構風險最小化
(1) 經驗風險最小化:
Empirical Risk Minimization,記作ERM。 ERM策略認為,經驗風險最小的模型是最優模型。
當樣本容量足夠大時,ERM確實能取得很好的學習效果,比如極大似然估計就是ERM的一個例子(參照上一章內容)。 當模型是條件概率分佈、損失函式是對數損失函式時,ERM等價於極大似然估計。
但是,當樣本容量很小時,ERM的學習效果就不太好,很容易“過擬合”。
(2) 結構風險最小化:
Structural Risk Minimization,記作SRM。 SRM是為了防止過擬合而提出的策略,等價於正則化。
結構風險是在經驗風險上加上表示模型複雜度的正則化項或懲罰項,即: 其中為模型複雜度,是定義在假設空間上的泛函,模型越複雜,就越大,即複雜度表示了對複雜模型的懲罰。
SRM需要經驗風險和模型複雜度同時最小化,比如最大後驗估計就是SRM的一個例子(同樣參考上一章內容)。 當模型是條件概率分佈、損失函式是對數損失函式、模型複雜度有模型先驗概率表示時,SRM等價於MAP。
3. 欠擬合與過擬合
對於一個模型而言,我們希望在訓練的時候能夠獲得較小的訓練誤差,同時測試的時候能夠使測試誤差與訓練誤差的偏差儘可能小。那麼,這就涉及到機器學習的兩個基本概念:欠擬合和過擬合,即underfitting和overfitting。
(1) 欠擬合
什麼是欠擬合?欠擬合是指模型不能在訓練集上獲得足夠低的誤差。 簡單地說,就是模型訓練都沒有做好,就更不用說測試誤差了。
(2) 過擬合
那麼什麼是過擬合呢?過擬合是指訓練誤差和測試誤差之間的偏差太大了。 簡單地說,就是模型訓練誤差很小,甚至於把不合適的樣本(包括噪點)都作為有用樣本進行訓練,那麼模型雖然對訓練集擬合很好,但泛化性很差,在測試集上就會出現較大的誤差。
(3) 如何解決欠擬合和過擬合呢?
一般來說,模型容量過小易出現欠擬合,過大則易出現過擬合。
那麼什麼是模型容量呢?和樣本容量不同,通俗地說,模型容量是指其擬合各種函式的能力。換句話說,我們可以將學習演算法選擇為解決方案的函式集,這樣通過改變輸入特徵的數目和加入這些特徵對應的引數,從而改變了模型的容量。當然容量不僅取決於模型的選擇,還有很多其他方法,這裡暫時不做討論了(其實是還沒研究過)。
相對於欠擬合,過擬合大概是機器學習中更容易遇到也更重要的問題。一味追求提高對訓練集的預測能力(即小誤差),使所選模型複雜度過大、引數過多,從而產生過擬合。那麼,要解決過擬合問題,可以考慮以下常用方法: a.重新整理資料,儘可能去掉噪聲資料; b.增大訓練資料量,過小的訓練集容易出現過擬合; c.採用dropout方法,一般用於神經網路訓練中,簡單地說就是每層以一定概率選擇保留的神經元(即對應的引數),降低神經網路的複雜度; d.正則化。
4. 正則化
前面說過,結構風險最小化(SRM)等價於正則化。其實正則化就是模型選擇的典型方法,具體來說就是給目標函式(一般是損失函式)加上一個正則項或懲罰項,從而達到降低模型複雜度、提高模型泛化能力的作用。 正則項一般是模型複雜度的單調遞增函式,模型越複雜,正則化值就越大。常用的正則項為範數,包括範數、範數等。
這裡順便總結一下常用範數的意義和作用: 範數:表示向量中非零元素的個數,但是範數很難寫成一個好的數學表示式,很難優化求解,因此實際上是一個NP難問題; 範數:表示向量中非零元素的絕對值之和,也稱為稀疏規則運算元,可以實現特徵稀疏從而去掉無用特徵,實際上是範數的最優凸近似; 範數:表示向量中各元素的平方和開根的結果,多用於防止過擬合、提高模型泛化能力; 範數:表示向量中元素的最大值。
5. 生成模型與判別模型
生成模型和判別模型是監督學習中的兩類模型,一般用於解決不同型別的問題。
(1) 生成模型:
由訓練資料學習樣本的聯合概率分佈並求出相應的條件概率分佈作為預測,這樣的模型稱為生成模型。
生成模型表示了給定輸入產生輸出的生成關係(即聯合分佈)。
典型方法有樸素貝葉斯法、混合高斯模型和隱馬爾可夫模型。
生成模型的優點: a.可以還原出聯合概率分佈,而判別模型不能; b.學習收斂速度更快,即當樣本容量增加的時候,學到的模型可以更快地收斂於真實模型; c.當存在隱變數時,生成模型仍然可以學習(比如混合高斯模型就是加入隱變數的生成方法),而判別模型不能。
生成模型的缺點: a.聯合分佈的確能夠提供更多的資訊,但同樣需要更多的樣本和更多的計算; b.如果只是對樣本進行分類,那麼生成模型計算得到的關於類條件概率的許多資訊就用不到了,浪費了計算資源; c.實踐中判別模型效果更好。
(2) 判別模型:
由訓練資料之際學習條件概率分佈或者決策函式作為預測,這樣的模型稱為判別模型。
判別模型表示了對於給定的輸入,應該預測得到什麼樣的輸出。
典型方法有:K-近鄰、感知機、決策樹、logistic迴歸、最大熵、支援向量機、提升方法和條件隨機場等。
判別模型的優點: a.可以直接學習條件概率分佈或者決策函式,那麼就是直接面向預測,往往學習準確率更高; b.由於直接學習的