(180923)通過正則化降低特徵組合過度 模型過於複雜---機器學習速成
阿新 • • 發佈:2018-12-11
問題提出及正則化的引入
正則化的提出同樣是解決模型過擬合問題,之前提出的特徵組合來訓練模型,當訓練次數足夠多時,損失會降低到非常的低,但卻會出現過擬合問題。如圖
迭代次數足夠多,模型的複雜度也越高。可見一個好的模型和損失、模型的複雜度都有關。
所以,訓練優化演算法是一個由兩項內容組成的函式:一個是損失項,用於衡量模型與資料的擬合度,另一個是正則化項,用於衡量模型複雜度。
所以,什麼是正則化? 降低複雜模型的複雜度來避免過擬合的原則就是正則化。
如何定義複雜度
- 將模型複雜度作為模型中所有特徵的權重的函式。
- 將模型複雜度作為具有非零權重的特徵總數的函式。
對於第一種方式(特徵的權重的函式),權重的絕對值越高,對複雜度的貢獻越大。
使用L2正則化量化複雜度
L2正則化(也稱嶺正則化):所有權重的平方和,對權重的平方和的懲罰。
如何對模型正則化
- 早停法:訓練資料的效果實際收斂前停止訓練,就是上圖中紅線抵達最低點時停止訓練。實際中操作難度很大。
- 對模型新增懲罰項
重新定義演算法,在損失函式的基礎上新增懲罰項(損失 + λ * 懲罰)。
執行 L2 正則化對模型具有以下影響
- 使權重值接近於 0(但並非正好為 0)
- 使權重的平均值接近於 0,且呈正態(鐘形曲線或高斯曲線)分佈。
λ選擇問題
λ,正則化率。增大,會增強正則化的效果,但往往會造成欠擬合問題;減小,會出現過擬合問題。如何選擇,依據訓練的資料而定。
注意的是學習速率和λ不是對等的概念,但關係緊密。
測試中提及,將正則化率從 0 增至 0.3 (從0增大)會產生以下影響:
- 測試損失明顯減少。
注意:雖然測試損失明顯減少,訓練損失實際上卻有所增加。這屬於正常現象,因為您向損失函式添加了另一項來降低複雜度。最終,最重要的是測試損失,因為它是真正用於衡量模型能否針對新資料做出良好預測的標準。
- 測試損失與訓練損失之間的差值明顯減少。
- 特徵和某些特徵組合的權重的絕對值較低,這表示模型複雜度有所降低。
由於資料集具有隨機性,因此無法預測哪個正則化率能得出最準確的結果。 對我們來說,正則化率為 0.3 或 1 時,一般測試損失降至最低。