正則化 L1正則化(稀疏性正則化)

2022-03-31 05:07:39 字數 1554 閱讀 6934

稀疏向量通常包含許多維度。建立特徵組合會導致包含更多維度。由於使用此類高維度特徵向量,因此模型可能會非常龐大,並且需要大量的 ram。

在高維度稀疏向量中,最好盡可能使權重正好降至 0。正好為 0 的權重基本上會使相應特徵從模型中移除。 將特徵設為 0 可節省 ram 空間,且可以減少模型中的噪點。

以乙個涵蓋全球地區(不僅僅只是涵蓋加利福尼亞州)的住房資料集為例。如果按分(每度為 60 分)對全球緯度進行分桶,則在一次稀疏編碼過程中會產生大約 1 萬個維度;如果按分對全球經度進行分桶,則在一次稀疏編碼過程中會產生大約 2 萬個維度。這兩種特徵的特徵組合會產生大約 2 億個維度。這 2 億個維度中的很多維度代表非常有限的居住區域(例如海洋裡),很難使用這些資料進行有效泛化。 若為這些不需要的維度支付 ram 儲存費用就太不明智了。 因此,最好是使無意義維度的權重正好降至 0,這樣我們就可以避免在推理時支付這些模型係數的儲存費用。

我們或許可以新增適當選擇的正則化項,將這種想法變成在訓練期間解決的優化問題。

l2 正則化能完成此任務嗎?遺憾的是,不能。 l2 正則化可以使權重變小,但是並不能使它們正好為 0.0。

另一種方法是嘗試建立乙個正則化項,減少模型中的非零系數值的計數。只有在模型能夠與資料擬合時增加此計數才有意義。 遺憾的是,雖然這種基於計數的方法看起來很有吸引力,但它會將我們的凸優化問題變為非凸優化問題,即 np 困難。 (如果您仔細觀察,便會發現它與揹包問題關聯。) 因此,l0 正則化這種想法在實踐中並不是一種有效的方法。

不過,l1 正則化這種正則化項的作用類似 l0,但它具有凸優化的優勢,可有效進行計算。因此,我們可以使用 l1 正則化使模型中很多資訊缺乏的係數正好為 0,從而在推理時節省 ram。

l1 和 l2 正則化
l2 和 l1 採用不同的方式降低權重:

因此,l2 和 l1 具有不同的導數:

您可以將 l2 的導數的作用理解為每次移除權重的 x%。如 zeno 所知,對於任意數字,即使按每次減去 x% 的幅度執行數十億次減法計算,最後得出的值也絕不會正好為 0。(zeno 不太熟悉浮點精度限制,它可能會使結果正好為 0。)總而言之,l2 通常不會使權重變為 0。

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

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

引用

分類 (classification):**偏差

學習筆記 稀疏性正則化 l1正則化

還記得我們之前用經度和緯度來進行分箱嗎?僅僅是2個特徵進行分箱組合就讓我們的輸入特徵數量暴增。假設我們現在有k個特徵需要來分箱,每個分為長度為k的獨熱編碼。那麼我們輸入特徵就為 k k個,這種指數增長會占用我們大量ram。這是我們需要辦法來拯救我們的ram。那麼乙個好的方法就是讓我們的部分權重為0,...

L1正則化與稀疏性 L1正則化不可導問題

l1正則化與稀疏性 座標軸下降法 解決l1正則化不可導的問題 lasso回歸演算法 座標軸下降法與最小角回歸法小結 l1正則化使得模型引數具有稀疏性的原理是什麼?機器學習經典之作 pattern recognition and machine learning 中的第三章作出的乙個解釋無疑是權威且直...

損失函式L1正則化稀疏性

機器學習演算法中為了防止過擬合,會在損失函式中加上懲罰因子,即為l1 l2正則化。因此最終的優化目標函式為 f x l x c reg x c 0 本文只講解l1正則化,因此reg x x 首先l x 和reg x 都是連續函式,因此f x 也是連續函式 其次l x 和reg x 都是凸函式,因此f...