0
今天郭江師兄在實驗室講解了全體機器學習會第一章的知識,大家討論了一下過擬合的知識,這里我根據(jù)自己的理解,整理了一下原因,力求同最通俗的語言來描述,可能不是太嚴謹,但是總體思想能保證正確!
一、過擬合的概念?
首先我們來解釋一下過擬合的概念?
過擬合就是訓練出來的模型在訓練集上表現(xiàn)很好,但是在測試集上表現(xiàn)較差的一種現(xiàn)象!下圖給出例子:
我們將上圖第三個模型解釋為出現(xiàn)了過擬合現(xiàn)象,過度的擬合了訓練數(shù)據(jù),而沒有考慮到泛化能力。在訓練集上的準確率和在開發(fā)集上的準確率畫在一個圖上如下:
從圖中我們能夠看出,模型在訓練集上表現(xiàn)很好,但是在交叉驗證集上表現(xiàn)先好后差。這也正是過擬合的特征!
二、模型出現(xiàn)過擬合現(xiàn)象的原因
發(fā)生過擬合的主要原因可以有以下三點:
(1)數(shù)據(jù)有噪聲
(2)訓練數(shù)據(jù)不足,有限的訓練數(shù)據(jù)
(3)訓練模型過度導致模型非常復雜
下面我將分別解釋這三種情況(這里按自己的理解解釋,歡迎大家交流):
(1)數(shù)據(jù)有噪聲
為什么數(shù)據(jù)有噪聲,就可能導致模型出現(xiàn)過擬合現(xiàn)象呢?
所有的機器學習過程都是一個 search 假設空間的過程!我們是在模型參數(shù)空間搜索一組參數(shù),使得我們的損失函數(shù)最小,也就是不斷的接近我們的真實假設模型,而真實模型只有知道了所有的數(shù)據(jù)分布,才能得到。
往往我們的模型是在訓練數(shù)據(jù)有限的情況下,找出使損失函數(shù)最小的最優(yōu)模型,然后將該模型泛化于所有數(shù)據(jù)的其它部分。這是機器學習的本質(zhì)!
那好,假設我們的總體數(shù)據(jù)如下圖所示:
(我這里就假設總體數(shù)據(jù)分布滿足一個線性模型 y = kx+b, 現(xiàn)實中肯定不會這么簡單,數(shù)據(jù)量也不會這么少,至少也是多少億級別,但是不影響解釋。反正總體數(shù)據(jù)滿足模型 y)
此時我們得到的部分數(shù)據(jù),還有噪聲的話,如圖所示:
(紅色數(shù)據(jù)點為噪聲)
那么由上面訓練數(shù)據(jù)點訓練出來的模型肯定不是線性模型(總體數(shù)據(jù)分布下滿足的標準模型),比如訓練出來的模型如下:
那么我拿著這個有噪聲訓練的模型,在訓練集合上通過不斷訓練,可以做到損失函數(shù)值為 0,但是拿著這個模型,到真實總體數(shù)據(jù)分布中(滿足線性模型)去泛化,效果會非常差,因為你拿著一個非線性模型去預測線性模型的真實分布,顯而易得效果是非常差的,也就產(chǎn)生了過擬合現(xiàn)象!
(2)訓練數(shù)據(jù)不足,有限的訓練數(shù)據(jù)
當我們訓練數(shù)據(jù)不足的時候,即使得到的訓練數(shù)據(jù)沒有噪聲,訓練出來的模型也可能產(chǎn)生過擬合現(xiàn)象,解釋如下:
假設我們的總體數(shù)據(jù)分布如下:
(為了容易理解,假設我們的總體數(shù)據(jù)分布滿足的模型是一個二次函數(shù)模型)
我們得到的訓練數(shù)據(jù)由于是有限的,比如是下面這個:
(我只得到了 A,B 兩個訓練數(shù)據(jù))
那么由這個訓練數(shù)據(jù),我得到的模型是一個線性模型,通過訓練較多的次數(shù),我可以得到在訓練數(shù)據(jù)使得損失函數(shù)為 0 的線性模型,拿這個模型我去泛化真實的總體分布數(shù)據(jù)(實際上是滿足二次函數(shù)模型),很顯然,泛化能力是非常差的,也就出現(xiàn)了過擬合現(xiàn)象!
(3)訓練模型過度導致模型非常復雜
訓練模型過度導致模型非常復雜,也會導致過擬合現(xiàn)象!這點和第一點倆點原因結(jié)合起來其實非常好理解,當我們在訓練數(shù)據(jù)訓練的時候,如果訓練過度,導致完全擬合了訓練數(shù)據(jù)的話,得到的模型不一定是可靠的。
比如說,在有噪聲的訓練數(shù)據(jù)中,我們要是訓練過度,會讓模型學習到噪聲的特征,無疑是會造成在沒有噪聲的真實測試集上準確率下降!
好了,到這里本文要講的內(nèi)容已經(jīng)講完了,我根據(jù)自己的理解,試圖通俗的講解產(chǎn)生過擬合的原因,希望能夠讓更多的人有一個直觀的理解~ 真心希望對大家有幫助,歡迎大家指錯交流~
雷鋒網(wǎng)按:本文原作者憶臻,原載于作者的知乎專欄。
深度學習之神經(jīng)網(wǎng)絡特訓班
20年清華大學神經(jīng)網(wǎng)絡授課導師鄧志東教授,帶你系統(tǒng)學習人工智能之神經(jīng)網(wǎng)絡理論及應用!
課程鏈接:http://www.mooc.ai/course/65
加入AI慕課學院人工智能學習交流QQ群:624413030,與AI同行一起交流成長
雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。