監督機器學習問題無非就是再規則化參數的同時最小化誤差。
- *最小化誤差是為了讓我們的模型擬合我們的訓練數據,而規則化參數是防止我們的模型過分擬合我們的訓練數據
規則化參數的作用:
- *使得模型簡單,且具有好的泛化性能(也就是測試誤差小)
- *將人對這個模型的先驗知識融入到模型的學習當中,使得模型具有稀疏、低秩、平滑等等特性。
規則化符合奧卡姆剃刀原理
- *思想:在所有可能選擇的模型中,我們應該選擇很好地解釋已知數據並且十分簡單的模型。規則化是結構風險最小化策略的實現,是在經驗風險上加了一個正則化項(regularizer)或者懲罰項(penalty term).
一般監督學習可以看做最小化下面的目標函數:
- *機器學習大部分模型目標函數基本都是如此,無非就是變換這兩項而已。
-第一項LOSS函數:
– square loss, 那就是最小二乘;
– log-Loss, 那就是Logistic Regression;
–Hinge Loss, 那就是SVM;
–exp-Losss, 那就是牛逼的Boosting了;
Lo,L1和L2范式的介紹如下:
L1:計算絕對值之和,用以產生稀疏性,因為它是L0范式的一個最優凸近似,容易優化求解
L2:計算平方和再開根號,L2范數更多是防止過擬合,並且讓優化求解變得穩定很快速(這是因為加入了L2范式之后,滿足了強凸)。
L1范數:



上圖中,藍色的圓圈表示原問題可能的解范圍,橘色的表示正則項可能的解范圍。而整個目標函數(原問題+正則項)有解當且僅當兩個解范圍相切。從上圖可以很容易地看出,由於2范數解范圍是圓,所以相切的點有很大可能不在坐標軸上(感謝評論區@臨熙指出表述錯誤),而由於1范數是菱形(頂點是凸出來的),其相切的點更可能在坐標軸上,而坐標軸上的點有一個特點,其只有一個坐標分量不為零,其他坐標分量為零,即是稀疏的。所以有如下結論,1范數可以導致稀疏解,2范數導致稠密解。那么為什么不用0范數呢,理論上它是求稀疏解最好的規范項了。然而在機器學習中,特征的維度往往很大,解0范數又是NP-hard問題,所以在實際中不可行。但是用1范數解是可行的,並且也可以得到稀疏解,所以實際稀疏模型中用1范數約束。
至此,我們總結一下,在機器學習中,以0范數和1范數作為正則項,可以求得稀疏解,但是0范數的求解是NP-hard問題; 以2范數作為正則項可以得到稠密解,並且由於其良好的性質,其解的定義很好,往往可以得到閉式解,所以用的很多。
為什么L1正則項可以做到把權重參數調整為0,實現稀疏化: https://liam0205.me/2017/03/30/L1-and-L2-regularizer/ 這篇文章講的不錯