1. 程式人生 > >過擬合與對策

過擬合與對策

無法 mage png 最小化 是不是 out 方便 集成學習 oss

  • 本文介紹了欠擬合、過擬合相關概念,分析造成它們的原因,總結了防止過擬合的一般策略。

1 損失函數

  • 損失函數(loss function)是用來度量模型預測值f(x)與樣本真實標簽值y的不一致程度
  • 給定輸入的樣本數據x,模型函數輸出一個f(x),這個輸出的f(x)與樣本的真實值標簽值y可能是相同的,也可能是不同的,為了表示我們擬合的好壞,就用一個函數來度量擬合的程度。有平方差損失函數、交叉熵損失函數,對比損失函數,合頁損失函數等。
  • 損失函數是一個實值函數,它的值越小,表示模型在訓練樣本集上擬合地越好。是不是訓練集損擬合的越好,模型的效果會更好呢? 答案是No。由於訓練樣本集和測試數據集是不一樣的,在訓練集上損失函數越小,並不代表測試集損失函數越小,我們希望模型在訓練集上有高準確率的同時在測試集上也有高準確率。衡量這種能力的指標就是泛化能力,這時候不得不提過擬合和欠擬合的概念。

2 學習

  • 學習:找到一組模型參數,使得在給定的訓練數據樣本和對應的目標值上的損失函數最小化

3 過擬合與欠擬合

  • 欠擬合(under-fitting):也稱為欠學習,它的直觀表現是算法訓練得到的模型在訓練集上表現差(測試集表現也差),沒有學到數據的規律。
  • 引起欠擬合的原因
    • 模型本身過於簡單,例如數據本身是非線性的但使用了線性模型;
    • 特征數太少無法正確的建立統計關系。
  • 過擬合(over-fitting):也稱為過學習,它的直觀表現是算法在訓練集上表現好,但在測試集上表現不好,泛化性能差。過擬合是在模型參數擬合過程中由於訓練數據包含抽樣誤差,在訓練時復雜的模型將抽樣誤差也進行了擬合導致的
    。所謂抽樣誤差,是指抽樣得到的樣本集和整體數據集之間的偏差
  • 引起過擬合的可能原因
    • 模型本身過於復雜,以至於擬合了訓練樣本集中的噪聲。此時需要選用更簡單的模型,或者對模型進行裁剪。
    • 訓練樣本太少或者缺乏代表性。此時需要增加樣本數,或者增加樣本的多樣性。
    • 訓練樣本噪聲的幹擾,導致模型擬合了這些噪聲,這時需要剔除噪聲數據或者改用對噪聲不敏感的模型。

4 方差與偏差

  • 模型的泛化誤差來自於兩部分,分別稱為偏差和方差。
  • 偏差(bias)是模型本身導致的誤差,即錯誤的模型假設所導致的誤差,它是模型的預測值的數學期望和真實值之間的差距。
  • 方差(variance)是由於對訓練樣本集的小波動敏感而導致的誤差。它可以理解為模型預測值的變化範圍,即模型預測值的波動程度。
  • 偏差、方差、錯誤率與模型復雜度的關系如下圖所示。通常隨著模型的復雜度增加,偏差也會跟著逐漸增大。
    技術分享圖片

5 如何避免過擬合

5.1 正則化

為了防止過擬合,可以為損失函數加上一個懲罰項對復雜的模型進行懲罰,即強制讓模型的參數值盡可能小。加上正則化項的目標是讓它的值盡可能小,即參數等於0或者接近於0。\(\lambda\)為懲罰項系數,是人工設定的大於0的參數。

5.2 剪枝

剪枝是決策樹類算法防止過擬合的方法。如果決策樹的結構過於復雜,可能會導致過擬合問題,此時需要對樹進行剪枝,消掉某些節點讓它變得更簡單。剪枝的關鍵問題是確定減掉哪些樹節點以及減掉它們之後如何進行節點合並。決策樹的剪枝算法可以分為兩類,分別稱為預剪枝和後剪枝。前者在樹的訓練過程中通過停止分裂對樹的規模進行限制;後者先構造出一棵完整的樹,然後通過某種規則消除掉部分節點,用葉子節點替代。

5.3 數據增廣

數據增廣是解決過擬合中思想比較樸素的方法。訓練集越多,過擬合的概率越小,數據增廣是一個比較方便有效屢試不爽的方法,但各類領域的增廣方法都不同。

  • 1 在計算機視覺領域中,增廣的方式是對圖像旋轉,縮放,剪切,添加噪聲等。
  • 2 在自然語言處理領域中,可以做同義詞替換擴充數據集。
  • 3 語音識別中可以對樣本數據添加隨機的噪聲。

5.4 dropout

Dropout是神經網絡中防止過擬合的方法。dropout的做法是在訓練時隨機的選擇一部分神經元進行正向傳播和反向傳播,另外一些神經元的參數值保持不變,以減輕過擬合。dropout機制使得每個神經元在訓練時只用了樣本集中的部分樣本,這相當於對樣本集進行采樣,即bagging的做法。最終得到的是多個神經網絡的組合。

5.5 Early Stopping

提前停止的策略是在驗證集誤差出現增大之後,提前結束訓練;而不是一直等待驗證集 誤差達到最小。提前停止策略十分簡單,執行效率高,但需要額外的空間備份參數。

5.6 集成學習

集成學習算法也可以有效的減輕過擬合。Bagging通過平均多個模型的結果,來降低模型的方差。Boosting不僅能夠減小偏差,還能減小方差。

6 參考文獻

  • 《機器學習與應用》

過擬合與對策