1. 程式人生 > >為何說L1正則化會使得權重變得稀疏?

為何說L1正則化會使得權重變得稀疏?

為何說L1正則化會使得權重變得稀疏?

前言

本文是筆者在學習吳恩達的深度學習課程時,在課程討論區看到的相關討論,加上筆者自己的理解整理而成。

正則化的作用

先說說正則化的概念:正則化是用以防止過擬合的一種手段。而過擬合可以這麼理解:由於部份係數過大,導致決策邊界變得十分崎嶇,不規則及難以預測,如右下圖。

來自吳恩達深度學習系列課程-課程二第一週的圖片:
來自吳恩達深度學習系列課程-課程二第一週的圖片

正則化的用途則是讓係數變小,從而讓決策邊界變得平緩一些。根據公式,使用正則化是在計算loss時順便加上了係數的平方和(L2正則化)或是係數絕對值的和(L1正則化),用以作為對係數的懲罰,這也是有時候會聽到L1-penalty,L2-penalty的原因。在模型進行訓練的時候,會將係數的大小一併考慮進去,優先選擇導致penalty較小的係陣列合。

L1與L2正則化的區別

從公式上看,在L2正則化中,原來較大的係數所貢獻的loss會因為平方項的緣故變得更大,這會將模型訓練時要優化的目標引導到這些較大的係數上面;反過來看,如果使用L1正則化,讓係數100變成99與讓係數1變成0的效益是等價的,意即在訓練過程中,要選擇使得哪一個係數變得更小時,是沒有任何偏好的。從這個角度來看,L2正則化會關注較大的係數,L1正則化則對所有的係數保持同等關注。因此比起L2正則化,使用L1正則化有更大的機會使得權重變得稀疏。在這裡權重的稀疏與否其實是相對的概念,與其說使用L1正則化使得權重變得稀疏,筆者更喜歡說成L2正則化防止權重變得稀疏!