「機器學習速成」正則化:降低模型的複雜度以減少過擬合

dicksonjyl560101發表於2019-06-21




大家好,今天我們學習【機器學習速成】之 正則化:降低模型的複雜度以減少過擬合。

我們  馬上學三點  ,

  1. 泛化曲線,
  2. 降低模型的複雜度
  3. L2 正則化的損失函式

大家可以點選下面的“  瞭解更多  ”,或搜尋“  馬上學123  ”,線上觀看PPT講義。

泛化曲線

我們之前已經討論過 如何讓訓練損失降至最低, 也就是 獲取正確的樣本

今天,我們要討論的是正則化, 也就是 不要過於信賴樣本 , 這是確保機器學習效果的一個關鍵因素。

如圖泛化曲線, 該曲線顯示的是訓練集和驗證集 相對於訓練迭代次數的損失。


「機器學習速成」正則化:降低模型的複雜度以減少過擬合

泛化曲線

從圖中可以看出, 隨著迭代次數的增加,  藍色 的訓練集損失逐漸減少, 最終會在某種程度上 收斂於低端 。 但紅線的測試集損失開始上升。

事實上, 紅線 才是我們真正要關注的, 儘管我們在對訓練樣本進行訓練, 但我們想要 泛化到新的樣本 , 也就是我們希望在 測試集上的損失控制在較低 的範圍。

如何抑制測試集損失上升

那麼如何抑制紅線的測試集損失上升呢?

該圖說明模型與訓練集中的資料 過擬合 了。 我們可以透過 正則化來避免過擬合

正則化有很多不同的策略:

  • 其中一種策略是 早停法(Early Stopping) , 也就是訓練中計算模型在測試集上的表現, 當模型在測試集上的表現開始下降的時候, 停止訓練,這樣就能避免繼續訓練導致過擬合的問題。
  • 這是一種常用策略, 儘量抵達紅色測試集曲線的底端, 但實際操作起來可能有些困難。

其他正則化策略 包括嘗試 新增模型複雜度懲罰項 , 這就是我們接下來要講的。

降低模型的複雜度

目前,我們訓練僅專注於一個重要方面, 也就是輸入正確的訓練樣本, 最大程度地最小化損失, 也就是 經驗風險最小化 為目標

「機器學習速成」正則化:降低模型的複雜度以減少過擬合

經驗風險最小化

現在我們要引入第二項以對模型複雜度進行懲罰。

我們以最小化損失和複雜度為目標,這稱為 結構風險最小化

「機器學習速成」正則化:降低模型的複雜度以減少過擬合

結構風險最小化

現在,我們的訓練最佳化演算法是一個由兩項內容組成的函式:

  • 一個是 損失項 ,用於衡量模型與資料的擬合度,
  • 另一個是 正則化項 ,用於衡量模型複雜度。

如何衡量模型複雜度呢?

那麼我們如何衡量模型複雜度呢?

我們可以採用多種方法, 一種常見的策略是 儘量選擇較小的權重 , 也就是使引數小到幾乎可以讓我們忽略, 同時我們 仍能獲取正確的訓練樣本

這裡將重點探討 L2正則化 , 模型複雜度= 權重的平方和, 在這種正則化策略中, 我們會對 權重的平方和 進行懲罰。

我們用 L2 正則化公式 來量化複雜度, 該公式將正則化項定義為 所有特徵權重的平方和

「機器學習速成」正則化:降低模型的複雜度以減少過擬合

L2 正則化公式

在使用L2正則化時, 模型的確會關注訓練資料, 但會盡量確保最後的權重 不會超過所需的大小

L2 正則化的損失函式

我們再以數學方式總結一下:

「機器學習速成」正則化:降低模型的複雜度以減少過擬合

L2 正則化的損失函式

目前,我們在 訓練最佳化 方面新增了兩項:

  • 第一項是 訓練損失 。 我們希望獲取正確的樣本。 可以看出,L損失項取決於訓練資料。
  • 現在, 我們在模型複雜度方面引入了第二項。 您會注意到,第二項與資料無關, 它只是要 簡化模型

您會發現這兩項透過lambda實現了平衡。 這是一個係數, 代表我們對 獲取正確樣本  與對 簡化模型 的關注程度之比。

lambda的選擇和平衡

lambda的選擇其實取決於具體情況:

  • 如果您有 大量的訓練資料 , 訓練資料和測試資料看起來一致, 並且統計情況呈現 獨立同分布 , 那麼您可能 不需要進行多少正則化
  • 如果您的訓 練資料不多 , 或者訓練資料與測試資料有所不同, 那麼您可能需要進行 大量正則化 。 您可能需要利用 交叉驗證 , 或使用單獨的測試集進行調整。

選擇 lambda 值時, 目標是在 簡單化 訓練資料擬合 之間達到 適當的平衡

  • 如果您的 lambda 值過高, 則模型會非常 簡單 ,但是您將面臨資料 欠擬合 的風險。
  • 如果您的 lambda 值過低, 則模型會比較 複雜 ,並且您將面臨資料 過擬合 的風險。
  • 理想的 lambda 值生成的模型可以很好地 泛化到以前未見過的新資料

總結:

  • 我們要獲取正確的樣本,讓損失降至最低;也要進行正則化,不要過於信賴樣本
  • 經驗風險最小化:旨在減少訓練誤差
  • 結構風險最小化:旨在減少訓練誤差,同時平衡複雜度。
  • L2 正則化的損失函式: 第一項用來訓練損失 第二項用來簡化模型

這裡講了三點,關鍵詞有哪幾個?

提問!除了L2可以衡量模型複雜度,還有其它方法嗎?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2648294/,如需轉載,請註明出處,否則將追究法律責任。

相關文章