1. 程式人生 > >(180923)通過正則化降低特徵組合過度 模型過於複雜---機器學習速成

(180923)通過正則化降低特徵組合過度 模型過於複雜---機器學習速成

問題提出及正則化的引入

正則化的提出同樣是解決模型過擬合問題,之前提出的特徵組合來訓練模型,當訓練次數足夠多時,損失會降低到非常的低,但卻會出現過擬合問題。如圖

在這裡插入圖片描述

迭代次數足夠多,模型的複雜度也越高。可見一個好的模型和損失、模型的複雜度都有關。

所以,訓練優化演算法是一個由兩項內容組成的函式:一個是損失項,用於衡量模型與資料的擬合度,另一個是正則化項,用於衡量模型複雜度。

所以,什麼是正則化? 降低複雜模型的複雜度來避免過擬合的原則就是正則化。

如何定義複雜度

  • 將模型複雜度作為模型中所有特徵的權重的函式。
  • 將模型複雜度作為具有非零權重的特徵總數的函式。

對於第一種方式(特徵的權重的函式),權重的絕對值越高,對複雜度的貢獻越大。

使用L2正則化量化複雜度

L2正則化(也稱嶺正則化):所有權重的平方和,對權重的平方和的懲罰。 在這裡插入圖片描述

如何對模型正則化

  • 早停法:訓練資料的效果實際收斂前停止訓練,就是上圖中紅線抵達最低點時停止訓練。實際中操作難度很大。
  • 對模型新增懲罰項

重新定義演算法,在損失函式的基礎上新增懲罰項(損失 + λ * 懲罰)。 在這裡插入圖片描述

執行 L2 正則化對模型具有以下影響

  • 使權重值接近於 0(但並非正好為 0)
  • 使權重的平均值接近於 0,且呈正態(鐘形曲線或高斯曲線)分佈。

λ選擇問題

λ,正則化率。增大,會增強正則化的效果,但往往會造成欠擬合問題;減小,會出現過擬合問題。如何選擇,依據訓練的資料而定。

注意的是學習速率和λ不是對等的概念,但關係緊密。

測試中提及,將正則化率從 0 增至 0.3 (從0增大)會產生以下影響:

  • 測試損失明顯減少。

注意:雖然測試損失明顯減少,訓練損失實際上卻有所增加。這屬於正常現象,因為您向損失函式添加了另一項來降低複雜度。最終,最重要的是測試損失,因為它是真正用於衡量模型能否針對新資料做出良好預測的標準。

  • 測試損失與訓練損失之間的差值明顯減少。
  • 特徵和某些特徵組合的權重的絕對值較低,這表示模型複雜度有所降低。

由於資料集具有隨機性,因此無法預測哪個正則化率能得出最準確的結果。 對我們來說,正則化率為 0.3 或 1 時,一般測試損失降至最低