l1正則化和l2正則化可以看成是損失函式的懲罰項,「懲罰」就是對損失函式中的某些引數做一些限制。對於線性回歸模型,使用l1正則化的模型建叫做lasso
回歸,使用l2正則化的模型叫做ridge
回歸(嶺回歸)。
l1正則化和l2正則化說明如下:
一般會在正則化項之前新增乙個係數,python中用α表示,一些文章也用λ表示。這個係數需要使用者指定。
那新增l1和l2正則化有什麼用?下面是l1正則化和l2正則化的作用,這些表述可以在很多文章中找到。
稀疏矩陣指的是很多元素為0,只有少數元素是非零值的矩陣,即得到的線性回歸模型的大部分係數都是0. 通常機器學習中特徵數量很多,例如文字處理時,如果將乙個片語(term)作為乙個特徵,那麼特徵數量會達到上萬個(bigram)。在**或分類時,那麼多特徵顯然難以選擇,但是如果代入這些特徵得到的模型是乙個稀疏模型,表示只有少數特徵對這個模型有貢獻,絕大部分特徵是沒有貢獻的,或者貢獻微小(因為它們前面的係數是0或者是很小的值,即使去掉對模型也沒有什麼影響),此時我們就可以只關注係數是非零值的特徵。這就是稀疏模型與特徵選擇的關係。
通過l1正則項來選擇特徵:l1正則方法具有稀疏解的特性,因此天然具備特徵選擇的特性,但是要注意,l1沒有選到的特徵不代表不重要,原因是兩個具有高相關性的特徵可能只保留了乙個,如果要確定哪個特徵重要應再通過l2正則方法交叉檢驗;應該是說,分別使用l1和l2擬合,如果兩個特徵在l2中係數相接近,在l1中乙個係數為0乙個不為0,那麼其實這兩個特徵都應該保留,原因是l1對於強相關特徵只會保留乙個。
二維平面下l2正則化的函式圖形是個圓,與方形相比,被磨去了稜角。因此j0與l相交時使得w1或w2 等於零的機率小了許多,這就是為什麼l2正則化不具有稀疏性的原因。
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範數指的是向量中非零元素的個數,l0正則化就是限制非零元素的個數在一定的範圍,這很明顯會帶來稀疏。一般而言,用l0範數實現稀疏是乙個np hard問題,因此人們一般使用l1正則化來對模型進行稀疏約束。稀疏性 參考 另外一種解釋 假設費用函式l與某個引數w的關係如圖所示 則最優的 w在綠點處,w非...