機器學習中經常遇到所謂的過擬合(overfitting)問題。所謂的過擬合問題, 是指某個模型在訓練資料上能夠獲得比其他模型更好的擬合,但是在訓練資料外的資料集上卻不能很好的擬合。其本質是,模型對於隨機錯誤或者雜訊的刻畫超過其對於真實資訊的刻畫。而出現這種現象的主要原因是訓練資料中存在噪音或者訓練資料太少。
所謂的正則化,是一種數學方法。它通過在模型中新增針對模型複雜度或者極端引數值的懲罰項來減少模型的過擬合程度。正則化方法可以應用於不同的模型中,包括線性回歸、邏輯回歸、支援向量機等等。
以線性回歸為例,正則化的形式可表示為中的第二項。它其實是模型中各係數的平方和乘以引數
λ 。l(
θ)=1
2m[∑
i=1m
(hθ(
x(i)
−y(i
))2)
+λ∑j
=1nθ
2j](1-1)
引數lamdda的選擇對於模型的效能至關重要:lamda的值過小,將導致正則化的作用微乎其微;lamda的值過大,將導致模型丟失有用的資訊,出現所謂的欠擬合。交叉驗證通常是確定lamda的值的最直接方法之一。
式所示的即為l2正則。而l2正則化又被成為ridge regularizer。它將視為懲罰物件。
將模型各係數絕對值的加和視為懲罰物件,被成為l1正則化。
l2正則化認為特徵的權重的先驗分布是乙個0附近的高斯分布
l1正則化認為特徵的權重的先驗分布是乙個0附近的拉普拉斯分布
下圖反映了無正則化、l2正則化和l1正則化對於模型係數的影響。
正則化 Dropout 與過擬合
正則化器允許在優化過程中對層的引數或層的啟用情況進行懲罰。網路優化的損失函式也包括這些懲罰項。懲罰是以層為物件進行的。具體的 api 因層而異,但dense,conv1d,conv2d和conv3d這些層具有統一的 api。正則化器開放 3 個關鍵字引數 from keras import regu...
過擬合 欠擬合 正則化
產生原因 緩解方法 合適的資料分布 合理的模型複雜性 合理的組合應該是 複雜的資料分布 簡單的模型 或者 簡單的資料分布 複雜的模型 神經網路中的過擬合 原理 或者說思考 從貝葉斯的角度來說,代價函式可以表示為p y w,x 的形式,而正則項則是對引數w做了乙個先驗分布的假設,使得代價函式變成p y...
正則化防止過擬合
在之前的線性回歸就有提到正則化,下面就來更具體地介紹正則化。1.正則化的作用 當訓練資料比較少時,或模型訓練過度時,常常會導致過擬合。正則化主要作用就是通過減小模型的複雜度來防止過擬合,提高泛化能力。為了更好的了解過擬合以及為後面做鋪墊,還是先看乙個吳恩達機器學習系列課程中乙個線性回歸來 房價的例子...