作為損失函式
L1范數損失函式
L1范數損失函式,也被稱之為平均絕對值誤差(MAE),總的來說,它把目標值$Y_i$與估計值$f(x_i)$的絕對差值的總和最小化,
$$S=\frac{1}{N}\sum_{i=1}^n|Y_i-f(x_i)|$$
# tensorflow tf.reduce_mean(tf.abs(logits - labels)) # numpy np.sum(np.abs(logits-labels))
L2范數損失函式
L2范數損失函式,也被稱為均方誤差(MSE, mean squared error),總的來說,它把目標值$Y_i$與估計值$f(x_i)$的差值的平方和最小化,
$$S=\frac{1}{N}\sum_{i=1}^n(Y_i-f(x_i))^2$$
| L1損失函式 | L2損失函式 |
| 魯棒 | 不是很魯棒 |
| 不穩定性 | 穩定解 |
| 可能多個解 | 總是一個解 |
總結一下:L2范數loss將誤差平均化(如果誤差大于1,則誤差會放大很多),模型的誤差會比L1范數來得大,因此模型會對樣本更加敏感,這就需要調整模型來最小化誤差,如果有個樣本是一個例外值,模型就需要調整以適應單個的例外值,這會犧牲許多其他正常的樣本,因為這些正常的樣本的誤差比這單個的例外值的誤差小,
# ----- tensorflow ----- # tf.reduce_mean((labels-logits) ** 2) # 或者使用 mean_squared_error 函式 tf.losses.mean_squared_error(labels, logits) # ----- numpy ----- # np.sum(np.square(y_true-y_pre))
作為正則化
我們經常會看見損失函式后面添加一個額外項,一般為L1-norm,L2-norm,中文稱作L1正則化和L2正則化,或者L1范數和L2函式,
L1正則化和L2正則化可以看做是損失函式的懲罰項,所謂『懲罰』是指對損失函式中的某些引數做一些限制,防止模型過擬合而加在損失函式后面的一項,
L1正規化
L1范數符合拉普拉斯分布,是不完全可微的,表現在影像上會有很多角出現,這些角和目標函式的接觸機會遠大于其他部分,就會造成最優值出現在坐標軸上,因此就會導致某一維的權重為0 ,產生稀疏權重矩陣,進而防止過擬合,
最小平方損失函式的L1正則化:

L1正則化是指權值向量$w$中各個元素的絕對值之和
L2正規化
L2范數符合高斯分布,是完全可微的,和L1相比,影像上的棱角被圓滑了很多,一般最優值不會在坐標軸上出現,在最小化正則項時,可以是引數不斷趨向于0,最后活的很小的引數,
在機器學習中,正規化是防止過擬合的一種重要技巧,從數學上講,它會增加一個正則項,防止系數擬合得過好以至于過擬合,L1與L2的區別只在于,L2是權重的平方和,而L1就是權重的和,如下:
最小平方損失函式的L2正則化:

L2正則化是指權值向量$w$中各個元素的平方和然后再求平方根
作用
L1正則化
- 優點:輸出具有稀疏性,即產生一個稀疏模型,進而可以用于特征選擇;一定程度上,L1也可以防止過擬合
- 缺點:但在非稀疏情況下計算效率低
L2正則化:
- 優點:計算效率高(因為存在決議解);可以防止模型過擬合(overfitting)
- 缺點:非稀疏輸出;無特征選擇
稀疏模型和特征選擇:稀疏性我在這篇文章有詳細講解,如果特征符合稀疏性,說明特征矩陣很多元素為0,只有少數元素是非零的矩陣,表示只有少數特征對這個模型有貢獻,絕大部分特征是沒有貢獻的,或者貢獻微小(因為它們前面的系數是0或者是很小的值,即使去掉對模型也沒有什么影響),此時我們就可以只關注系數是非零值的特征,這就是稀疏模型與特征選擇的關系,
文獻[1]解釋了為什么L1正則化可以產生稀疏模型(L1是怎么樣系數等于0的),以及為什么L2正則化可以防止過擬合,由于涉及到很多公式,想要詳細了解的同學,請移步,
區別
1、L1正則化是模型各個引數的絕對值之和,
L2正則化是模型各個引數的平方和的開方值,
2、L1會趨向于產生少量的特征,而其他的特征都是0,產生稀疏權重矩陣,
L2會選擇更多的特征,這些特征都會接近于0,
再討論幾個問題
1.為什么引數越小代表模型越簡單?
越是復雜的模型,越是嘗試對所有樣本進行擬合,包括例外點,這就會造成在較小的區間中產生較大的波動,這個較大的波動也會反映在這個區間的導數比較大,
只有越大的引數才可能產生較大的導數,因此引數越小,模型就越簡單,
2.實作引數的稀疏有什么好處?
因為引數的稀疏,在一定程度上實作了特征的選擇,一般而言,大部分特征對模型是沒有貢獻的,這些沒有用的特征雖然可以減少訓練集上的誤差,但是對測驗集的樣本,反而會產生干擾,稀疏引數的引入,可以將那些無用的特征的權重置為0.
3.L1范數和L2范數為什么可以避免過擬合?
加入正則化項就是在原來目標函式的基礎上加入了約束,當目標函式的等高線和L1,L2范數函式第一次相交時,得到最優解,
損失函式
均方根誤差(RMSE)
$$RMSE=\sqrt{mse}=\sqrt{\frac{1}{N}\sum_{i=1}^n(Y_i-f(x_i))^2}$$
參考文獻
CSDN博客:機器學習中正則化項L1和L2的直觀理解
Differences between L1 and L2 as Loss Function and Regularization
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51635.html
標籤:其他
上一篇:【強化學習RL】model-free的prediction和control — MC, TD(λ), SARSA, Q-learning等
下一篇:樹莓派4B遇到的坑
