【別把隨機當必然】想盡辦法解釋的現象,可能僅是「隨機」的結果
圖片來源:unsplash
如果你要教電腦去找出一個公式,用來計算出身高與體重的關係,那麼你的第一件事情就是收集很多人身高與體重的資料(data),然後跑一個線性迴歸分析(Linear Regression),在身高與體重的平面上找出一條直線去match這些data,這條直線電腦就拿來當作是計算身高體重的公式:你給了電腦身高,電腦就算出體重給你,反之亦然。
這是機器學習最簡單的一個例子。電腦所做的事情不過就是從資料看出身高與體重之間的大略關係。之所以說是大略關係,是因為我們讓電腦假設身高與體重的關係完全是線性的,所以我們找了一條直線去當作身高和體重的模型:身高越高,體重就越高。
但是大家都知道身高和體重不可能剛好是線性的關係,有些人很高但是體重卻很輕,有些人很矮但是體重卻很重。所以當我們用一條直線來解釋這些資料的時候,實際上我們會有一些誤差存在。但是我們知道,以統計上來講,這個趨勢是對的,身高越高的人通常體重會比較重,所以當我們知道了某個人的身高,然後用這條直線去預測那個人的體重時,大部分的時候我們預測出來的結果不會差太遠。
現在有人覺得直線不是一種預測身高體重很好的model,所以想要用比較複雜的曲線來重新fit這些資料,結果他找出了一條完美的曲線來解釋這些資料,這條曲線毫無誤差,可以在平面上完全穿過所有資料點。
但是這個曲線會出現一個大問題:這條曲線完全沒有辦法拿來預測一個人的體重:你有一個人的身高,然後拿這條曲線去預測這個人的體重,你會發現大部分的時候算出的體重都是相當離譜。而且這條曲線看起來會彎彎曲曲,完全沒有辦法看出身高與體重大致上是呈現線性的關係。
這種現象就稱為Overfitting,從字面上的意思來看就是:我們對於資料做了過多的解釋。Overfitting這個現象,在統計學習理論上已經可以用數學來量化,在這邊我們就略過不談。
Overfitting給我們最大的啟示就是,不要對你的資料和你看到的現象做過多的解釋。
研究哲學的人都知道Occam’s Razor這個原則:「當你對一個現象有許多種解釋時,記得選擇最簡單的那一個。」