**:
神經網路中損失函式後一般會加乙個額外的正則項l1或l2,也成為l1範數和l2範數。正則項可以看做是損失函式的懲罰項,用來對損失函式中的係數做一些限制。
正則化描述:
l1正則化是指權值向量w中各個元素的絕對值之和;
l2正則化是指權值向量w中各個元素的平方和然後再求平方根;
一般都會在正則化項之前新增乙個係數,這個係數需要使用者設定,係數越大,正則化作用越明顯。
正則化作用:
l1正則化可以產生稀疏權值矩陣,即產生乙個稀疏模型,可以用於特徵選擇,一定程度上,l1也可以防止過擬合;
l2正則化可以防止模型過擬合(overfitting);
何為稀疏矩陣
稀疏矩陣指的是很多元素為0,只有少數元素是非零值的矩陣。
神經網路中輸入的特徵數量是龐大的,如何選取有效的特徵進行分類是神經網路的重要任務之一,如果神經網路是乙個稀疏模型,表示只有少數有效的特徵(係數非0)可以通過網路,絕大多數特徵會被濾除(係數為0),這些被濾除的特徵就是對模型沒有貢獻的「無關」特徵,而少數係數是非0值的特徵是我們需要額外關注的有效特徵。也就是說,稀疏矩陣可以用於特徵選擇。
l1正則化是怎麼做到產生稀疏模型的?
假設有如下帶l1正則化的損失函式:
loss = loss_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的圖形就越大。
l2正則化是怎麼做到防止模型過擬合的?
仍以最簡單的模型,只有兩個權重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圖形越小,對應矩陣係數越小。
神經網路損失函式的正則化
無論l1 l2正則化方法,本質上都是乘法引數w使其等於或者趨向於0 但有沒有可能有一種正則化方法會使引數w趨向於非零值呢?答案是 可以這樣做 將w約束到a附近。為什麼會產生這樣的結果呢?可以從兩種角度去解釋 解釋1 黃色區域表示正則項限制,藍色區域表示優化項的等高線,要滿足在二者交點上的點才符合最優...
神經網路損失函式
2018,aug 3 顧名思義,從標題就能知道損失函式 loss function 一定就是來計算神經網路在訓練中的損失的。說完了定義那到了舉例時間了 主要拿softmax loss來分析 這裡的k也就是我們分類的類別。然後這個函式是怎麼用的呢,我們可以簡單的舉乙個分類的例子來看下。假設我們輸入一張...
神經網路 損失函式
開始之前我們先進入數字識別這樣乙個場景 以識別數字1為例,神經網路模型的輸出結果越接近 0,1,0,0,0,0,0,0,0,0 越好。神經網路解決多分類的問題,最常見的方法是設定n個輸出節點,其中n類別個數,那麼上述數字判斷就應該有n 10個輸出。那麼如何判斷乙個輸出向量和期望向量的接近程度呢?交叉...