1. 程式人生 > >L0、L1、L2範數學習筆記

L0、L1、L2範數學習筆記

1 L0範數

L0範數表示向量中非0元素的個數,即希望資料集中的大部分元素都是0(即希望資料集是稀疏的),

所以可以用於ML中做稀疏編碼,特徵選擇,即通過L0範數來尋找最少最優的稀疏特徵項。

但不幸的是,L0範數的最優化問題是一個NP hard問題,而且理論上有證明,L1範數是L0範數的最優凸近似,

因此通常使用L1範數來代替。

2 L1範數

常見應用為:Lasso Regression

L1範數表示向量中每個元素絕對值的和,L1範數的解通常是稀疏性的,

傾向於選擇數目較少的一些非常大的值或者數目較多的insignificant的小值。

3 L2範數

常見應用為:Ridge Regression

L2範數即歐氏距離,L2範數越小,可以使得w的每個元素都很小,接近於0,

但L1範數不同的是他不會讓它等於0而是接近於0.但由於L1範數並沒有平滑的函式表示,

起初L1最優化問題解決起來非常困難,但隨著計算機技術的到來,

利用很多凸優化演算法使得L1最優化成為可能。


從貝葉斯先驗的角度看,加入正則項相當於加入了一種先驗。即當訓練一個模型時,
僅依靠當前的訓練資料集是不夠的,為了實現更好的泛化能力,往往需要加入先驗項。

L1範數相當於加入了一個Laplacean先驗;
L2範數相當於加入了一個Gaussian先驗。

在機器學習中正則化是指在損失函式中通過引入一些額外的資訊,來防止ill-posed問題或過擬合問題。
一般這些額外的資訊是用來對模型複雜度進行懲罰(Occam's razor)。