關於L1和L2正則

2021-08-16 20:53:28 字數 759 閱讀 7312

l0範數表示向量中非零元素的個數:

也就是如果我們使用l0範數,即希望

w的大部分元素都是0

. (w是稀疏的)所以可以用於ml中做

稀疏編碼

,特徵選擇。通過最小化l0範數,來尋找

最少最優的稀疏特徵項

。但不幸的是,l0範數的最優化問題是乙個np hard問題,而且理論上有證明,l1範數是l0範數的最優凸近似,因此通常使用l1範數來代替。

l1範數表示向量中每個元素絕對值的和:

l1範數的解通常是

稀疏性的,傾向於選擇

數目較少的一些非常大的值

或者數目較多的insignificant的小值

。l2範數即歐氏距離:

l2範數越小,可以

使得w的每個元素都很小,接近於0

,但l1範數不同的是他不會讓它等於0而是接近於0.

l1範數與l2範數的比較:

但由於l1範數並沒有平滑的函式表示,起初l1最優化問題解決起來非常困難,但隨著計算機技術的到來,利用很多凸優化演算法使得l1最優化成為可能。

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

L1和L2正則化

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

l1和l2正則化

import tensorflow as tf import tensorflow.contrib as contrib weight tf.constant 1.0,2.0 3.0,4.0 with tf.session as sess print sess.run contrib.layers....

L1和L2正則整理

四 l0範數與l1範數區別 五 為什麼說 l1正則化相當於對模型引數w引入了拉普拉斯先驗,l2正則化相當於引入了高斯先驗 l1和l2正則化的目標是以不同的方式使引數減小,越小的引數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象,提高模型泛化能力。l1正則即將權重引數的絕對值之和加入到損失函式中...