L1和L2正則整理

2021-09-24 16:00:32 字數 2026 閱讀 7785

四、l0範數與l1範數區別

五、為什麼說「l1正則化相當於對模型引數w引入了拉普拉斯先驗,l2正則化相當於引入了高斯先驗」?

l1和l2正則化的目標是以不同的方式使引數減小,越小的引數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象,提高模型泛化能力。

l1正則即將權重引數的絕對值之和加入到損失函式中,以二元線性回歸為例,損失函式變為:

l2正則即將權重引數的平方之和加入到損失函式中,以二元線性回歸為例,損失函式變為:

1、l1正則化是指在損失函式中加入權值向量w的絕對值之和,即各個元素的絕對值之和,l2正則化指在損失函式中加入權值向量w的平方和。

2、l1的功能是使權重稀疏,正則化項非0引數,優化這個直接等於求稀疏解,而l2的功能是使權重平滑

3、l2的解空間為圓形的(平方畫出來是圓形),而l1的解空間為菱形(絕對值畫出來為菱形)

4、從貝葉斯角度來看,l1正則化相當於對模型引數w引入了拉普拉斯先驗,l2正則化相當於引入了高斯先驗

解釋:當均值為0時,高斯分布在極值點處是平滑的,也就是高斯先驗分布認為w在極值點附近取不同值的可能性是接近的,在零附近的概率較大。但對拉普拉斯分布來說,其極值點處是乙個尖峰,所以拉普拉斯先驗分布中引數w取值為0的可能性要更高,因此l1正則化相比於l2正則化更容易使引數為0,l2正則化相比於l1正則化更容易使引數分布在乙個很小的範圍內。

5、l1正則化相比於l2正則化更容易使引數為0,l2正則化相比於l1正則化更容易使引數分布在乙個很小的範圍內

三種答案,分別從解空間,先驗分布,函式疊加來闡述。

函式疊加解答

詳見王贇 maigo的回答

兩種 regularization 能不能把最優的 x 變成 0,取決於原先的函式在 0 點處的導數。如果本來導數不為 0,那麼施加 l2 regularization 後導數依然不為 0,最優的 x 也不會變成 0。而施加 l1 regularization 時,只要 regularization 項的係數 c 大於原先費用函式在 0 點處的導數的絕對值,x = 0 就會變成乙個極小值點。

加入l1正則項後,目標函式變為l(w)+c|w|,單就正則項部分求導,原點左邊的值為-c,原點右邊的值為c,因此,只要原目標函式的導數絕對值|l』(w)|加入l2正則項後,目標函式變為l(w)+cw^2,只要原目標函式在原點處的導數不為0,那麼帶l2正則項的目標函式在原點處的導數就不為0,那麼最小值就不會在原點。因此l2正則只有減少w絕對值的作用,但並不能產生稀疏解。

l0範數是指向量中非0的元素的個數, l1範數是指向量中各個元素絕對值之和,也叫稀疏規則運算元,l1範數是l0範數的最優凸近似。(任何的規則化運算元,如果他在wi=0的地方不可微,並且可以分解為乙個「求和」的形式,那麼這個規則化運算元就可以實現稀疏。)

那麼l0可以實現稀疏,為什麼不用l0,而要用l1呢?

一是因為l0範數很難優化求解(np難問題),二是l1範數是l0範數的最優凸近似,而且它比l0範數要容易優化求解。

L1和L2正則化

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

關於L1和L2正則

l0範數表示向量中非零元素的個數 也就是如果我們使用l0範數,即希望 w的大部分元素都是0 w是稀疏的 所以可以用於ml中做 稀疏編碼 特徵選擇。通過最小化l0範數,來尋找 最少最優的稀疏特徵項 但不幸的是,l0範數的最優化問題是乙個np hard問題,而且理論上有證明,l1範數是l0範數的最優凸近...

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....