關(guān)于機(jī)器學(xué)習(xí)的一點(diǎn)
統(tǒng)計(jì)學(xué)習(xí)理論是機(jī)器學(xué)習(xí)的重要基礎(chǔ),為許多機(jī)器學(xué)習(xí)算法提供理論支持,通過(guò)一些統(tǒng)計(jì)學(xué)的角度我們?cè)噲D找出從經(jīng)驗(yàn)數(shù)據(jù)中得出有效結(jié)論這一過(guò)程的數(shù)學(xué)解釋。
簡(jiǎn)單來(lái)說(shuō),機(jī)器學(xué)習(xí)主要是將來(lái)自輸入域的數(shù)據(jù)經(jīng)過(guò)未知的目標(biāo)函數(shù)映射到輸出域的相應(yīng)數(shù)據(jù)上。 如果目標(biāo)函數(shù)是已知的,那么我們根本不需要學(xué)習(xí),我們只需要按照函數(shù)直接計(jì)算就好了。 機(jī)器學(xué)習(xí)的基本前提就是使用一組數(shù)據(jù)來(lái)觀察和揭示數(shù)據(jù)中的潛在規(guī)律。 機(jī)器學(xué)習(xí)的目標(biāo)就是從有限的樣本數(shù)據(jù)集中找到一個(gè)近似于目標(biāo)函數(shù)的函數(shù)。
以機(jī)器學(xué)習(xí)中的監(jiān)督學(xué)習(xí)為例,監(jiān)督學(xué)習(xí)是從一組帶有標(biāo)記的數(shù)據(jù)中學(xué)習(xí)。 訓(xùn)練集中的每個(gè)點(diǎn)都是輸入 - 輸出對(duì)的形式,將輸入映射到已知輸出。 學(xué)習(xí)目標(biāo)即為能夠找到未知控制規(guī)則的最佳算法,這些規(guī)則通過(guò)對(duì)樣本數(shù)據(jù)分布的規(guī)律探索,構(gòu)建一個(gè)近似于目標(biāo)函數(shù)的假設(shè)函數(shù),來(lái)根據(jù)輸入預(yù)測(cè)未知的輸出。 學(xué)習(xí)模型的性能或泛化性能是根據(jù)其對(duì)獨(dú)立測(cè)試數(shù)據(jù)的預(yù)測(cè)精度來(lái)衡量的。
目前機(jī)器學(xué)習(xí)分為監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí),其中監(jiān)督學(xué)習(xí)又分為分類(lèi)問(wèn)題和回歸問(wèn)題,無(wú)監(jiān)督學(xué)習(xí)則為降維和聚類(lèi)。每一個(gè)分支都包括多種算法,不同算法的思想以及適用范圍為我們構(gòu)建高性能模型提供多種選擇。
為了選擇最佳模型然后評(píng)估其泛化性能,對(duì)用于訓(xùn)練算法的樣本數(shù)據(jù)集通常隨機(jī)分為2組:即訓(xùn)練集、測(cè)試集。其中訓(xùn)練集用于算法訓(xùn)練,讓算法學(xué)習(xí)數(shù)據(jù)中的潛在數(shù)據(jù)規(guī)律,并且通過(guò)調(diào)整算法的超參數(shù),獲得更加準(zhǔn)確的算法模型。測(cè)試集用于評(píng)估不同模型的學(xué)習(xí)效果,反映模型的性能。
預(yù)測(cè)誤差或泛化誤差用來(lái)優(yōu)化模型,在機(jī)器學(xué)習(xí)中,對(duì)于任何問(wèn)題我們建立模型的最終目標(biāo)都是最小化誤差,其中誤差主要可以從三個(gè)方面來(lái)解釋:偏差、方差和噪聲。噪聲也稱為“不可避免的誤差”,對(duì)于噪聲我們無(wú)能為,因?yàn)樗鼉H取決于我們用于訓(xùn)練的數(shù)據(jù),我們只能從偏差和方差來(lái)改進(jìn)我們的模型,即尋求偏差-方差的平衡。
如果訓(xùn)練數(shù)據(jù)集中的數(shù)據(jù)是由一個(gè)固有的隨機(jī)過(guò)程,一個(gè)錯(cuò)誤的問(wèn)題,或者特征集是錯(cuò)誤的或不完整的,那么任何算法都不會(huì)有好的準(zhǔn)確率,所以用機(jī)器學(xué)習(xí)算法來(lái)解決問(wèn)題的一個(gè)條件就是這個(gè)問(wèn)題是能夠解決的,不能是一個(gè)未解之謎。這就是為什么數(shù)據(jù)科學(xué)家花費(fèi)大約19%的時(shí)間來(lái)尋找好的數(shù)據(jù),另外60%的時(shí)間用于清理他們收集的數(shù)據(jù):數(shù)據(jù)的質(zhì)量直接決定機(jī)器學(xué)習(xí)模型準(zhǔn)確性,
假設(shè)我們正在嘗試根據(jù)年齡等多個(gè)特征的訓(xùn)練數(shù)據(jù)集來(lái)預(yù)測(cè)人體重量。 年齡可能是預(yù)測(cè)體重時(shí)要考慮的特征之一,但還有許多其他因素表征體重,包括身高,性別,地理位置等。如果僅考慮年齡,那么很可能最終得到一個(gè)弱預(yù)測(cè)器或者一個(gè)具有很大泛化誤差的學(xué)習(xí)器。因此,對(duì)于給定的一組特征,噪聲在真實(shí)分布中可能不是真正的噪聲。 我們可能根本沒(méi)有從數(shù)據(jù)集中選擇足夠的特征以便能夠?qū)φ鎸?shí)分布進(jìn)行建模。
如果算法非常精確地映射給定訓(xùn)練分布的所有數(shù)據(jù)點(diǎn),則肯定會(huì)對(duì)該特定訓(xùn)練數(shù)據(jù)產(chǎn)生非常小的誤差。 然而在對(duì)測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí)則會(huì)有很差的效果,那么你的模型就過(guò)擬合了。換句話說(shuō),該模型學(xué)習(xí)能力太強(qiáng),受到數(shù)據(jù)中噪聲的影響就越大,一般來(lái)說(shuō),方差可以表示算法對(duì)特定訓(xùn)練數(shù)據(jù)集的敏感性。 高方差表明該算法非常適合數(shù)據(jù),并且對(duì)于數(shù)據(jù)分布建立了過(guò)于復(fù)雜的模型,因此表示模型過(guò)度擬合。
另一方面,我們既不能選擇過(guò)于簡(jiǎn)單且不夠表達(dá)的模型來(lái)反映事件的數(shù)據(jù)分布,這時(shí)就會(huì)出現(xiàn)欠擬合的問(wèn)題。想象一下,使用線性回歸來(lái)映射具有非線性模式的訓(xùn)練數(shù)據(jù)集:線性回歸只是一條線而且對(duì)于非線性數(shù)據(jù)集來(lái)說(shuō)太過(guò)單一。 通常我們使用偏差來(lái)表示機(jī)器學(xué)習(xí)算法無(wú)法擬合或不能足夠好地表示訓(xùn)練集中數(shù)據(jù)的分布。 換句話說(shuō),偏差給模型所做的簡(jiǎn)化假設(shè)提供了一個(gè)維度,使目標(biāo)函數(shù)更容易學(xué)習(xí),如果偏差值過(guò)大則說(shuō)明模型欠擬合。因此我們用方差表示過(guò)度擬合,偏差表示欠擬合。
從統(tǒng)計(jì)學(xué)的角度來(lái)看,這是一個(gè)非常著名的偏差 - 方差平衡問(wèn)題。能夠找到一個(gè)能夠很好地平衡偏差和方差的算法,我們才能通過(guò)最簡(jiǎn)單的近似模型來(lái)獲得最佳的泛化性能。為了提高性能,我們可能需要選擇不同的算法來(lái)得到更大的假設(shè)空間和覆蓋更廣的區(qū)域,但是請(qǐng)記住,我們?cè)噲D接近的目標(biāo)函數(shù)僅來(lái)自一組有限的樣本數(shù)據(jù)。 不是來(lái)自真實(shí)的、完整的。 雖然樣本數(shù)據(jù)是我們學(xué)習(xí)的全部?jī)?nèi)容,但有限的數(shù)據(jù)集只能代表對(duì)描述整個(gè)現(xiàn)象的實(shí)際函數(shù)的估計(jì)。如果我們非常接近描述樣本分布的函數(shù),產(chǎn)生較低的偏差,則風(fēng)險(xiǎn)是當(dāng)我們使用新建的函數(shù)模型預(yù)測(cè)新的數(shù)據(jù)就會(huì)出現(xiàn)較高的方差。正如我們剛才所說(shuō)的那樣,我們模型的復(fù)雜性會(huì)影響其性能,我們需要找到一種以定量的方式定義復(fù)雜性的方法,其中,Vapnik-Chervonenkis維度是一種廣泛使用的方法,可以在偏差和方差兩者之間找到適當(dāng)?shù)钠胶恻c(diǎn)。
VC維與每個(gè)模型的參數(shù)數(shù)量相關(guān),而參數(shù)的數(shù)量又與模型可以處理的數(shù)據(jù)點(diǎn)的數(shù)量相關(guān)聯(lián)。其主要思想是模型想要近似的數(shù)據(jù)點(diǎn)數(shù)量越多,模型映射它們所需的參數(shù)數(shù)量就越多,這就增加了復(fù)雜性并使模型非常特定于該數(shù)據(jù)集。 在測(cè)量算法復(fù)雜度時(shí),VC維度可以幫助我們估計(jì)預(yù)測(cè)誤差,為我們提供關(guān)于算法是否可以在給定樣本數(shù)據(jù)集的情況下學(xué)習(xí)和推廣的概率評(píng)估:與可用訓(xùn)練數(shù)據(jù)的數(shù)量相比較低的VC維度將建議測(cè)試錯(cuò)誤不會(huì)遠(yuǎn)離訓(xùn)練錯(cuò)誤。
總體來(lái)說(shuō),機(jī)器學(xué)習(xí)就是通過(guò)處理得到好的數(shù)據(jù),用數(shù)據(jù)來(lái)訓(xùn)練一個(gè)能達(dá)到我們預(yù)期目標(biāo)的模型,且模型越簡(jiǎn)單越好。具體算法的選擇則可根據(jù)我們的日常喜好,能決定模型效果的還是數(shù)據(jù)的質(zhì)量,因此鍛煉一個(gè)很強(qiáng)的數(shù)據(jù)分析能力是很重要的。