L0/L1/L2范數的聯系與區別


L0/L1/L2范數的聯系與區別

標簽(空格分隔): 機器學習


最近快被各大公司的筆試題淹沒了,其中有一道題是從貝葉斯先驗,優化等各個方面比較L0、L1、L2范數的聯系與區別。

L0范數

L0范數表示向量中非零元素的個數:
\(||x||_{0} = \#(i)\ with\ \ x_{i} \neq 0\)

也就是如果我們使用L0范數,即希望w的大部分元素都是0. (w是稀疏的)所以可以用於ML中做稀疏編碼,特征選擇。通過最小化L0范數,來尋找最少最優的稀疏特征項。但不幸的是,L0范數的最優化問題是一個NP hard問題,而且理論上有證明,L1范數是L0范數的最優凸近似,因此通常使用L1范數來代替。

L1范數 -- (Lasso Regression)

L1范數表示向量中每個元素絕對值的和:
\(||x||_{1} = \sum_{i=1}^{n}|x_{i}|\)

L1范數的解通常是稀疏性的,傾向於選擇數目較少的一些非常大的值或者數目較多的insignificant的小值。

L2范數 -- (Ridge Regression)

L2范數即歐氏距離:
\(||x||_{2} = \sqrt{\sum_{i=1}^{n}x_{i}^{2}}\)

L2范數越小,可以使得w的每個元素都很小,接近於0,但L1范數不同的是他不會讓它等於0而是接近於0.

L1范數與L2范數的比較:
此處輸入圖片的描述

此處輸入圖片的描述
但由於L1范數並沒有平滑的函數表示,起初L1最優化問題解決起來非常困難,但隨着計算機技術的到來,利用很多凸優化算法使得L1最優化成為可能。

貝葉斯先驗

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

  • L1范數相當於加入了一個Laplacean先驗;
  • L2范數相當於加入了一個Gaussian先驗。
    如下圖所示:
    此處輸入圖片的描述

【Reference】
1. http://blog.csdn.net/zouxy09/article/details/24971995
2. http://blog.sciencenet.cn/blog-253188-968555.html
3. http://t.hengwei.me/post/淺談l0l1l2范數及其應用.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM