正則化綜述
機器學習中經常會在損失函數中加入正則項,稱之為正則化(Regularize)。
目的:防止模型過擬合
原理:在損失函數上加上某些規則(限制),縮小解空間,從而減少求出過擬合解的可能性
例子:以最簡單的線性模型為例
我們在統計學習中接觸到線性迴歸的最小二乘估計和正則化的嶺迴歸與拉索迴歸。
在數學上我們可以證明嶺估計的參數模要嚴格小於最小二乘估計的參數模,換句話說,我們可以認為加入L2正則項後,估計參數長度變短了,這在數學上被稱為特徵縮減(shrinkage)。
shrinkage方法介紹:指訓練求解參數過程中考慮到係數的大小,通過設置懲罰係數,使得影響較小的特徵的係數衰減到0,只保留重要特徵的從而減少模型複雜度進而達到規避過擬合的目的。常用的shinkage的方法有Lasso(L1正則化)和嶺迴歸(L2正則化)等。
採用shrinkage方法的主要目的包括兩個:一方面因為模型可能考慮到很多沒必要的特徵,這些特徵對於模型來說就是噪聲,shrinkage可以通過消除噪聲從而減少模型複雜度;另一方面模型特徵存在多重共線性(變量之間相互關聯)的話可能導致模型多解,而多解模型的一個解往往不能反映模型的真實情況,shrinkage可以消除關聯的特徵提高模型穩定性。
通過線性模型理解正則化
對於包括多元線性迴歸模型、邏輯迴歸和SVM在內的線性模型,我們需要利用測試集來最小化損失函數從而求得模型參數w。
我們在線性模型的損失函數中加入正則項可以得到目標函數。其中λ被稱為正則化係數,當λ越大時,正則化約束越強。
通過令目標函數導函數為0,我們可以得到參數的表達式為:
選擇L2正則項的原因
給損失函數加上的正則化項可以有多種形式,下面給出了正則化的一般形式:
其中M是參數的個數,也是模型特徵的維數;q是正則項的階數,L2正則項的q為2。
考慮到在高維數據下很難給出正則項的幾何意義,我們假設數據源只有兩個特徵:
q不同取值時正則項的函數值圖像:
不同函數值圖像對應的等高線(即俯視圖)為:
最小化目標函數時,可以看做在控制損失函數不變的情況時令正則項最小化,幾何意義如下所示:藍色圈表示沒有限制的損失函數隨著w迭代尋找著最小化的過程的E(w)函數等高線(同個圓上的損失函數值相同),
藍色圈和橙色圈之和就是目標函數值,目標函數最小化的點往往出現在藍圈和橙圈相交的點即目標函數最小化的參數值w*。可以看到,L1正則化的最優參數值w*恰好是w1=0的時候,意味著我們剔除了模型中一個特徵(係數為0等價於剔除該特徵),從而達到了降低模型複雜度的目的。在這個意義上L1正則化效果要優於L2正則化,
但L1存在拐點不是處處可微,從而L2正則化有更好的求解特性。總結
梳理一下,正則化有多種方式,包括L0(向量中非零元素個數),L1(向量中元素絕對值之和),L2(向量的模)。但是L0範數的求解是個NP完全問題,而L1也能實現稀疏並且比L0有更好的優化求解特性而被廣泛應用。
L2範數指各元素平方和後開根的值,可令w每個元素接近於0,雖然不如L1更徹底地降低模型複雜度,但是由於處處可微降低了計算難度
閱讀更多 TOMOCAT 的文章