神經網路損失函式中的正則化項L1和L2
正則化描述:
L1正則化是指權值向量w中各個元素的絕對值之和;L2正則化是指權值向量w中各個元素的平方和然後再求平方根;
一般都會在正則化項之前新增一個係數,這個係數需要使用者設定,係數越大,正則化作用越明顯。
正則化作用:
L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇,一定程度上,L1也可以防止過擬合;L2正則化可以防止模型過擬合(overfitting);
何為稀疏矩陣
稀疏矩陣指的是很多元素為0,只有少數元素是非零值的矩陣。神經網路中輸入的特徵數量是龐大的,如何選取有效的特徵進行分類是神經網路的重要任務之一,如果神經網路是一個稀疏模型,表示只有少數有效的特徵(係數非0)可以通過網路,絕大多數特徵會被濾除(係數為0),這些被濾除的特徵就是對模型沒有貢獻的“無關”特徵,而少數係數是非0值的特徵是我們需要額外關注的有效特徵。也就是說,稀疏矩陣可以用於特徵選擇。
假設有如下帶L1正則化的損失函式:
Loss_0是原始損失函式,L1是加的正則化項,α 是正則化係數,其中 L1 是 模型中權重 w 的絕對值之和。
神經網路訓練的目標就是通過隨機梯度下降等方法找到損失函式 Loss的最小值,加了L1之後,相當於對原始Loss_0做了一個約束,即在 L1 約束下求Loss_0最小值的解。對於最簡單的情況,假設模型中只有兩個權值 w1 和 w2 ,對於梯度下降法,可以分別畫出求解 Loss_0 和 L1 過程中的等值線,如下圖:
等值線是說在等值線上任一點處(取不同的w1和w2組合),模型計算的結果都是一樣的。
圖中彩色弧線是Loss_0的等值線,黑色方框是 L1的等值線。在圖中,當Loss_0等值線與L1圖形首次相交的地方就是一個最優解,這個相交的點剛好是L1的頂點。
注意到L1函式有很多個突出的點,二維情況下有4個,維數越多頂點越多,這些突出的點會比線段上的點有更大的機率首先接觸到 Loss_0的等值線,而這些頂點正好對應有很多權值為0的矩陣, 即稀疏矩陣,這也就是為什麼L1正則化可以用來產生稀疏矩陣進而用來進行特徵選擇的原因。
對於L1正則化前的係數α,是用來控制L1圖形的大小,α越大,L1中各個係數就相對越小(因為優化目標之一是α×L1的值趨近於0。α大,L1係數取值就會小),L1的圖形就越小; α越小,L1中各個係數就相對越大,L1的圖形就越大。
仍以最簡單的模型,只有兩個權重w1 和 w2為例,Loss_0和L2分別對應的等值線形狀如下圖:
由於L2是w1和w2平方和再開方,所以L2的圖形是一個圓。圓形相對方形來說沒有頂點,Loss_0 和 L2圖形相交使得 w1或者w2等於的概率大大減小,所以L2正則化項不適合產生稀疏矩陣,不適合用來選擇特徵。
相對來說,模型中所有矩陣係數都比較小的模型具有更強的抗干擾能力,也就是說可以避免過擬合。對於這種小系數的模型,特徵會乘以很小的係數,使得特徵的波動被壓縮,所以泛化能力更好。
L2正則化項的公式是所有權重係數平方之後再開方,所以在每次迭代過程中, 都會使得權重係數在滿足最小化Loss_0的基礎上,一步一步使得權重係數w1和w2趨向於0,最終得到權重係數很小的矩陣模型,達到防止過擬合的作用。
對於L1正則化項,如果α係數取很大,也會得到係數極小的最優解,這時的L1也具有防止過擬合的作用。L1和L2中的α係數的作用是類似的,α係數越大,正則化作用越明顯(但同時也可能意味著模型越難以收斂),從等值圖上直觀看就是L圖形越小,對應矩陣係數越小。
相關文章
- 理解神經網路的不同損失函式神經網路函式
- TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式,交叉熵筆記神經網路優化函式熵
- 神經網路基礎部件-損失函式詳解神經網路函式
- 使用PyTorch實現L1, L2和Elastic Net正則化PyTorchAST
- 機器學習中的範數規則化-L0,L1和L2正規化機器學習
- 神經網路最佳化篇:詳解正則化(Regularization)神經網路
- Java開發者的神經網路進階指南:深入探討交叉熵損失函式Java神經網路熵函式
- 例項解釋NLLLoss損失函式與CrossEntropyLoss損失函式的關係函式ROS
- L1 和L2(Frobenius弗羅貝尼烏斯)正則化複習筆記筆記
- 神經網路中常用的函式神經網路函式
- Pytorch中的損失函式PyTorch函式
- DDMP中的損失函式函式
- 【機器學習】--魯棒性調優之L1正則,L2正則機器學習
- Pytorch_第六篇_深度學習 (DeepLearning) 基礎 [2]---神經網路常用的損失函式PyTorch深度學習神經網路函式
- 機器學習之簡化正則化:L2 正則化機器學習
- 損失函式函式
- 神經網路的啟用函式總結神經網路函式
- 神經網路中使用的啟用函式神經網路函式
- 機器學習之稀疏性正則化:L1 正則化機器學習
- 「機器學習速成」稀疏性正則化:L1正則化機器學習
- 卷積神經網路-啟用函式卷積神經網路函式
- 3D高斯損失函式(2)新增BA最佳化和結構損失3D函式
- 3D高斯損失函式(1)單純損失函式3D函式
- 理解神經元和函式函式
- 損失函式綜述函式
- Triplet Loss 損失函式函式
- Pytorch 常用損失函式PyTorch函式
- 神經網路啟用函式=生物轉換器?神經網路函式
- [深度學習]L2正則化和權重衰退(Weight Decay)深度學習
- SSD的損失函式設計函式
- 人工智慧---神經網路啟用函式恆等函式、sigmoid函式、softmax函式詳解人工智慧神經網路函式Sigmoid
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- PyTorch:損失函式loss functionPyTorch函式Function
- TensorFlow損失函式專題函式
- 正則式 REGEX - 例項
- 卷積神經網路中的視覺化方法卷積神經網路視覺化
- 詳解常見的損失函式函式
- python之正則函式Python函式