在模型訓練過程中,我們通常會遇到過擬合與欠擬合問題。其中欠擬合是指模型未考慮足夠的樣本資訊而無法對真實情況精確建模的現象。比如乙個小孩第一次見到天鵝後認為鴨子也是天鵝。反之,過擬合指的則是模型過度考慮樣本資訊而無法對真實情況精確建模的現象。我們還舉剛才的例子,小孩看到的有:天鵝有翅膀和黃色的嘴巴,天鵝脖子是長長的且有點曲度,天鵝的整個體型略大於鴨子,而且恰巧這些天鵝的羽毛全都是白色的。這導致他以後看到羽毛是黑色的天鵝就會認為那不是天鵝。誠然,這兩個問題都將導致模型的泛化能力弱,要如何才能防止這類問題的發生呢?對於欠擬合問題,通常只需增大訓練樣本數以及適量增加特徵即可解決;而對於過擬合問題,應對方法除了常規的特徵選擇與資料集擴增以外,我們通常還會給損失函式加上乙個正則項進行權重抑制。那麼,這個正則項具體是什麼?又是如何起作用的呢?
機模型訓練,說到底都是引數估計問題。比如我們要擬合一條直線,模型是y=
ax+b
,其中的a和b就是我們需要估計的引數,而每乙個引數代表的就是乙個特徵的權重。還拿之前天鵝的例子來說,小孩之所以不認識黑色的天鵝,是因為「天鵝是白色的」這個特徵的權重在他認知裡的得分很高。而把正則項加入損失函式一起計算可以抑制這些過高的權重,甚至能讓某些權重變為0(實現特徵稀疏),從而把控模型的整體擬合方向。就像馬車伕,拉著模型這駕馬車朝著正確的方向跑去。
目前正則項一共有三種:l0範數、l1範數和l2範數。這三種正則項接下來我將分別講解其作用和原理。
l0範數表示向量中非零元素的個數,其數學形式如下:
直觀上看,降低非零權重引數的個數可以很好地剔除區域性特徵(比如上面例子裡天鵝的羽毛顏色),實現特徵稀疏(原因可見上篇文章 ),使模型擁有較強的泛化能力。但是,由於l0範數很難求解,我們通常放棄這個方法。直觀上我是這樣理解這個問題得難解性的:l0的目標是特徵權重非0即1,也正因為它的取值非0即1,導致其本身無法計算梯度,使得在訓練過程中每一步迭代後得到的基本都是非0結果,從而無法最優化。
l1範數表示向量中每個引數絕對值的和,其有個美稱叫「稀疏規則運算元」(lasso regularization),數學形式如下:
l1正則是如何實現特徵稀疏的呢?我們不妨舉個簡單的栗子:y=
w1x1
+w2x
2+b ,對這個線性模型我們加入正則項||
w||1
。如下圖右所示,藍色等高線表示損失函式的等高值,藍色圓心表示損失函式最小時的最優
w 引數值;而紅色平行四邊形表示l1正則項條件下的
w引數取值範圍。從圖中可知,當藍色圓形與紅色矩形相切於座標軸時,w1
引數為0,該情況可擴充套件至高維空間。除非運氣特別不好,l1正規化最終總能與損失函式相較於某些引數座標軸之上,從而實現特徵稀疏。
l2範數就是我們常說的歐氏距離,其也有個美稱,叫「嶺回歸」(ridge regularization),數學形式如下:
可知,l2範數越小,使得
w 的每個權重引數都很小,但其與l1範數不同之處在於它不會讓權重等於0而是接近於0,如上圖左所示。而越小的引數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。
過擬合解決利器 正則化項
正則化 regularization 是解決模型過擬合的重要手段之一,正則化是為了防止過擬合,進而增強泛化能力,使測試集上的表現 或說效能 performance 一樣優秀,但是它為什麼能解決模型的過擬合問題呢?下面將慢慢展開。過擬合在機器學習 ml 中,訓練的模型對於訓練集和驗證集有著優秀的擬合 ...
對過擬合,欠擬合和正則化的理解
過擬合 定義 訓練誤差和測試誤差之間的差距太大 原因 模型容量過大 後果 無法提取有效的結構資訊,即解過多,無法選出乙個泛化能力好的解 這裡就得解釋一下模型容量和泛化能力的概念了,模型容量即擬合各種函式的能力,顯然高次函式多項式的這種能力比低次的強,就說更高次的模型容量大。泛化能力即在未觀測到的輸入...
L2正則化項為什麼能防止過擬合學習筆記
l2 regularization 權重衰減 l2 代表原始的代價函式,後面那一項就是 l2正則化項,它是這樣來的 所有引數 w的平方的和,除以訓練集的樣本大小n。就是正則項係數,權衡正則項與 c0項的比重。另外還有乙個係數 1 2,1 2經常會看到,主要是為了後面求導的結果方便,後面那一項求導會產...