機器學習基礎__02__L1L2範數在機器學習中應用

目錄

1. 範數概念

2. 爲什麼L1有稀疏性?L2則沒有

3. 應用



1. 範數概念

範數是衡量某個向量空間(或矩陣)中的每個向量以長度或大小。
範數的一般化定義:對實數p>=1, 範數定義如下
                                  \|x\|_{p}:=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{\frac{1}{p}}

L1範數
當p=1時,是L1範數,其表示某個向量中所有元素絕對值的和,也叫“稀疏規則算子”。
                                 \|x\|_{1}:=\sum_{i=1}^{n}\left|x_{i}\right|

稀疏的意思是可以讓權重矩陣的一部分值等於0(如何做到?後面會講),但是一些參數仍然會比較大。
L1範數可以實現稀疏性,參數稀疏有兩個很好的作用:

  • 特徵選擇:選擇出與預測有關的特徵,無關的特徵參數爲0
  • 可解釋性:可以看出哪些特徵與預測相關

L2範數
當p=2時,是L2範數, 表示某個向量中所有元素平方和再開根號, 也就是歐幾里得距離公式。      
                                \|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}
L2範數與L1不同,他不會讓部分參數等於0,而是讓每個參數都接近於0。
L2範數最廣泛的應用是在損失函數中加入正則項,防止過擬合,提升模型的泛化能力。

L0範數
指向量中非零元素的個數。L0範數的最優化問題是NP,而且理論上有證明,L1範數是L0範數的最優凸近似,因此通常使用L1範數來代替。

一句話總結:
(1). L1是絕對值的和,L2是平方和再開根號
(2). L1讓部分參數等於0(特徵選擇/稀疏性),L2讓每個參數都接近0(防止過擬合) 

2. 爲什麼L1有稀疏性? L2則沒有

在用梯度下降法更新參數時,公式是:
\theta=\theta-\alpha \frac{\partial}{\partial \theta} J(\theta)
加入L1正則項:J=Loss+a \sum_{w}|w|

加入L2正則項:J=Loss+a \sum_{w} w^{2}注意L2正則項並沒有像L2範數中開根號


下面分別對L1/L2正則項求偏導:
\frac{d L_{1}(w)}{d w}=\operatorname{sign}(w)\frac{d L_{2}(w)}{d w}=w
公式與圖像一起服用,效果會更好哦。

在梯度更新時,不管 L1 的大小是多少(只要不是0)梯度都是1或者-1,所以每次更新時,它都是穩步向0前進。
而看 L2 的話,就會發現它的梯度會越靠近0,就變得越小。

也就是說加了 L1 正則的話基本上經過一定步數後很可能變爲0,而 L2 幾乎不可能,因爲在值小的時候其梯度也會變小。於是也就造成了 L1 輸出稀疏的特性

 

3. 應用

L1一般用於特徵選擇,L2一般用於防止過擬合。

L1符合拉普拉斯分佈,L2符合高斯分佈(正態分佈)

 

參考:
1. 範數在機器學習中的應用
2. 理解L1,L2 範數在機器學習中應用
3. L1符合拉普拉斯分佈,L2符合高斯分佈

發佈了90 篇原創文章 · 獲贊 9 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章