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正則即將權重引數的絕對值之和加入到損失函式中...