用簡單易懂的語言描述「過擬合 overfitting」?


不知道大家在學車的時候教練教倒庫和側方停車的時候有沒有教一串口訣:類似於在車窗的XX框切XX桿的時候打滿,切XX的時候回正等等,這個口訣可以順利讓你通過科目二,然而換個車或者換個場地,你就發現並沒有卵用... 我們說這只是overfit了某個車和某個場地(訓練數據),在新的測試集(新車新場地)上的泛化性能為0。



舉個物理學上的段子(轉自他人博文),費米的話就是一個非常直觀的理解:

1953年春天,戴森和自己的學生利用贗標介子理論計算了介子與質子的散射截面,得到了與費米的實驗觀測值十分相符的結果。然而該理論需要4個自由參數,費米很不屑,講了一句日後很著名的話:「我記得我的朋友約翰·馮·諾依曼(John von Neumann)曾經說過,用四個參數我可以擬合出一頭大象,而用五個參數我可以讓它的鼻子擺動。」

有趣的是,2010年6月,尤根·邁爾(Jurgen Mayer)等三位德國分子生物學家在《美國物理學期刊》(American Journal of Physics)發表了題為「用四個復參數畫出一頭大象」的論文。他們發現,利用四個復參數可以大致勾勒出大象的形態,再引入一個復參數則可以讓大象的鼻子擺動起來。


鄭昆 天鵝的例子特別好,我再補充一個。

上學考試的時候,有的人採取題海戰術,把每個題目都背下來。但是題目稍微一變,他就不會做了。因為他非常複雜的記住了每道題的做法,而沒有抽象出通用的規則。

所以過擬合有兩種原因:

  1. 訓練集和測試機特徵分布不一致(白天鵝黑天鵝)
  2. 或者模型太過複雜(記住了每道題)而樣本量不足

解決過擬合也從這兩方面下手,收集多樣化的樣本,簡化模型,交叉檢驗。

最後配個圖,看圖最清楚了。


好比你想學習追妹子。
先找你表妹問喜歡什麼,表妹說她喜歡乾淨帥氣的男生,還說她喜歡周杰倫,喜歡火鍋,喜歡酸菜魚,合計一百條規矩。你規規矩矩地按照要求學習,終於符合表妹的一切要求,0 Error,訓練完成,超級自信準備出去試試追個妹子。
可是換了個妹子,發現學到的似乎沒想像中有用。第二個妹子只要你乾淨帥氣。後面的九十八條她都不care,她甚至討厭吃火鍋,那後面98條只會增加誤差。這就過擬合了。

怎麼防止過擬合呢?應該用cross validation,交叉比對。
解釋起來就是,你在你表妹那兒學到的東西,在你表姐那兒測試一下對不對。在你表姐那兒學到的,在你二姐那測試一下。來來回回用不同的測試對象和訓練對象做交叉比對。這樣學到規律就不會過擬合啦~

評論里有小夥伴提到加Regularization可以解決overfit,這裡也形象地說一下。還是在學習追妹子。但是我也有男人的尊嚴! 有底線!不能妹子說啥就是啥!今天我的底線是,不能無限量增加要學的規矩的數量!女人不能慣著! 所以可以引入Lasso,對規矩的數量進行一個penalize。通俗說就是,妹子你讓我學三條規矩我就忍了,讓我學一百條規矩大爺就不幹了。這個Regularization可以有不同的形式,Lasso是一種。所以可以通過引入Regularization增加信息,幫助尋找到最優解。


是時候祭出這張圖片了

哈哈哈哈,每次看到這個我的內心


補充說明:考慮到越來越多的人看到這個答案,所以有必要說明一下,這裡的「局部特徵」和「全局特徵」,是為了方便說明問題,臨時取的說法,並不是機器學習里已有嚴格定義的概念,大家閱讀時,將其用於輔助對於「過擬合」這一現象的理解便好,切勿將其用於正式場合下對相關理論研究的闡述中,也切勿將其當作一個正式的概念(評論區中有人指出,說成「訓練集和測試集數據分布不一致」可能會更準確專業一些)。
--------------------------------------------------------------------------
原答案:
其實不完全是雜訊和假規律會造成過擬合。
(1)打個形象的比方,給一群天鵝讓機器來學習天鵝的特徵,經過訓練後,知道了天鵝是有翅膀的,天鵝的嘴巴是長長的彎曲的,天鵝的脖子是長長的有點曲度,天鵝的整個體型像一個「2」且略大於鴨子.這時候你的機器已經基本能區別天鵝和其他動物了。
(2)然後,很不巧你的天鵝全是白色的,於是機器經過學習後,會認為天鵝的羽毛都是白的,以後看到羽毛是黑的天鵝就會認為那不是天鵝.
(3)好,來分析一下上面這個例子:(1)中的規律都是對的,所有的天鵝都有的特徵,是全局特徵;然而,(2)中的規律:天鵝的羽毛是白的.這實際上並不是所有天鵝都有的特徵,只是局部樣本的特徵。機器在學習全局特徵的同時,又學習了局部特徵,這才導致了不能識別黑天鵝的情況.
--------------------------------------------------理論總結分割線----------------------------------------
(1)對於機器來說,在使用學習演算法學習數據的特徵的時候,樣本數據的特徵可以分為局部特徵和全局特徵,全局特徵就是任何你想學習的那個概念所對應的數據都具備的特徵,而局部特徵則是你用來訓練機器的樣本裡頭的數據專有的特徵.
(2)在學習演算法的作用下,機器在學習過程中是無法區別局部特徵和全局特徵的,於是機器在完成學習後,除了學習到了數據的全局特徵,也可能習得一部分局部特徵,而習得的局部特徵比重越多,那麼新樣本中不具有這些局部特徵但具有所有全局特徵的樣本也越多,於是機器無法正確識別符合概念定義的「正確」樣本的幾率也會上升,也就是所謂的「泛化性」變差,這是過擬合會造成的最大問題.
(3)所謂過擬合,就是指把學習進行的太徹底,把樣本數據的所有特徵幾乎都習得了,於是機器學到了過多的局部特徵,過多的由於雜訊帶來的假特徵,造成模型的「泛化性」和識別正確率幾乎達到谷點,於是你用你的機器識別新的樣本的時候會發現就沒幾個是正確識別的.
(4)解決過擬合的方法,其基本原理就是限制機器的學習,使機器學習特徵時學得不那麼徹底,因此這樣就可以降低機器學到局部特徵和錯誤特徵的幾率,使得識別正確率得到優化.
(5)從上面的分析可以看出,要防止過擬合,訓練數據的選取也是很關鍵的,良好的訓練數據本身的局部特徵應儘可能少,雜訊也儘可能小.



欠擬合:光看書不做題覺得自己會了,上了考場啥都不會。

過擬合: 做課後題全都能做對,上了考場還是啥都不會。

差不多的擬合: 做了題,背了老師給畫了重點,考試60分過了。

優秀的擬合: 課後題全能作對,考試100分。

特徵選擇就是劃重點。

那種不上課不做題考試前看書也能考出高分的學神是自帶特徵選擇功能和強大擬合能力的BUG

哦對了,無師自通的小神童們是自適應能力加泛化能力強。

=========2017年7月更新,找到了一張圖=========


如圖所示:

Data:

Normal fitting:

overfitting:

serious overfitting:

Data:

Normal fitting:

overfitting:

Data:

Normal fitting:

overfitting:

Data:

Normal fitting:

overfitting:

Data:

Normal fitting:

overfitting:

Data:

serious overfitting:

抖個機靈500贊了啊,小弟受寵若驚啊,厚顏無恥地安利一發別的答案:

有哪些流行的遊戲戰術是設計者肯定沒想到的? - 瘋癲的A兵者的回答

皮卡丘為什麼這麼萌? - 瘋癲的A兵者的回答

再次感謝各位捧場~


想起了以前看過的一個笑話

----------------
一個非洲酋長到倫敦訪問,一群記者在機場截住了他。

早上好,酋長先生", 其中一人問道:你的路途舒適嗎?

酋長發出了一連串刺耳的聲音哄、哼、啊、吱、嘶嘶,

然後用純正的英語說 道 :是的,非常地舒適。

那麼!您准備在這里待多久?

他發出了同樣的一連串噪音,

然後答:大約三星期,我想。

酋長,告訴我,你是在哪學的這樣流利的英語?迷惑不解的記者問。

又是一陣哄、吭、啊、吱、嘶嘶聲,

酋長說:從短波收音機裡。


[圖片]
===============================
你現在的反應就是overfitting。


一個overfitted模型記住太多training data的細節從而降低了generalization的能力。

舉個栗子,給機器一堆人類的照片,告訴它性別,讓它學習看照片區分男女。哇,機器好棒哦,一下子就能正確區分80%的照片的性別了!可是你覺得不夠,怎麼能容忍20%的錯誤率呢,啪啪啪鍵盤敲下去,讓機器給我接著學。
機器不怎麼聰明,可是記憶力和觀察力是很強的!所以你一直push它的話,它會把每張照片每個像素的數值都記住的,這對每張照片都是獨一無二的,再記住它的性別,就能100%區分出你給他的所有照片里人的性別了。

可是我們的目的不是讓它成功區分這一堆照片里人的性別,而是讓它看見新的不知道性別的人的照片時,可以成功預測性別。記住每個點的像素有個毛用?你會發現這個機器判斷新的照片時表現很差。

這就是為什麼要把training data切一小份(比如說10%)出來做validation,用剩下90%的data去train,然後用這10%檢查一下train好的model,看看錶現怎麼樣,防止over training。Cross validation也是這個意思,把data切10份,每次用一份做validation,做10次,能用到所有的training data。


把過去二十年的真題 (training data) 的答案都背過了,但上考場 (test data) 還是傻眼。因為沒有透過題目看到學科的脈絡和本質。


遇到幾個渣男就得出結論「男人沒一個好東西」。


大家都在舉黑天鵝的例子,於是你覺得過擬合只會在黑天鵝身上發生,這便是過擬合了。


中國著名計算機科學家,中國機器學習之父,被業內尊稱為中國圖靈的魯迅先生曾經描述過一個名為「中國人」的機器學習演算法,在圖像識別上嚴重的過擬合問題。其原文如下:

一見短袖子,立刻想到白臂膊,立刻想到全裸體,立刻想到生殖器,立刻想到性交,立刻想到雜交,立刻想到私生子。中國人的想像惟在這一層能夠如此躍進。
《而已集·小雜感》


就是說機器學習演算法學完了訓練數據中有用的規律,開始學習訓練數據中由於數據量少或有雜訊而產生的假的規律了。學習這些假的規律,對於測試集的性能並沒有幫助,甚至可能有害。



想多了


推薦閱讀:

TAG:人工智慧 | 數據挖掘 | 機器學習 | 線性回歸 |