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

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

最近深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)方面取得的突破表明,頂級算法和復(fù)雜的結(jié)構(gòu)可以將類人的能力傳授給執(zhí)行特定任務(wù)的機(jī)器。但我們也會發(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í)。

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

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

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

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

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

彈丸運(yùn)動公式

圖3:彈丸運(yùn)動公式

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

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

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

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

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

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

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

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

偏差 vs方差

圖4:偏差 vs方差

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

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

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

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

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

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

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

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

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

我們模擬了一個線性回歸模型,其斜率(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)更接近真實(shí)值。

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

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

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

后面的實(shí)驗(yàn)中我們隨機(jī)從分類1中選取一個點(diǎn)作為試驗(yàn)數(shù)據(jù)(用紅色星星表示),同時假設(shè)k=3并用多數(shù)投票方式來預(yù)測試驗(yàn)數(shù)據(jù)的分類。圖7(a)是用了少量數(shù)據(jù)做的試驗(yàn),我們發(fā)現(xiàn)這個模型把試驗(yàn)點(diǎn)錯誤分在分類2中。當(dāng)數(shù)據(jù)點(diǎn)越來越多,模型會把數(shù)據(jù)點(diǎn)正確預(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ù)模型,它試圖最好地?cái)M合數(shù)據(jù)的底層分布。拆分是對特性值執(zhí)行的,目的是在子級創(chuàng)建不同的類。由于模型試圖最好地?cái)M合可用的訓(xùn)練數(shù)據(jù),因此數(shù)據(jù)的數(shù)量直接決定了分割級別和最終類。從上面的圖中我們可以清楚的看到,數(shù)據(jù)集的大小對分割點(diǎn)和最終的類預(yù)測有很大的影響。更多的數(shù)據(jù)有助于找到好分割點(diǎn),避免過度擬合。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎ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è)