過度拟合是當機器學習或統計模型針對特定機器學習數據集定制并且無法泛化到其他數據集時發生的現象。這通常發生在複雜的機器學習模型中,如深度神經網絡。
正則化是引入附加信息以防止過度拟合的過程。本文的重點是L1和L2正則化。
有很多解釋有點過于抽象,在本文中,我将與您分享一些直覺,為什麼L1和L2使用梯度下降。梯度下降隻是一種使用梯度值通過(叠代)更新找到“正确”系數的方法。
L1和L2L1和L2正則化的名稱分别來源于向量w的L1和L2範數。。這是關于規範的入門讀物:
1-norm (也稱為L1範數)
2-norm (也稱為L2範數或歐幾裡德範數)
p -norm
實現正則化的L1範數的線性回歸模型稱為套索回歸(lasso regression),實現正則化的L2範數的線性回歸模型稱為嶺回歸(ridge regression)。要實現這兩個,請注意線性回歸模型保持不變:
但損失函數的計算包含了這些正則化項:
沒有正則化的損失函數
L1正則化的損失函數
L2正則化的損失函數
正則化項是“限制”,通過該最小化損失函數時,除了具有以最小化真之間的誤差的優化算法必須“堅持” ÿ和預測ŷ。
模型為簡單起見,我們定義一個簡單的線性回歸模型ŷ與一個獨立變量。
在這裡,我使用了深度學習慣例w('weight')和b('bias')。
在實踐中,簡單的線性回歸模型不容易過度拟合。如引言中所述,深度學習模型由于其模型複雜性而更容易受到此類問題的影響。
因此,請注意本文中使用的表達式很容易擴展到更複雜的機器學習模型,而不僅限于線性回歸。
損失函數然後我們将損失函數定義為平方誤差,其中誤差是y(真實值)和ŷ(預測值)之間的差異。我們稱這個損失函數為L。
沒有正則化的損失函數
假設我們的模型将使用此損失函數進行過度拟合。
L1正則化的損失函數
根據我們的損失函數,在L中加入L1正則化項如下:
其中正則化參數λ > 0被手動調整。注意,除了w=0時,|w|在任何地方都是可微的,如下所示。我們稍後會需要這個。
L2正則化的損失函數
把L2的正則化項加到L中是這樣的:
其中,λ > 0。
梯度下降現在,我們用梯度下降優化法來求w。
求L 、L0、 L1的梯度
L:
L1:
L2:
如何防止過度拟合?
讓我們在上面的等式中執行以下替換:
- η = 1,
- H = 2x(wx by)
因此我們有如下:
L:
L1:
L2:
觀察具有和不具有正則化參數λ的權重更新之間的差異。
L vs. {L1和L2}
直覺A:
讓我們用等式說明。等式0執行w-H給我們一個導緻過度拟合的w值。直觀地說,等式1.1-2會減少過度拟合,因為引入的λ。
直覺B:
讓我們說一個過度拟合的模型意味着我們有一個非常拟合我們模型的w值。“完美”意味着如果我們在模型中替換數據(x),我們的預測ŷ将非常接近真實的y。當然,這很好,但我們不希望完美。為什麼?因為這意味着我們的模型僅适用于我們訓練的數據集。這意味着我們的模型将産生遠離其他數據集的真實值的預測。所以我們從不完美的角度來解決,希望我們的模型也可以與其他數據進行密切的預測。為了做到這一點,有了等式1.1-2中的λ懲罰項。
直覺C:
請注意,H取決于機器學習模型(w和b)和數據(x和y)。僅根據公式中的模型和數據更新權重。等式0會導緻過度拟合,從而導緻泛化不佳。另一方面,在等式1.1-2中,w的最終值不僅由模型和數據的影響,還由預定義的參數λ影響。因此,如果我們設置适當的λ值,我們可以防止過度拟合(雖然太大的值會導緻模型嚴重不拟合)。
L1與L2
直覺D:
我們現在将注意力集中在L1和L2上,并重寫等式1.1-2(通過重新排列其λ和H項如下):
L1:
L2:
對于L1(公式3.1),如果w為正,則正則化參數λ > 0将通過從w減去λ而将w變得更小。在等式3.2,w為負,則将λ加到w,推動它減去負值。因此,這具有将w推向0的效果。
這在單變量線性回歸模型中當然是毫無意義的,但是它将證明在多變量回歸模型中“去除”無用變量是非常有用的。您還可以将L1視為減少模型中的特征數量。以下是L1嘗試在多元線性回歸模型中的示例:
雖然L1取決于W的符号, L2則不管它的符号是什麼,隻要把w推開。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!