在機器學習中,研究者希望產生的模型可以「準確」地去描述資料背後的模式,但怎樣才算是準確呢?「準確」可分為兩部分,準指的是偏差(Bias)小,確指的是變異(variance)小,研究者總是希望模型可以同時偏差小、變異小,但現實總是殘酷的,如下圖所示,因為模式的整體誤差(Total error)=偏差(Bias )2+變異(variance)+隨機誤差(random error),由於隨機誤差無法做調整(數據本身的誤差),在模式整體誤差是固定的時候,為了降低偏差使模式複雜度(Model complexity)增加時,變異也會隨之增大,反之,為了降低變異使模式複雜度(Model complexity)降低時,偏差也會隨之增大,因此追求模型偏差以及變異最小是機器學習領域非常重要的課題之一。

 

 

1.jpg

 

模式誤差的公式如下

3.jpg

 

但偏差過大或變異過大會產生甚麼問題呢?一般來說會遇到兩種問題:

  1. Overfitting (模式複雜度過高): Bias2降低,但Variance增加
  2. Underfitting (模式複雜度過低): Variance降低,但Bias2增加

下方圖形為模型切合實際資料的狀態,由左至右,分別是Underfitting, Good fitting, Overfitting

 

 

2.jpg

 

 

處理Underfitting的方式à提高模型的複雜度

  • 增加模式在訓練樣本的迭代次數
  • 增加模型複雜度,例如在模型中增加高次方項
  • 調整超參數(模型架構的調整)
    • 超參數:模型需要被設定的參數,沒有這些參數,模型無法根據資料去產生估計值
  • 找出更多的特徵(變數)來去訓練模型
  • 移除正規化參數
  • 更換其他複雜的模型

處理Overfitting的方式à降低模型的複雜度

  • Early Stopping:讓模型提早結束迭代,降低模式在訓練樣本中出現過度學習的狀態
  • 增加訓練資料,但前提是資料需要做一定程度的清理,降低不必要的雜訊
  • 使用交叉驗證(Cross-validation)
  • 降低特徵維度
  • 使用正規化參數( Regularization )
    • Ridge regression
    • Lasso regression
    • Elastic Net(結合Ridge regression以及Lasso regression)
  • 調整超參數(模型架構的調整)
  • 更換成簡單的模型

 

參考資料:

  1. https://www.datacamp.com/community/tutorials/tutorial-ridge-lasso-elastic-net
  2. https://jason-chen-1992.weebly.com/home/-bias-variance-tradeoff
  3. https://binarycoders.dev/2019/10/17/ml-python-vii-overfitting-underfitting/
arrow
arrow
    全站熱搜

    晨晰部落格新站 發表在 痞客邦 留言(0) 人氣()