奧卡姆剃刀準則與損失函數、過擬合

機器學習算法模型在訓練過程中要避免過擬合。過擬合就是算法模型在訓練樣本中表現(擬合)很好,但是測試樣本中表現不好,過擬合的具體表現就是泛化性差,如何避免過擬合呢?

首先要認識到一般的機器學習算法和深度學習算法最終都是將問題轉化為最優化問題,解最優化問題來得到參數,從而計算出擬合函數,包含神經網絡算法。

我們知道解最優化問題一定存在一個目標函數,或者稱為評價函數,損失函數 f-eval,機器學習算法訓練過程就是解得參數使得損失函數最小。損失函數一般定義就是 真實值與預測值的誤差的函數,

f-eval =f(y,y1),也是預測值,y1是真實值

對於最小二乘,f-eval 就是歐式距離公式。

為什過擬合會發生呢?原因有三:

1)數據存在噪聲

2)模型表現出預測的值偏差小但是方差大

3) 數據完全符合你選擇的算法模型

第3)條怎麼理解呢,就是你的訓練數據經過你選擇的算法和訓練完全能夠擬合上,但是要記住你要應用的總體樣本,而訓練只是抽樣樣本。

 那麼如何解決避免擬合,有幾種方式:

1)交叉驗證(廣泛適用)

2)提前停止準則(應用少)

3)剪枝(樹方法)

4)正則化項,包括Dropout(深度學習)

  重點研究下方法4)給損失函數加入正則化項,

  f-eval =f(y,y1) +Ω(θ),其中θ表示模型中的參數,Ω(θ)就是正則項。正則項一般採用L1正則項和L2正則項,對應L1損失函數和L2損失函數。

L1正則項:對模型的參數權重w取L1範數

L2正則項:對模型的參數權重w取L2範數

正則項的思想就是為了簡化模型,降低模型複雜度。這個思想就是奧卡姆剃刀準則,具體描述為:如無必要,勿增實體,通俗將就是 簡單即有效,降低模型的複雜度,使得數據對模型的符合程度剛剛好,避免過擬合,可以提高模型泛化性。奧卡姆剃刀準則畢竟是一個準則,不是定理,科學是嚴謹的,那麼這個準則為什麼用於科學呢,維基百科有一句話是這樣描述的‘ In the scientific method, Occam's razor is not considered an irrefutable principle of logic or a scientific result; the preference for simplicity in the scientific method is based on the falsifiability criterion. ’[5]

[1] https://www.zhihu.com/question/20700829

[2]https://chemicalstatistician.wordpress.com/2014/03/19/machine-learning-lesson-of-the-day-overfitting-and-underfitting/

[3] https://elitedatascience.com/overfitting-in-machine-learning

[4]https://www.analyticsvidhya.com/blog/2015/02/avoid-over-fitting-regularization/

[5] https://en.wikipedia.org/wiki/Occam%27s_razor


分享到:


相關文章: