科普一下機(jī)器學(xué)習(xí)熱門概念
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
機(jī)器學(xué)習(xí)日常:不是在建模,就是在建模的路上。
而在建模過程中,又能聽到煉丹愛好者時而念念有詞“怎么又過擬合了?”,時而自我安慰“找到偏差和方差的平衡點(diǎn)是成功的訣竅”。
所以為了能讓非專業(yè)者也能愉快地玩(zhuang)耍(bi),今天就來科普一下機(jī)器學(xué)習(xí)的幾個常見概念。
泛化
如何判別一個每天都刷題的高中班級的成績怎么樣呢?
拉去考一場。
那怎么判斷一個機(jī)器學(xué)習(xí)領(lǐng)域的新算法到底棒不棒呢?
去新數(shù)據(jù)里溜一圈。
這種對于訓(xùn)練集以外的數(shù)據(jù)也能進(jìn)行良好的判別,或得到合適輸出的能力,就稱為機(jī)器學(xué)習(xí)模型的泛化(generalization)能力。
并且,說一個模型泛化能力弱,那也是有很多種弱法的。
過擬合與欠擬合
有些模型,直接死在提取數(shù)據(jù)特征這一步。

訓(xùn)練集上就沒有完全擬合數(shù)據(jù),實(shí)際樣本中的表現(xiàn)同樣誤差很大。
類似一個高中生每天都拿著五三刷,但是始終找不到做題規(guī)律,模擬題做得拉跨,考試就更不用說。
這種在訓(xùn)練集和測試集(實(shí)際樣本)中都表現(xiàn)不好的情況,就叫做欠擬合(Underfitting)。
這通常是因?yàn)槟P蛷?fù)雜度低引起的(就是菜得很實(shí)在)。
而有些模型在訓(xùn)練時表現(xiàn)良好:

但一到實(shí)戰(zhàn)就撲街。
這種在訓(xùn)練集上表現(xiàn)良好,但在測試集上表現(xiàn)很差的情況,就叫做過擬合(Overfitting)。
訓(xùn)練集質(zhì)量不高就可能導(dǎo)致過擬合,比如樣本不足,或者訓(xùn)練數(shù)據(jù)中的噪聲(干擾數(shù)據(jù))過多。
也有可能因?yàn)槟P蛷?fù)雜度高于實(shí)際問題,只是死記硬背下了訓(xùn)練數(shù)據(jù)的信息,但完全無法推廣到?jīng)]見過的新數(shù)據(jù)上。

不管菜到底有幾種方式,對于一個機(jī)器模型來說,總歸是在實(shí)際應(yīng)用里表現(xiàn)不好,發(fā)生了泛化誤差(Generalization Error)。
而這種誤差,可以再次細(xì)化為兩個方面:
誤差(Error) = 偏差(Bias) + 方差(Variance)
偏差與方差
在機(jī)器學(xué)習(xí)領(lǐng)域,偏差(bias)是指模型的預(yù)測值相對于真實(shí)結(jié)果的偏離程度。

△其中f(x)為預(yù)測函數(shù),y為樣本數(shù)據(jù)真實(shí)值
而方差(variance)與真實(shí)值沒有關(guān)系,只描述通過模型得到的預(yù)測值之間的分布情況。

對于一個模型來說,偏差反映模型本身的精確度,而方差則衡量模型的穩(wěn)定性。

如果模型過于簡單且參數(shù)很少,那么它可能具有高偏差和低方差的特征,也就會造成欠擬合。
而如果模型復(fù)雜而具有大量參數(shù),那么它將具有高方差和低偏差的特征,造成過擬合。
看上去,一個好的機(jī)器模型就是要同時追求更低的偏差和方差。
但在實(shí)際應(yīng)用中,偏差和方差往往不可兼得。
偏差與方差的權(quán)衡
先來看這兩個模型:

右邊的模型明顯比左邊要復(fù)雜很多,也因此它的偏差更低,方差更高,與左邊的模型相反。
這種偏差與方差之間的沖突就是偏差-方差窘境(Bias- Variance dilemma):

在改進(jìn)算法時,要減少偏差就會增大方差,反之亦然。
因此,我們需要找到一個合適的平衡點(diǎn),既不會因?yàn)楦咂疃斐汕窋M合,也不會因?yàn)楦叻讲疃斐蛇^擬合。
這種偏差與方差之間的權(quán)衡(bias and variance trade-off),實(shí)際上也就是模型復(fù)雜度的權(quán)衡。
為什么要提出這些概念?
簡單來說,為了讓計(jì)算機(jī)也學(xué)會人類的概括能力。
比如,如果我們要通過某地房屋面積與房價之間的關(guān)系,進(jìn)而幫助房屋售賣者選取更合適的售價,那么下面哪個函數(shù)最好呢?
△紅色為事先給定的樣本數(shù)據(jù)
第一個明顯欠擬合。都沒有從給定的數(shù)據(jù)中找到一般規(guī)律,更不用說讓函數(shù)去預(yù)測新房價面積可能對應(yīng)的售價了。
第三個就是過擬合,函數(shù)參數(shù)過多,想要抓住所變化,反而導(dǎo)致模型的通用性下降,預(yù)測效果大打折扣。
而第二個函數(shù)基本擬合了樣本數(shù)據(jù),形成了一般規(guī)律,也保證了對新數(shù)據(jù)的預(yù)測能力。
能從海量數(shù)據(jù)中找到一般規(guī)律,這就是一個模型的泛化能力。
模型的泛化能力越高,通用性也就越強(qiáng),這樣能完成的任務(wù)范圍也就越廣。
但就算是ANN(人工神經(jīng)網(wǎng)絡(luò))這樣優(yōu)秀的機(jī)器學(xué)習(xí)模型,目前也還是受限于偏差與方差的權(quán)衡。
算法工程師們提出了各種方法,如正則化(Regularization)、套袋法(Bagging)、貝葉斯法(Bayesian),使模型能夠更好地概括舊數(shù)據(jù),預(yù)測新數(shù)據(jù)。
并期望著最終能構(gòu)建一個機(jī)器學(xué)習(xí)模型,使其能力無限逼近目前最強(qiáng)的通用模型——人類大腦。