L1和L2正規化 範數

2021-09-30 00:19:26 字數 1044 閱讀 4686

範數是形容乙個公式具有廣泛性, 類似於有人指桑罵槐但不說名字, 但一旦說了名字這句話就有意義了.

l1l2都從l-p範數中得來, 1和2就是p=1和p=2的結果. 雖然p可以隨便取, 但有被人提到的也只有0,1,2這三個值.

l0範數僅靠p=0代入l-p範數是很迷惑的, 既有0次方也有0次開方, 數學上的表示就很怪, 所以雖然經過簡化變成了"統計w中非零元素的個數"的範數, 但還是被拋棄了. 將它放在損失函式裡, 為了讓損失函式l降為0, l0範數就必須也逼近0, 即讓在w中統計到的非零個數逼近0, 也就相當於逼迫w變成乙個0盡可能多的矩陣. 0多的矩陣也就是稀疏矩陣, 而稀疏矩陣能幫助我們降低網路複雜度(w中0對應的特徵就沒有用了, 可以刪除).

l1在功能上和l0一樣, 不用l0純粹是因為它在數學上很難解釋, 沒法說服人, 很玄學. 所以就放寬到1和2.

l1是取w的所有值的絕對值加和, 再乘權重λ.

l 1=

λ∣∣w

∣∣

l1 = λ||w||

l1=λ∣∣

w∣∣λ一般由經驗得出, 就像訓練時選擇學習率一般在0.1~1一樣. 不過我經驗不足, 不知道怎麼選.

l 2=

0.5λ∣∣

w∣∣2

l2 = 0.5λ||w||^2

l2=0.5

λ∣∣w

∣∣2y=x

2y=x^2

y=x2

的影象都會畫, l2的影象和它一樣, 所以0附近l2的導數為0, 這是缺點也是優點.

對於w來說, 它的值越跳脫, 模型複雜度就越高, 就越容易過擬合, 加上了l2限制, 它過擬合的路子就被掐斷了, 因為但凡w中有乙個值很大, 它的平方就特別大, 損失函式l就很大, 反向傳播就可以逼迫w不要那麼大. 這是優點.

但無法下降到0也就沒有了讓矩陣稀疏的能力, 這是缺點.

回頭看l1, 它可以讓矩陣稀疏, 那有沒有降低複雜度的功能呢? 有,但缺了平方就很弱, 和l2比效率上不足.

有人總結, l1用於降維(矩陣稀疏), l2用於處理過擬合, 就功能上來說確實如此, 但兩者其實都有點對方的影子.

L1範數與L2範數對比

l0範數是指向量中非0的元素的個數。l0範數很難優化求解 l1範數是指向量中各個元素絕對值之和 l2範數是指向量各元素的平方和然後求平方根 l1範數可以進行特徵選擇,即讓特徵的係數變為0.l2範數可以防止過擬合,提公升模型的泛化能力,有助於處理 condition number不好下的矩陣 資料變化...

深度學習 L1及L2範數

在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差。最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。引數太多,會導致模型複雜度上公升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數才能...

L1和L2正則化

l1和l2正則化 l1與l2正則化都是防止模型過擬合,其方式略有不同。具體請見下文。1 l1 正則化l1正則化 1範數 是指,各權值 變數 特徵 絕對值之和。其作用是產生權值的稀疏模型,也就是讓大部分權值為0.為什麼能產生權值稀疏模型?因為如下圖所示,各權值絕對值之和後得到乙個矩陣,很容易在矩陣的頂...