本文作為學習筆記,內容摘抄自網頁+自己的感想。如有錯誤的地方,還望指正。
為了更快地熟悉機器學習,本文總結了在機器學習中關於監督學習最小化問題的一般思想。內容有如下兩個方面:
監督學習最小化問題的通用目標函式
機器學習中的監督學習問題通常即是在規則化引數的同時最小化誤差。最小化誤差是為了讓模型擬合訓練資料,而規則化引數是防止模型過分擬合訓練資料,但訓練誤差小並不是最終目標,最終目標是希望模型的測試誤差小,也就是能準確的預測新樣本。所以需要保證模型“簡單”的基礎上最小化訓練誤差,這樣得到的引數才具有良好的泛化效能(也就是測試誤差也小),而模型“簡單”就是通過規則函式來實現的。
通常情況下,監督學習可以看作最小化下面的目標函式:
(正則化代價函式)=(經驗代價函式)+(正則化引數)×(正則化項)
經驗代價函式是為了測量模型預測與實際結果的誤差,因為要擬合訓練樣本,所以要求這一項最小,也就是要求模型儘量的擬合訓練資料。但不僅需要保證訓練誤差最小,更希望模型的測試誤差小,故需要加上(正則化引數)×(正則化項)來約束模型儘可能的簡單。
機器學習中大部分帶參模型都和這個型很相似,大部分情況下就是變換這兩項。對於第一項損失函式,如果是Square Loss,那就是最小二乘了;如果是Hing Loss,那就是著名的SVM了;如果是Exp-Loss,那就是Boosting了;如果是Log-Loss,那就是Logistic Regression了。不同的Loss函式具有不同的擬合特性,得具體問題具體分析。
正則化項
本文主要闡述下L0範數,L1範數與L2範數分別具有的意義及作用。
* L0範數
L0範數是指向量中非0元素的個數。如果用L0範數來規則化一個引數矩陣W的話,就是希望W的大部分元素都是0,換句話說,讓引數W是稀疏的。(L0範數很難優化求解,屬於NP難問題,而L1範數是L0範數的最優凸近似,且L1範數比L0範數更容易優化求解,故一般稀疏都會想到L1範數)
* L1 範數
L1範數是指向量中各個元素的絕對值之和,也叫“稀疏規則運算元”(Lasso Regularization)。L1範數可以進行特徵選擇,即讓特徵的係數變為0。
L1範數為什麼會使權值稀疏????
因為L1範數是L0範數的最優凸近似。實際上,任何的規則化運算元,如果它在Wi=0的地方不可微,並且可以分解為一個“求和”的形式,那麼這個規則化運算元就可以實現稀疏。這說是這麼說,W的L1範數是絕對值,|W|在W=0處是不可微的,但這還是不夠直觀,所以需要和L2範數進行對比分析。
* L2範數
L2範數是指向量中各元素的平方和然後求平方根,記為||W||2。在迴歸裡面,它的迴歸叫“嶺迴歸”(Ridge Regression),也叫它“權值衰減weight decay”。L2範數可以防止過擬合,提升模型的泛化能力。
為什麼L2範數可以防止過擬合????
為了讓L2範數的規則項||W||2最小,可以使得W的每個元素都很小,都接近於0,但與L1範數不同,L2範數不會讓它等於0,只是接近於0,這裡有很大的區別。
而越小的引數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。為什麼越小的引數說明模型越簡單?原因:限制引數很小,實際上就限制了多項式某些分量的影響很小,這就相當於減少引數個數。
L1與L2 範數的區別
- 下降速度:最小化權值引數L1比L2變化的快
- 模型空間的限制:L1會產生稀疏,L2不會。通過L2範數,可以實現對模型空間的限制,從而在一定程度上避免了過擬合。
- 特徵是否為0:L1會趨向於產生少量的特徵,而其他的特徵都是0;L2會選擇更多的特徵,但這些特徵都只是會接近於0並非取值為0。
[內容出處]
zhuanlan.zhihu.com/p/23503640
zhuanlan.zhihu.com/p/28023308