打破機器學(xué)習(xí)中的小數(shù)據(jù)集詛咒

2021-02-28    分類: 網(wǎng)站建設(shè)

最近深度學(xué)習(xí)技術(shù)實現(xiàn)方面取得的突破表明,頂級算法和復(fù)雜的結(jié)構(gòu)可以將類人的能力傳授給執(zhí)行特定任務(wù)的機器。但我們也會發(fā)現(xiàn),大量的訓(xùn)練數(shù)據(jù)對深度學(xué)習(xí)模型的成功起著至關(guān)重要的作用。就拿Resnet來說,這種圖像分類結(jié)構(gòu)在2015年的ILSVRC分類競賽中獲得了第一名,比先前的技術(shù)水平提高了約50%。

近年來ILSVRC的頂級模型表現(xiàn)

圖1:近年來ILSVRC的頂級模型表現(xiàn)

Resnet不僅具有非常復(fù)雜艱深的結(jié)構(gòu),而且還有足夠多的數(shù)據(jù)。不同的算法其性能可能是相同的,這個問題已經(jīng)在工業(yè)界和學(xué)術(shù)界得到了很好的證實。

但需要注意的是,大數(shù)據(jù)應(yīng)該是有意義的信息,而不是雜亂無章的,這樣,模型才能從中學(xué)習(xí)。這也是谷歌、Facebook、亞馬遜、Twitter、百度等公司在人工智能研究和產(chǎn)品開發(fā)領(lǐng)域占據(jù)主導(dǎo)地位的主要原因之一。

雖然與深度學(xué)習(xí)相比,傳統(tǒng)的機器學(xué)習(xí)會需要更少的數(shù)據(jù),但即使是大規(guī)模的數(shù)據(jù)量,也會以類似的方式影響模型性能。下圖清楚地描述了傳統(tǒng)機器學(xué)習(xí)和深度學(xué)習(xí)模型的性能如何隨著數(shù)據(jù)規(guī)模的提高而提高。

數(shù)據(jù)量與模型性能的函數(shù)關(guān)系

圖2:數(shù)據(jù)量與模型性能的函數(shù)關(guān)系

為什么我們需要機器學(xué)習(xí)?

彈丸運動公式

圖3:彈丸運動公式

讓我們用一個例子來回答這個問題。假設(shè)我們有一個速度為v,按一定角度θ投擲出去的球,我們想要算出球能拋多遠。根據(jù)高中物理知識,我們知道球做一個拋物線運動,我們可以使用圖中所示的公式算出距離。

上述公式可被視為任務(wù)的模型或表示,公式中涉及的各種術(shù)語可被視為重要特征,即v、θ和g(重力加速度)。在上述模型下,我們的特征很少,我們可以很好地理解它們對我們?nèi)蝿?wù)的影響。因此,我們能夠提出一個好的數(shù)學(xué)模型。讓我們考慮一下另一種情況:我們希望在2018年12月30日預(yù)測蘋果公司的股價。在這個任務(wù)中,我們無法完全了解各種因素是如何影響股票價格的。

在缺乏真實模型的情況下,我們利用歷史股價和標(biāo)普500指數(shù)、其他股票價格、市場情緒等多種特征,利用機器學(xué)習(xí)算法來找出它們潛在的關(guān)系。這就是一個例子,即在某些情況下,人類很難掌握大量特征之間的復(fù)雜關(guān)系,但是機器可以通過大規(guī)模的數(shù)據(jù)輕松地捕捉到它。

另一個同樣復(fù)雜的任務(wù)是:將電子郵件標(biāo)記為垃圾郵件。作為一個人,我們可能要想許多規(guī)則和啟式的方法,但它們很難編寫、維護。而另一方面,機器學(xué)習(xí)算法可以很容易地獲得這些關(guān)系,還可以做得更好,并且更容易維護和擴展。既然我們不需要清晰地制定這些規(guī)則,而數(shù)據(jù)可以幫助我們獲得這些關(guān)系,可以說機器學(xué)習(xí)已經(jīng)徹底改變了不同的領(lǐng)域和行業(yè)。

大數(shù)據(jù)集是怎樣幫助構(gòu)建更好的機器學(xué)習(xí)模型的?

在我們開始討論大規(guī)模數(shù)據(jù)是如何提高模型性能之前,我們需要了解偏差(Bias)和方差(Variance)。

偏差:讓我們來看這樣一個數(shù)據(jù)集:它的因變量和自變量之間是二次方關(guān)系。然而,我們不知道他們真實的關(guān)系,只能稱它們近似為線性關(guān)系。在這種情況下,我們將會發(fā)現(xiàn)我們的預(yù)測與實際數(shù)據(jù)之間的明顯的差異。觀測值和預(yù)測值之間的這種差異稱為偏差。這種模型,我們會說它功能小,欠擬合。

方差:在同一個例子中,如果我們將關(guān)系近似為三次方或任何更高階,就會出現(xiàn)一個高方差的情況。方差能夠反映訓(xùn)練集與測試集的性能差異。高方差的主要問題是:模型能很好地擬合訓(xùn)練數(shù)據(jù),但在訓(xùn)練外數(shù)據(jù)集上表現(xiàn)得不好。這是驗證確認(rèn)測試集在模型構(gòu)建過程中非常重要的一個主要原因。

偏差 vs方差

圖4:偏差 vs方差

我們通常希望將偏差和方差最小化。即建立一個模型,它不僅能很好地適用訓(xùn)練數(shù)據(jù),而且能很好地概括測試/驗證數(shù)據(jù)。實現(xiàn)這一點有很多方法,但使用更多數(shù)據(jù)進行訓(xùn)練是實現(xiàn)這一點的好途徑之一。我們可以通過下圖了解這一點:

大數(shù)據(jù)產(chǎn)生了更好的泛化

圖5:大數(shù)據(jù)產(chǎn)生了更好的泛化

假設(shè)我們有一個類似于正弦分布的數(shù)據(jù)。圖(5a)描述了多個模型在擬合數(shù)據(jù)點方面同樣良好。這些模型中有很多都過擬合,并且在整個數(shù)據(jù)集上產(chǎn)出不是很好。當(dāng)我們增加數(shù)據(jù)時,從圖(5b)可以看出可以容納數(shù)據(jù)的模型數(shù)量減少。隨著我們進一步增加數(shù)據(jù)點的數(shù)量,我們成功地捕獲了數(shù)據(jù)的真實分布,如圖(5C)所示。這個例子幫助我們清楚地了解數(shù)據(jù)數(shù)量是如何幫助模型揭示真實關(guān)系的。接下來,我們將嘗試了解一些機器學(xué)習(xí)算法的這種現(xiàn)象,并找出模型參數(shù)是如何受到數(shù)據(jù)大小影響的。

線性回歸:在線性回歸中,我們假設(shè)預(yù)測變量(特征)和因變量(目標(biāo))之間存在線性關(guān)系,關(guān)系式如下:

其中y是因變量,x(i)是自變量。β(i)為真實系數(shù),?為模型未解釋的誤差。對于單變量情況,基于觀測數(shù)據(jù)的預(yù)測系數(shù)如下:

上述公式給出了斜率和截距的估測點,但這些估值總是存在一些不確定性,這些不確定性可由方差方程量化:

因此,隨著數(shù)據(jù)數(shù)量的增加,分母會變大,就是我們估測點的方差變小。因此,我們的模型對潛在關(guān)系會更加自信,并能給出穩(wěn)定的系數(shù)估計。通過以下代碼,我們可以看到上述現(xiàn)象的實際作用:

圖6:在線性回歸中增加數(shù)據(jù)量對估測點位置估測的提升

我們模擬了一個線性回歸模型,其斜率(b)=5,截距(a)=10。從圖6(a)(數(shù)據(jù)量小)到圖6(b)(數(shù)據(jù)量大),我們建立了一個衰退模型,此時我們可以清楚地看到斜率和截距之間的區(qū)別。在圖6(a)中,模型的斜率為4.65,截距為8.2,而圖6(b)中模型的斜率為5.1,截距為10.2相比,可以明顯看出,圖6(b)更接近真實值。

k近鄰(k-NN):k-NN是一種用于回歸和分類里最簡單但功能強大的算法。k-NN不需要任何特定的訓(xùn)練階段,顧名思義,預(yù)測是基于k-最近鄰到測試點。由于k-NN是非參數(shù)模型,模型性能取決于數(shù)據(jù)的分布。在下面的例子中,我們正在研究iris數(shù)據(jù)集,以了解數(shù)據(jù)點的數(shù)量如何影響k-NN表現(xiàn)。為了更好表現(xiàn)結(jié)果,我們只考慮了這組數(shù)據(jù)的四個特性中的兩個:萼片長度和萼片寬度。

KNN中預(yù)測類隨數(shù)據(jù)大小的變化

圖7:KNN中預(yù)測類隨數(shù)據(jù)大小的變化

后面的實驗中我們隨機從分類1中選取一個點作為試驗數(shù)據(jù)(用紅色星星表示),同時假設(shè)k=3并用多數(shù)投票方式來預(yù)測試驗數(shù)據(jù)的分類。圖7(a)是用了少量數(shù)據(jù)做的試驗,我們發(fā)現(xiàn)這個模型把試驗點錯誤分在分類2中。當(dāng)數(shù)據(jù)點越來越多,模型會把數(shù)據(jù)點正確預(yù)測到分類1中。從上面圖中我們可以知道,KNN與數(shù)據(jù)質(zhì)量成正相關(guān),數(shù)據(jù)越多可以讓模型更一致、更精確。

決策樹算法:與線性回歸和KNN類似,也受數(shù)據(jù)數(shù)量的影響。

根據(jù)數(shù)據(jù)的大小形成不同的樹狀結(jié)構(gòu)

圖8:根據(jù)數(shù)據(jù)的大小形成不同的樹狀結(jié)構(gòu)

決策樹也是一種非參數(shù)模型,它試圖最好地擬合數(shù)據(jù)的底層分布。拆分是對特性值執(zhí)行的,目的是在子級創(chuàng)建不同的類。由于模型試圖最好地擬合可用的訓(xùn)練數(shù)據(jù),因此數(shù)據(jù)的數(shù)量直接決定了分割級別和最終類。從上面的圖中我們可以清楚的看到,數(shù)據(jù)集的大小對分割點和最終的類預(yù)測有很大的影響。更多的數(shù)據(jù)有助于找到好分割點,避免過度擬合。

如何解決數(shù)據(jù)量少的問題?

圖9:數(shù)據(jù)量少的基本含義和解決它的可能方法和技術(shù)

上圖試圖捕捉處理小數(shù)據(jù)集時所面臨的核心問題,以及解決這些問題的可能方法和技術(shù)。在本部分中,我們將只關(guān)注傳統(tǒng)機器學(xué)習(xí)中使用的技術(shù)。

改變損失函數(shù):對于分類問題,我們經(jīng)常使用交叉熵?fù)p失,很少使用平均絕對誤差或平均平方誤差來訓(xùn)練和優(yōu)化我們的模型。在數(shù)據(jù)不平衡的情況下,由于模型對最終損失值的影響較大,使得模型更加偏向于多數(shù)類,使得我們的模型變得不那么有用。

在這種情況下,我們可以對不同類對應(yīng)的損失增加權(quán)重,以平衡這種數(shù)據(jù)偏差。例如,如果我們有兩個按比例4:1計算數(shù)據(jù)的類,我們可以將比例1:4的權(quán)重應(yīng)用到損失函數(shù)計算中,使數(shù)據(jù)平衡。這種技術(shù)可以幫助我們輕松地緩解不平衡數(shù)據(jù)的問題,并改進跨不同類的模型泛化。我們可以很容易地找到R和Python中的庫,它們可以幫助在損失計算和優(yōu)化過程中為類分配權(quán)重。Scikit-learn有一個方便的實用函數(shù)來計算基于類頻率的權(quán)重:

我們可以用class_weight=‘balanced’來代替上面的計算量,并且與class_weights計算結(jié)果一樣。我們同樣可以依據(jù)我們的需求來定義分類權(quán)重。

異常/變更檢測:在欺詐或機器故障等高度不平衡的數(shù)據(jù)集的情況下,是否可以將這些例子視為異常值得思考。如果給定的問題滿足異常判據(jù),我們可以使用OneClassSVM、聚類方法或高斯異常檢測方法等模型。這些技術(shù)要求我們改變思維方式,將次要類視為異常類,這可能幫助我們找到分離和分類的新方法。變化檢測類似于異常檢測,只是我們尋找的是變化或差異,而不是異常。這些可能是根據(jù)使用模式或銀行事務(wù)觀察到的用戶行為的變化。

圖10:過采和欠采樣的情況

上采樣還是下采樣:由于不平衡的數(shù)據(jù)本質(zhì)上是以不同的權(quán)重懲罰多數(shù)類,所以解決這個問題的一個方法是使數(shù)據(jù)平衡。這可以通過增加少數(shù)類的頻率或通過隨機或集群抽樣技術(shù)減少多數(shù)類的頻率來實現(xiàn)。過度抽樣與欠抽樣以及隨機抽樣與集群抽樣的選擇取決于業(yè)務(wù)上下文和數(shù)據(jù)大小。一般來說,當(dāng)總體數(shù)據(jù)大小較小時,上采樣是選的,而當(dāng)我們有大量數(shù)據(jù)時,下采樣是有用的。類似地,隨機抽樣和聚集抽樣是由數(shù)據(jù)分布的好壞決定的。

生成合成數(shù)據(jù):盡管上采樣或下采樣有助于使數(shù)據(jù)平衡,但是重復(fù)的數(shù)據(jù)增加了過度擬合的機會。解決此問題的另一種方法是在少數(shù)類數(shù)據(jù)的幫助下生成合成數(shù)據(jù)。合成少數(shù)過采樣技術(shù)(SMOTE)和改進過采樣技術(shù)是產(chǎn)生合成數(shù)據(jù)的兩種技術(shù)。簡單地說,合成少數(shù)過采樣技術(shù)接受少數(shù)類數(shù)據(jù)點并創(chuàng)建新的數(shù)據(jù)點,這些數(shù)據(jù)點位于由直線連接的任意兩個最近的數(shù)據(jù)點之間。為此,該算法計算特征

圖11:基于K=3,合成少數(shù)過采樣技術(shù)過程

M-SMOTE是一個改進版的SMOTE,它考慮了數(shù)據(jù)中少數(shù)分類的底層分布。該算法將少數(shù)類的樣本分為安全/安全樣本、邊界樣本和潛在噪聲樣本三大類。這是通過計算少數(shù)類樣本與訓(xùn)練數(shù)據(jù)樣本之間的距離來實現(xiàn)的。與SMOTE不同的是,該算法從k個最近鄰中隨機選擇一個數(shù)據(jù)點作為安全樣本,從邊界樣本中選擇最近鄰,對潛在噪聲不做任何處理。

文章標(biāo)題:打破機器學(xué)習(xí)中的小數(shù)據(jù)集詛咒
標(biāo)題URL:http://www.muchs.cn/news46/103396.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、App設(shè)計、微信公眾號品牌網(wǎng)站設(shè)計、網(wǎng)站收錄營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)