? ? ? ? 在系列(八)中提到了機器學習最重要就是降低模型的方差,即解決過擬合的問題,其中最重要的一種方法就是模型正則化,通常有L1正則和L2正則。
(演示代碼見:https://github.com/eqdward/ML_Algorithms/blob/master/L1_L2_Regulation)
1.0 模型正則化
? ? ? ? 模型正則化(Regularization),就是通過對算法模型的修正(即降低復雜度),限制參數(即自變量)的規模(數量和冪次數),減少泛化誤差(方差)而不是訓練誤差(偏差)。例如當使用比較復雜的模型比如神經網絡,去擬合數據時,很容易出現過擬合現象(訓練集表現很好,測試集表現較差),這會導致模型的泛化能力下降,這時候就需要使用正則化,降低模型的復雜度。
? ? ? ? 實踐中,過于復雜的模型不一定能夠模擬結果的真實生成過程,甚至也不包括近似過程。這意味著在建模時就控制模型的復雜程度并不是一個有效的方法,或者說不能很好的找到合適的模型,所以通常做法是構建一個適當正則化的大型(復雜)模型。
? ? ? 正則化的策略包括:通過對模型建立約束和懲罰,使模型偏好與簡單化的表達(奧卡姆剃刀原理的應用),即模型復雜則對其處罰。其他形式的正則化如集成的方法,即結合多個假說解釋訓練數據。
2.0 L1正則化和LASSO回歸
? ? ? ??L1正則化就是在損失函數中加了L1范數這一項,而使用L1正則化的模型叫做LASSO回歸,中文常叫套索回歸。
2.1 LASSO回歸
? ? ? ? 以線性回歸為例:線性回歸中為了確定最終的模型參數采用的是求損失函數最小,為了避免數據數量增加帶來的方差增大選擇了均方差MSE作為損失函數,如下式:
? ? ? ? 由于數據集本身的大小是固定的,那么當模型過于復雜時,會導致的絕對值變大,因此為了限制
的增大,在損失函數后加入正則化(懲罰項),如下所示:
? ? ? ?這樣的話,要使損失函數盡可能小就要綜合考慮兩項,第一項就是均方差MSE,第二項是系數的絕對值,這樣就要求在二者之間尋求一個平衡,這就是一種模型正則化的基本原理。該種形式的正則化就是L1正則化,而這也的回歸模型被稱為“LASSO回歸”(Least Absolute Shrinkage and Selection Operator Regression)。
? ? ? ? 在這里有幾個細節需要注意:
? ? ? ? (1)系數的取值范圍是1~n,即不包含
。這是因為
不是任何一個參數的系數,只是截距。反映到圖形上就是反映了曲線的高低位置,而不決定曲線的趨勢,所以模型正則化時不需要考慮。
? ? ? ? (2)正則化項前面的系數叫做超參數,含義是讓系數
盡可能小的程度占整個優化損失函數程度的多少,也可以理解為懲罰項的懲罰力度。
2.2 LASSO回歸與稀疏性
? ? ? ? ?LASSO回歸的全稱是Least Absolute Shrinkage and?Selection Operator?Regression。這里的selection operator說明LASSO回歸包含了特征選擇功能。具體來說,就是LASSO回歸可以使得模型系數具有稀疏性,即得到的系數矩陣是一個稀疏矩陣。
? ? ? ? (注:稀疏性和稀疏矩陣,簡單說就是存在很多0。系數結果為系數矩陣,表明只有少數特征(系數為非0)對模型有作用,其他(系數為0)特征即使去掉可以認為對模型沒有影響,此時就可以只關注系數是非零值的特征。)
? ? ? ? LASSO回歸相當于對模型進行了一次特征選擇,只留下一些比較重要的特征,提高模型的泛化能力,降低過擬合的可能。
3.0 L2正則化和RIDGE回歸
? ? ? ? L1正則化的懲罰項采用了求絕對值加和的形式
,其實可以看做是系數矩陣距離空間原點的曼哈頓距離。既然有曼哈頓距離,自然也有歐式距離
,這就是L2正則化的形式。使用L2正則化的模型叫做RIDGE回歸,中文名叫嶺回歸。L2正則化形式如下:
? ? ? ? 需要注意的是,L2與L1的差異性在于不會使系數矩陣稀疏化。L2正則化能夠讓系數比較小(接近0),但是比較平滑(不等于0),因此不具有稀疏性。