「機器學習速成」稀疏性正則化:L1正則化

dicksonjyl560101發表於2019-06-24

https://www.toutiao.com/a6705383097346589198/



  2019-06-22 23:52:29

大家好,今天我們學習【機器學習速成】之 稀疏性正則化:L1正則化。

我們  馬上學三點  ,

  1. 稀疏特徵的組合問題
  2. L1正則化
  3. L1和L2正則化區別

大家可以點選下面的“  瞭解更多  ”,或搜尋“  馬上學123  ”,線上觀看PPT講義。

稀疏特徵的組合: 舉例

我們之前的教程中, 學習了特徵組合好處。 特徵組合可能很棒, 但也可能會帶來一些問題。 尤其是將 稀疏特徵組合 起來的時候。

舉例:

假如我們有一個全球的的住房資料集, 如果按分(360度,每度為 60 分)對全球緯度進行分桶, 則在一次稀疏編碼過程中會產生大約 1 萬個維度; 如果按分對全球經度進行分桶, 則在一次稀疏編碼過程中會產生大約 2 萬個維度。 經緯度的特徵組合會產生大約 2 億個維度。 這 2 億個維度中的很多維度 代表 非常有限的居住區域(例如海洋裡) , 很難使用這些資料進行有效泛化。

稀疏特徵的組合問題

稀疏特徵組合可能會大大 增加特徵空間

這也意味著, 模型大小會驟然增大, 侵佔記憶體 , 還可能會減緩執行時間。

即便我們擁有大量的訓練資料, 但其中仍有許多組合會非常罕見, 因此我們最終可能會 得到一些噪聲係數 , 並可能遇到 過擬合問題

可想而知,如果遇到過擬合問題, 我們就要進行正則化。 現在我們要說的是, 能不能以特定方式進行正則化,  既能縮減模型大小,又能降低記憶體使用量

我們要做的就是將部分權重設為0, 這樣就不必處理其中的一些特定組合了。 這樣既節省了記憶體, 還有可能幫助我們解決過擬合問題。 不過必須小心一點, 因為我們只想去掉那些額外的噪音係數, 而不想失去正確的係數。

L0 正則化

所以我們要做的就是明確地 將權重設為0 , 也就是所謂的L0正則化。

L0正則化減少模型中的非零係數值的計數, 只有在模型能夠與資料擬合時增加此計數才有意義。 這種方式只會因存在不為0的權重而處罰您。

但是,它 沒有凸性、難以優化 , 並存在某種逗號尾隨問題。

L1正則化

要是我們改為將條件放寬至L1正則化, 只對 權重的絕對值總和進行處罰 。 那麼我們仍可以促使模型變得非常稀疏, L1正則化會讓其中的 許多係數歸零

您可以將  L1 的導數 的作用理解為 每次從權重中 減去一個常數 。 不過,由於減去的是絕對值, L1 在0處具有不連續性, 這會導致與0相交的減法結果變為0。 例如,如果減法使權重從 +0.1 變為 -0.2, L1 便會將權重設為 0。 就這樣,L1 使權重變為 0 了。

L1 正則化,減少所有權重的絕對值, 證明對寬度模型非常有效。


L1 和 L2 正則化

這種正則化與L2正則化略有不同, 後者也會嘗試設定較小的權重, 但實際上並不會幫助您讓權重歸零。

比較 L1 和 L2 正則化對權重網路的影響:

「機器學習速成」稀疏性正則化:L1正則化

L1 和 L2 正則化對權重網路的影響

L2 和 L1 採用不同的方式降低權重:

  • L2 會降低權重2。
  • L1 會降低 |權重|。

因此,L2 和 L1 具有不同的導數:

  • L2 的導數為 2 * 權重。
  • L1 的導數為 k(一個常數,其值與權重無關)。

您可以將  L2  的導數的作用理解為 每次移除權重的 x% 。對於任意數字,即使按每次減去 x% 的幅度執行數十億次減法計算,最後得出的值也絕不會正好為 0,L2 通常不會使權重變為 0。


總結:

  • 稀疏特徵組合可能會大大增加特徵空間,模型大小可能會變得龐大
  • L1 正則化,對絕對值(權重)之和進行懲罰
  • L1 的導數的作用理解為每次從權重中減去一個常數
  • L2 的導數的作用理解為每次移除權重的 x%,L2 通常不會使權重變為 0

這裡講了三點,關鍵詞有哪幾個?

提問!我們應該如何選擇L1和L2正則化?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2648606/,如需轉載,請註明出處,否則將追究法律責任。

相關文章