L0、L1和L2范數在機器學習中的用途


L0、L1和L2范數在機器學習中的用途

參考來源:https://zhuanlan.zhihu.com/p/28023308

結論1

  • L0范數:向量中非0元素的個數;
  • L1范數:向量中各個元素絕對值之和;
  • L2范數:向量中各元素的平方和在求平方根.

結論2

  • L1范數可以進行特征選擇, 即讓特征的系數變為0;
  • L2范數可以防止過擬合, 提升模型的泛化能力;
  • L1會趨向於產生少量的特征, 而其他的特征都是0;
  • L2會選擇更多的特征, 這些特征都會接近於0.

L0范數與L1范數

L0范數是指向量中非0的元素的個數. 如果我們用L0范數來規則化一個參數矩陣W的話, 就是希望W的大部分元素都是0, 換句話說, 讓參數W是稀疏的. 論文中經常見到“稀疏矩陣”, 稀疏卻都通過L1范數來實現的.

問題:①L1范數是什么?②它為什么可以實現稀疏?③為什么大家都用L1范數去實現稀疏, 而不是L0范數呢?

①L1范數是指向量中各個元素絕對值之和, 也叫“稀疏規則算子” (Lasso regularization).
②為什么L1范數會使權值稀疏?有人可能會這樣給你回答“它是L0范數的最優凸近似”. 實際上, 還存在一個更美的回答:任何的規則化算子, 如果他在Wi=0的地方不可微, 並且可以分解為一個“求和”的形式, 那么這個規則化算子就可以實現稀疏. 這說是這么說, W的L1范數是絕對值, |w|在w=0處是不可微.
③既然L0可以實現稀疏, 為什么不用L0, 而要用L1呢?個人理解一是因為L0范數很難優化求解 (NP難問題), 二是L1范數是L0范數的最優凸近似, 而且它比L0范數要容易優化求解.
總結: L1范數和L0范數可以實現稀疏, L1因具有比L0更好的優化求解特性而被廣泛應用.

L2范數

L2范數是指向量各元素的平方和然后求平方根. L2范數能改善機器學習里面一個非常重要的問題: 過擬合.

為什么L2范數可以防止過擬合?
L2范數是指向量各元素的平方和然后求平方根, 我們讓L2范數的規則項||W||^2最小, 可以使得W的每個元素都很小, 都接近於0, 但與L1范數不同, 它不會讓它等於0, 而是接近於0. 而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象.


免責聲明!

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



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