機器學習------令人頭疼的正則化項
一般來說,監督學習可以看做最小化下面的目標函數:
(正則化代價函數)=(經驗代價函數)+(正則化參數)X(正則化項)
第一項是衡量模型預測與實際的誤差,因為要擬合訓練樣本,所以要求這一項最小,也就是要求模型盡量的擬合訓練數據。但不僅要保證訓練誤差最小,更希望模型測試誤差小,所以需要加上第二項去約束模型盡量的簡單。
機器學習的大部分帶參模型都和這個型很相似。其實大部分就是變換這兩項。對於第一項Loss函數,如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是Exp-Loss,那就是 Boosting了;如果是log-Loss,那就是Logistic Regression了,等等。不同的loss函數,具有不同的擬合特性,這個也得就具體問題具體分析的。
L0範數
L0範數是指向量中非0的元素的個數。如果用L0範數來規則化一個參數矩陣W的話,就是希望W的大部分元素都是0,換句話說,讓參數W是稀疏的。
但是一般稀疏都會想到L1範數,所以我來講講L1範數。
L1範數
L1範數是指向量中各個元素絕對值之和,也叫「稀疏規則運算元」(Lasso Regularization)。
L1範數會使權值稀疏?
因為它是L0範數的最優凸近似。實際上,任何的規則化運算元,如果它在的地方不可微,並且可以分解為一個「求和」的形式,那麼這個規則化運算元就可以實現稀疏。這說是這麼說,W的L1範數是絕對值,|w|在w=0處是不可微,但這還是不夠直觀,所以需要和L2範數進行對比分析。
既然L0可以實現稀疏,為什麼不用L0,而要用L1呢?
原因:一是因為L0範數很難優化求解(NP難問題),二是L1範數是L0範數的最優凸近似,而且它比L0範數要容易優化求解。
L2範數
L2範數:,在回歸裡面,它的回歸叫「嶺回歸」(Ridge Regression),也叫它「權值衰減weight decay」。這用的很多,因為它的強大功效是改善機器學習裡面一個非常重要的問題:過擬合。至於過擬合是什麼,自己查查(O(∩_∩)O~~,很簡單的知識點)。通俗的講就是應試能力很強,實際應用能力很差。例如下圖所示(來自Ng的course):
為什麼L2範數可以防止過擬合?
L2範數是指向量各元素的平方和然後求平方根。為了讓L2範數的規則項最小,可以使得W的每個元素都很小,都接近於0,但與L1範數不同,它不會讓它等於0,而是接近於0,這裡是有很大的區別。
而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。為什麼越小的參數說明模型越簡單?原因:限制參數很小,實際上就限制了多項式某些分量的影響很小,這樣就相當於減少參數個數。
總結:通過L2範數,可以實現了對模型空間的限制,從而在一定程度上避免了過擬合。
推薦閱讀:
※27個機器學習圖表,幫你作弊一般飛速成長!
※有關anonymized data的競賽
※Numpy複習總結(一)
※《StackGAN: Text to Photo-realistic Image Synthesis with Stacked GAN》閱讀筆記
※關於Kaggle的一些數據分析