03. 統(tǒng)計(jì)學(xué)習(xí)模型:預(yù)測和推斷

上文提到,統(tǒng)計(jì)學(xué)習(xí)中通常要基于數(shù)據(jù)進(jìn)行建模來實(shí)現(xiàn)預(yù)測和推斷。實(shí)際上,針對未來數(shù)據(jù)所做的預(yù)測和推斷就是我們構(gòu)建模型最初的動(dòng)力和目標(biāo)。這里有必要區(qū)分一下預(yù)測(prediction)推斷(inference)

預(yù)測是指我們給所構(gòu)建的模型一定的輸入,利用模型對輸出進(jìn)行預(yù)測。這在很多時(shí)候代表著未知場景下對關(guān)鍵指標(biāo)的估計(jì),比如根據(jù)候選人的學(xué)歷、工作經(jīng)營等因素預(yù)測其薪資時(shí),我們更好奇某個(gè)條件(如碩士學(xué)歷、3 年工作經(jīng)驗(yàn))的候選人能拿到的薪資數(shù)額是多少?不難發(fā)現(xiàn),在預(yù)測中我們對輸出更感興趣。

而推斷則與預(yù)測不同,簡單來說,當(dāng)我們的目的是推斷時(shí),我們對輸入和輸出之間的關(guān)系(而不是輸出)更為感興趣,我們更好奇哪個(gè)輸入對輸出的有什么樣的影響?同樣的例子,當(dāng)我們的任務(wù)是推斷時(shí),我們要解決的問題很可能就是學(xué)歷對薪資的影響有多大?或是學(xué)歷和工作經(jīng)驗(yàn)到底哪一個(gè)對薪資的影響更大?

04. 如何構(gòu)建學(xué)習(xí)模型?

要想實(shí)現(xiàn)預(yù)測和推斷,構(gòu)建統(tǒng)計(jì)學(xué)習(xí)模型是第一步。大致來分的話,構(gòu)建統(tǒng)計(jì)學(xué)習(xí)模型的方法可以分為兩種:參數(shù)式方法非參數(shù)式方法

參數(shù)式方法比較直接,可以分為兩步。第一步先對模型的形式做一個(gè)假設(shè),比如最簡單的模型假設(shè)就可以說它是線性的。選擇完模型假設(shè)后,我們對模型有一個(gè)較為準(zhǔn)確的認(rèn)知了,此時(shí)的模型中只剩下眾多未知的參數(shù)。所以第二步就是利用已有的數(shù)據(jù)對模型中的參數(shù)進(jìn)行估計(jì)。很容易看出,參數(shù)式方法把尋找一個(gè)未知模型(函數(shù))的問題通過預(yù)先假設(shè)模型形式的方法轉(zhuǎn)變成了根據(jù)數(shù)據(jù)估計(jì)一堆參數(shù)的問題,這是一個(gè)化繁為簡的過程,其代價(jià)就是對模型形式進(jìn)行了限制。

而非參數(shù)式的方法則對模型的形式?jīng)]有具體的假設(shè),這使得它理論上可以構(gòu)建任何能最接近訓(xùn)練集的模型。

通過上面的簡單解釋,不難發(fā)現(xiàn)為什么它們擁有這樣的命名。此外,參數(shù)式方法和非參數(shù)式方法的優(yōu)缺點(diǎn)也一覽無余:參數(shù)式方法將構(gòu)建模型的問題簡單化,然而卻面臨模型假設(shè)與數(shù)據(jù)背后未知的真實(shí)模型相差甚遠(yuǎn)的風(fēng)險(xiǎn),所以對于參數(shù)式方法來說,如果模型假設(shè)提的好,效果自然好,構(gòu)建起來也輕松一些,但如果模型假設(shè)不那么好甚至相差很遠(yuǎn),就是完完全全的災(zāi)難。非參數(shù)式方法的優(yōu)勢則在于其理論上可以根據(jù)數(shù)據(jù)擬合任何種類的模型(能夠最大程度的貼近數(shù)據(jù)),而其劣勢則是需要更大量的數(shù)據(jù)(相較參數(shù)式方法而言)來構(gòu)建一個(gè)準(zhǔn)確的模型。

通過不同的方法,我們可以構(gòu)建很多不同的模型。可為什么要有這么多不同的統(tǒng)計(jì)學(xué)習(xí)方法/模型呢?沒有一個(gè)最高級、最 fancy 的模型一勞永逸的解決所有問題嗎?確實(shí)沒有,no free lunch 說的就是這么個(gè)事,沒有一個(gè)最好的模型可以在任何問題上優(yōu)于其他模型,模型好不好都是 problem-dependent 的。換句話說,拋開具體問題談哪個(gè)模型更好是沒有一點(diǎn)意義的。

05. 預(yù)測精度 v.s. 模型可解釋性

如在眾多的統(tǒng)計(jì)學(xué)習(xí)方法中,不同的方法有著不同的特點(diǎn),有些方法靈活性/彈性(flexibility)較差(約束較多),只能夠構(gòu)建有限的模型集合來擬合數(shù)據(jù),如線性模型。有些方法 flexibility 則較好,能夠構(gòu)建更多的模型來擬合數(shù)據(jù)。

說到這不禁會(huì)有疑問,這樣說來 flexibility 更好的方法不是我們的最佳選擇嗎?為什么還需要那些 flexibility 較差的方法呢?實(shí)際上,這里有一個(gè)很重要的 trade-off,那就是模型的預(yù)測精度與模型的可解釋性。通常來說,以線性模型為代表的 flexibity 較差的模型,雖然它們能夠構(gòu)建的模型范圍有限,導(dǎo)致其可能捕捉不到一些數(shù)據(jù)里的信息、造成預(yù)測精度較低,但是它們通常有著較為清晰的模型形式,比如線性模型可以將輸出 Y 表示為輸入 X 的線性組合,我們就可以清晰的分析出哪些變量會(huì)影響輸出,這樣的模型可解釋性就非常高。

相反地,有些 flexibility 較好的方法,其試圖利用更復(fù)雜的模型去擬合、貼近數(shù)據(jù),預(yù)測精度上就會(huì)較高,但受限于更復(fù)雜的模型形式,我們很難清晰的解釋清楚輸入與輸出之間的關(guān)系。下圖即為眾多方法的 flexibility 與模型可解釋性之間的關(guān)系:

關(guān)于這一點(diǎn),我們耳熟能詳?shù)幕谏窠?jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)就是最好的例子。理論上來說,神經(jīng)網(wǎng)絡(luò)可以擬合任意一種非線性的模型或函數(shù)。通常這些非線性的模型或函數(shù)其 flexibility 都非常好,預(yù)測精度也非常高,而最嚴(yán)重的缺點(diǎn)就是模型的可解釋性非常差。這就是通常我們所說的深度學(xué)習(xí)模型可解釋性較差的由來。

上圖中有一點(diǎn)需要指出的是,我們最常用來擬合線性模型的 least squares 方法并不是 flexibility 最低的方法。比如 lasso 就通過增加了正則項(xiàng)來對模型的預(yù)測變量做了選擇,換句話說,lasso 方法通過正則化項(xiàng)限定了某些預(yù)測變量的參數(shù)為 0,所以 lasso 方法的模型更不 flexible。

此外,對于統(tǒng)計(jì)學(xué)習(xí)的方法而言,還有很多分類:例如有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí),分類問題和回歸問題等,這些很多書籍和材料都有涉獵,此處不再贅述。

模型構(gòu)建起來后,有一個(gè)很直觀的問題就是:這個(gè)模型好不好?

06. 如何衡量一個(gè)模型的好壞?

對于一個(gè)給定的數(shù)據(jù)集,為了衡量一個(gè)模型的好壞,我們需要某種方式來衡量模型的預(yù)測是否貼合實(shí)際觀測到的數(shù)據(jù)。換句話說,我們需要量化模型預(yù)測值與真實(shí)值之間的差距,如果此差距很小,說明模型擬合數(shù)據(jù)擬合得很好,反之同理。

上文提到統(tǒng)計(jì)學(xué)習(xí)方法可分為處理分類問題的方法和處理回歸問題的方法,此處從回歸問題中如何量化模型預(yù)測值與真實(shí)值之間的差距開始談起。對于回歸問題,通常我們常用的用來衡量模型擬合效果的 metric 就是 mean squared error (MSE):

其中 y 代表觀測到的真實(shí)值,f(x) 代表模型的預(yù)測值。如果 MSE 的值很小,說明模型擬合數(shù)據(jù)的能力強(qiáng),反之同理。然而,當(dāng)我們利用上式計(jì)算 MSE 的時(shí)候,用的都是我們已經(jīng)用來訓(xùn)練模型的數(shù)據(jù),所以上式更準(zhǔn)確的名字應(yīng)該是訓(xùn)練 MSE (train MSE)。

而我們訓(xùn)練模型歸根結(jié)底的目的是要用其去預(yù)測或推斷沒見過的數(shù)據(jù)(未曾用于訓(xùn)練模型的數(shù)據(jù)),所以通常情況下我們不會(huì)太在意訓(xùn)練 MSE,與此同時(shí)我們更在意測試 MSE (test MSE)。顧名思義,測試 MSE 就是將模型用于測試集得到的 MSE。雖然區(qū)分訓(xùn)練集和測試集是再簡單不過的概念,但在實(shí)際操作中,還是有很多誤用數(shù)據(jù)導(dǎo)致 data snooping 現(xiàn)象的出現(xiàn),data snooping 指的是在做統(tǒng)計(jì)推斷之前先查看了數(shù)據(jù)的特征(甚至包括訓(xùn)練數(shù)據(jù)),這無疑與我們利用模型推斷未知數(shù)據(jù)的基準(zhǔn)相違背。這一點(diǎn)在課上 Prof. Yang Can 給了幾個(gè)例子,確實(shí)讓我想起了我之前的一些沙雕操作。

實(shí)際上,這種利用 MSE 來衡量模型擬合效果的行為對應(yīng)著監(jiān)督學(xué)習(xí)里兩種策略的其中一種:經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化(這種 squared-error 只是經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化策略中的一種損失函數(shù))。如果對上式的期望形式做拆解,考慮隨機(jī)誤差項(xiàng)時(shí)可寫為:

很容易發(fā)現(xiàn),總的誤差被分為了兩部分:一部分是可消除的誤差,這部分誤差來源于模型與真實(shí)數(shù)據(jù)之間的關(guān)系,模型擬合數(shù)據(jù)好自然這部分誤差就小;而另一部分則是不可消除的誤差,來源于隨機(jī)誤差。訓(xùn)練模型的過程,就是尋找一個(gè)能將可消除誤差降到最低的模型。

針對同樣的數(shù)據(jù),我們可以擬合很多不同參數(shù)的同類模型、不同種類的模型,根據(jù)經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的策略,我們選擇目標(biāo)模型的標(biāo)準(zhǔn)很簡單:test MSE 最小。

如下圖所示,在一個(gè)模擬數(shù)據(jù)集中,左圖中圓圈為樣本點(diǎn),黑線所代表的是生成樣本點(diǎn)的真實(shí)模型。橙色、藍(lán)色、綠色的線分別是針對這個(gè)數(shù)據(jù)集所擬合的不同的模型,可以看出,橙色線是一個(gè)線性模型,藍(lán)色和綠色線都是非線性模型,但藍(lán)色離真實(shí)模型更接近,綠色則是過多的捕捉了樣本點(diǎn)分布的局部特征。

給定一個(gè)輸入,用這三個(gè)模型中的任何一個(gè),我們都能得到一個(gè)輸出,然而,到底哪個(gè)模型能給我們更準(zhǔn)確的輸出?三個(gè)模型中,直觀來看無疑藍(lán)色是最好的。反應(yīng)在下圖右側(cè)的圖中,則是紅色所代表的 test MSE,藍(lán)色模型的 test MSE 是最低的,所以我們在三個(gè)模型中會(huì)選擇它。

此外,在右圖中,我們發(fā)現(xiàn)紅色所代表的 test MSE 出現(xiàn)了一個(gè)典型的先降后升的“U型”趨勢圖,然而灰色所代表的 train MSE 則是一路下降。換句話說,隨著模型 flexibility 的提升,train MSE 不斷下降,這很容易理解,因?yàn)槟P?flexibility 不斷提升的過程中在不斷的貼近訓(xùn)練集中的數(shù)據(jù)。而作為我們衡量模型好壞的標(biāo)準(zhǔn),test MSE 先降后升,說明模型 flexibility 不是越高越好。模型 flexibility 不斷提升的過程中,到底發(fā)生了什么?

07. 過擬合與variance-bias trade-off

實(shí)際上,對于給定數(shù)據(jù)集,隨著模型的 flexibility 不斷提升,模型的復(fù)雜程度也在不斷上升。以上圖為例,綠色模型的非線性程度更高,相較其他模型,它能捕捉到很多其他模型無法擬合的局部特征。但實(shí)際在此例子中,真實(shí)模型是黑色線所代表的模型,并沒有綠色模型那么復(fù)雜,換句話說,綠色模型通過提升 flexibility 過度學(xué)習(xí)到了很多不屬于真實(shí)數(shù)據(jù)的部分。這種現(xiàn)象稱為過擬合 (overfitting)。過擬合過程中學(xué)習(xí)到的不屬于真實(shí)數(shù)據(jù)的部分實(shí)際上來源于訓(xùn)練集中數(shù)據(jù)的隨機(jī)誤差等。

為什么過擬合會(huì)降低 train MSE、提升 test MSE 呢?此處將 MSE 進(jìn)行拆解可分為以下部分:

從上式中不難看出,要想最小化經(jīng)驗(yàn)風(fēng)險(xiǎn),最好的模型應(yīng)該同時(shí)具有兩個(gè)特點(diǎn):variance 小、bias 小。通常情況下,具有高 flexibility 的模型其擬合數(shù)據(jù)的能力很強(qiáng),所以 bias 很小,然而因?yàn)槟P瓦^于 flexible,其很容易受到新數(shù)據(jù)、或是數(shù)據(jù)變化的影響,variance 很大;而低 flexibility 的模型不容易受到新數(shù)據(jù)變化的影響、但擬合數(shù)據(jù)的能力較弱,所以 bias 較大而 variance 很小。兩者似乎無法同時(shí)縮小,這就是統(tǒng)計(jì)學(xué)習(xí)中一個(gè)重要的概念:variance-bias trade-off。

下圖是在三個(gè)不同的模擬數(shù)據(jù)集上所擬合模型的結(jié)果,很容易看出,不管真實(shí)模型如何,variance-bias trade-off 都存在。有一點(diǎn)需要說明的是,紅線指的是 test MSE,黑色虛線指的則是隨機(jī)誤差的方差,可以看出針對給定數(shù)據(jù)集,任何統(tǒng)計(jì)學(xué)習(xí)方法/模型所能達(dá)到的理論最小 test MSE 就是隨機(jī)誤差的方差。

我們的目標(biāo)模型是 test MSE 最小,而這實(shí)際上就是奧卡姆剃刀法則所闡述的:我們需要的模型是在能最大程度擬合數(shù)據(jù)的同時(shí)最簡單的模型。想要獲得這樣的模型,只利用經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化是無法達(dá)到的,經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化只會(huì)最大程度降低 bias,這種伴隨而來的是由 variance-bias trade-off 帶來的 variance 上升。最直接的解決辦法就是同時(shí)對 bias 和 variance 進(jìn)行約束,這就帶給了我們監(jiān)督學(xué)習(xí)中的另外一個(gè)策略:結(jié)構(gòu)風(fēng)險(xiǎn)最小化。結(jié)構(gòu)風(fēng)險(xiǎn)最小化就是在經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的基礎(chǔ)上加上一個(gè)正則項(xiàng)對模型的復(fù)雜度做約束,以實(shí)現(xiàn) bias 和 variance 的平衡。

讀到這里,或許會(huì)有好奇,深度學(xué)習(xí)的模型flexibility都很高,為什么不會(huì)有明顯的過擬合現(xiàn)象存在呢?那就是另一個(gè)跟正則化有關(guān)的有趣的故事了,最近正好在學(xué)習(xí)gradient boosting相關(guān)的內(nèi)容,此處暫時(shí)講不清楚,先略過等啥時(shí)候能講清楚了再來填坑。

08. 分類問題

上文提到回歸問題中利用 test MSE 來衡量模型好壞,對于分類問題,也有一個(gè)類似的衡量指標(biāo):誤分類率 (error rate)。可寫為以下形式:

其中 I 是指示函數(shù),當(dāng)模型預(yù)測值與真實(shí)值不同時(shí)該函數(shù)取 1,反之取 0。我們可以簡單根據(jù) test error rate 來選擇模型。

上式所提到的 test error rate 可以通過一個(gè)簡單的分類器來達(dá)到最小,該分類器根據(jù)預(yù)測變量的值將每一個(gè)樣本分到最有可能的類別。可以寫成以下形式:

當(dāng)以上條件概率最大時(shí),我們把該樣本分到第j類(證明此處省略),而這個(gè)分類器就叫做貝葉斯分類器 (bayes classifier)。對于最簡單的二分類問題,如果上式的 j=1 時(shí),可以簡單考慮 0.5 為一個(gè) threshold,當(dāng)上式的條件概率大于 0.5 時(shí)將該樣本分為 1,反之分為 0。

下圖所示即為利用貝葉斯分類器執(zhí)行一個(gè)二分類任務(wù)(模擬數(shù)據(jù)集),橙色和藍(lán)色圓圈所代表的是兩類樣本點(diǎn)。紫色虛線代表的點(diǎn)就是概率為 0.5 的地方,這就是 bayes decision boundary。

考慮到貝葉斯分類器的特點(diǎn),理論上我們總是想用它來做分類任務(wù)。但是在真實(shí)數(shù)據(jù)集中,對于給定的樣本 x,其所屬類 Y 的條件分布是不可知的。所以貝葉斯分類器對我們而言是一個(gè)無法達(dá)到的標(biāo)準(zhǔn),很多分類器也是通過根據(jù)訓(xùn)練數(shù)據(jù)估計(jì)以上條件分布來對樣本進(jìn)行分類的。一個(gè)很簡單的例子就是 K 近鄰法(KNN),在 KNN 中,可以通過調(diào)整 K 值來調(diào)整模型的 flexibility,K 值較大時(shí)模型 flexibility 較小,而 K 值較小時(shí)模型 flexibility 較大。選擇合適的K值可以達(dá)到接近(略低于)貝葉斯分類器的分類效果。

09. 總結(jié)

以上就是我對最近看的一些統(tǒng)計(jì)學(xué)習(xí)的基礎(chǔ)概念的簡單分享,這些內(nèi)容全都是入門內(nèi)容,奈何之前絲毫不在意,走馬觀花導(dǎo)致基礎(chǔ)不牢,以此作為簡單的反思和記錄。內(nèi)容雖然簡單,如有錯(cuò)誤也請各位批評指正。文中圖均來自于以下書籍:

James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An introduction to statistical learning(Vol. 112, p. 18). New York: springer.

文章轉(zhuǎn)自微信公眾號@算法進(jìn)階

上一篇:

機(jī)器學(xué)習(xí)&深度學(xué)習(xí)的算法概覽

下一篇:

樹模型決策的可解釋性與微調(diào)(Python)
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對比試用API 限時(shí)免費(fèi)