機(jī)器學(xué)習(xí)的關(guān)鍵點(diǎn)是什么 數(shù)據(jù)量比算法還重要
5. 機(jī)器學(xué)習(xí)中最大的問(wèn)題就是“維度災(zāi)難”!
本文引用地址:http://butianyuan.cn/article/201811/394640.htm除了過(guò)擬合,機(jī)器學(xué)習(xí)中最大的問(wèn)題就是維度災(zāi)難。這一名詞是由 Bellman 在 1961 年提出的,指的是當(dāng)輸入維度很高時(shí),許多在低維工作正常的算法將無(wú)法正常工作。但是在機(jī)器學(xué)習(xí)中,它的意義更廣。隨著樣本維度(特征數(shù)量)的增加,進(jìn)行正確泛化變得越來(lái)越難,因?yàn)楣潭ù笮〉挠?xùn)練集對(duì)輸入空間的覆蓋逐漸縮減。
高維的一般問(wèn)題是,來(lái)自三維世界的人類(lèi)直覺(jué)通常不適用于高維空間。在高維度當(dāng)中,多元高斯分布的大部分?jǐn)?shù)據(jù)并不接近平均值,而是在其周?chē)絹?lái)越遠(yuǎn)的「殼」中;此外,高維分布的大部分體積分布在表面,而不是體內(nèi)。如果恒定數(shù)量的樣本在高維超立方體中均勻分布,那么在超越某個(gè)維數(shù)的情況下,大多數(shù)樣本將更接近于超立方體的一個(gè)面,而不是它們的最近鄰。此外,如果我們通過(guò)嵌入超立方體的方式逼近一個(gè)超球面,那么在高維度下,超立方體幾乎所有的體積都在超球面之外。這對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō)是個(gè)壞消息,因?yàn)橐环N類(lèi)型的形狀常??梢员涣硪环N形狀所逼近,但在高維空間中卻失效了。
建立二維或三維分類(lèi)器容易;我們可以?xún)H通過(guò)視覺(jué)檢查找出不同類(lèi)別樣本之間的合理邊界。但是在高維中,我們很難理解數(shù)據(jù)的分布結(jié)構(gòu)。這又反過(guò)來(lái)使設(shè)計(jì)一個(gè)好的分類(lèi)器變得困難。簡(jiǎn)而言之,人們可能會(huì)認(rèn)為收集更多的特征一定不產(chǎn)生負(fù)面作用,因?yàn)樗鼈冏疃嘀皇遣惶峁┯嘘P(guān)分類(lèi)的新信息而已。但事實(shí)上,維度災(zāi)難的影響可能大于添加特征所帶來(lái)的利益。
6. “理論保證”與“實(shí)際出入”的相互關(guān)系
機(jī)器學(xué)習(xí)論文中充斥著理論保證。最常見(jiàn)的保證就是關(guān)于保持模型良好泛化能力的訓(xùn)練樣本數(shù)量約束問(wèn)題。首先,該問(wèn)題顯然是可證的。歸納通常與演繹相對(duì):通過(guò)演繹,你可以確保結(jié)論是正確的; 在歸納中,所有臆想都被摒棄?;蛟S這就是傳世的古老智慧。近十年的主要突破就是認(rèn)識(shí)到歸納的結(jié)果是可證的這一事實(shí),尤其在我們?cè)敢饨o出概率保證時(shí)。
必須斟酌這類(lèi)約束意味著什么。這并不意味著,如果你的網(wǎng)絡(luò)返回與某個(gè)特定訓(xùn)練集一致的假設(shè),那么這個(gè)假設(shè)就可能具有很好的泛化能力。而是,給定一個(gè)足夠大的訓(xùn)練集,你的網(wǎng)絡(luò)很可能會(huì)返回一個(gè)泛化能力好的假設(shè)或無(wú)法得到一致的假設(shè)。這類(lèi)約束也沒(méi)有教我們?nèi)绾芜x擇一個(gè)好的假設(shè)空間。它只告訴我們,如果假設(shè)空間包含好的分類(lèi)器,那么隨著訓(xùn)練集的增大,網(wǎng)絡(luò)訓(xùn)練出一個(gè)弱分類(lèi)器的概率會(huì)減小。如果縮小假設(shè)空間,約束條件作用會(huì)增強(qiáng),但是訓(xùn)練出一個(gè)強(qiáng)分類(lèi)器的概率也會(huì)下降。
另一種常見(jiàn)的理論保證是漸進(jìn)性:假如輸入的數(shù)據(jù)規(guī)模是無(wú)窮大的,那么網(wǎng)絡(luò)肯定會(huì)輸出一個(gè)強(qiáng)分類(lèi)器。聽(tīng)起來(lái)靠譜,但是由于要保證漸近性,選擇某個(gè)網(wǎng)絡(luò)而非另一個(gè)就顯得過(guò)于輕率。在實(shí)踐中,我們很少處于漸近狀態(tài)。由上面討論的偏差 - 方差權(quán)衡可知,如果網(wǎng)絡(luò) A 在具有海量數(shù)據(jù)時(shí)比網(wǎng)絡(luò) B 好,則在有限數(shù)據(jù)情況下,B 往往比 A 好。
理論保證在機(jī)器學(xué)習(xí)中存在的意義不僅僅是作為評(píng)判實(shí)際決策的標(biāo)準(zhǔn),而且是理解的方法及設(shè)計(jì)算法的動(dòng)力。鑒于此,它十分有用。事實(shí)上,這么多年以來(lái),正是理論聯(lián)系實(shí)際促進(jìn)了機(jī)器學(xué)習(xí)的飛躍式進(jìn)步。注意:學(xué)習(xí)是一個(gè)復(fù)雜的現(xiàn)象,它在理論上說(shuō)得通,在實(shí)際工作中可行,也并不表示前者是導(dǎo)致后者的原因。
7. “特征工程”是機(jī)器學(xué)習(xí)的關(guān)鍵
最后,有些機(jī)器學(xué)習(xí)項(xiàng)目大獲成功,有些卻失敗了。這是什么造成的?最重要的影響因素就是使用的特征。如果你獲取到很多獨(dú)立的且與所屬類(lèi)別相關(guān)的特征,那么學(xué)習(xí)過(guò)程就很容易。相反,若某一個(gè)類(lèi)是特征的極其復(fù)雜的函數(shù),你的模型可能無(wú)法學(xué)習(xí)到該函數(shù)。通常來(lái)說(shuō),原始數(shù)據(jù)格式很不適合學(xué)習(xí),但是可以基于它來(lái)構(gòu)建特征。這正是機(jī)器學(xué)習(xí)項(xiàng)目最重要的部分,通常也是最有趣的部分,直覺(jué)、創(chuàng)造力、「魔術(shù)」和技術(shù)同樣重要。
初學(xué)者常常會(huì)驚訝于機(jī)器學(xué)習(xí)項(xiàng)目實(shí)際上花在機(jī)器學(xué)習(xí)上的時(shí)間很少。但是當(dāng)你將收集、整合、清洗和預(yù)處理數(shù)據(jù)以及將數(shù)據(jù)重構(gòu)成特征過(guò)程中解決錯(cuò)誤等瑣事所消耗的時(shí)間考慮在內(nèi)就不奇怪了。而且,機(jī)器學(xué)習(xí)并不只是構(gòu)建數(shù)據(jù)集跑一次模型就沒(méi)事了,它通常是一個(gè)跑模型、分析結(jié)果、修改數(shù)據(jù)集/模型的迭代式過(guò)程。學(xué)習(xí)是其中最快的部分,但這取決于我們已經(jīng)可以熟練運(yùn)用它!特征工程因?yàn)獒槍?duì)特定的領(lǐng)域,所以很難做,而模型架構(gòu)的適用范圍更廣泛。但是,這二者之間并沒(méi)有清晰的界線(xiàn),這通常可以解釋那些整合了領(lǐng)域知識(shí)的模型具有更好的性能。
8. 記?。簲?shù)據(jù)量比算法還重要!
在計(jì)算機(jī)科學(xué)的大多數(shù)領(lǐng)域,時(shí)間和內(nèi)存是兩大緊缺資源。但在機(jī)器學(xué)習(xí)中,數(shù)據(jù)集儼然是第三個(gè)緊缺資源。隨著時(shí)間的推移,瓶頸之爭(zhēng)也在不斷改變。在 20 世紀(jì) 80 年代,數(shù)據(jù)通常是瓶頸。而如今時(shí)間更為寶貴。我們今天有海量的數(shù)據(jù)可用,但是卻沒(méi)有充足的時(shí)間去處理它,這些數(shù)據(jù)因此被擱置。這就產(chǎn)生了一個(gè)悖論:即使在原則上講,大量的數(shù)據(jù)意味著可以學(xué)習(xí)到更復(fù)雜的分類(lèi)器,但在實(shí)踐中,我們往往采用更簡(jiǎn)單的分類(lèi)器,因?yàn)閺?fù)雜的分類(lèi)器意味著更長(zhǎng)的訓(xùn)練時(shí)間。部分解決方案是提出可以快速學(xué)習(xí)到復(fù)雜分類(lèi)器的方法,且今天在這一方向上確實(shí)取得了顯著的進(jìn)展。
使用更智能的算法的收益不如期望的部分原因是,第一次取近似值時(shí),它跟其它算法無(wú)異。當(dāng)你認(rèn)為表征方式之間的區(qū)別與規(guī)則、神經(jīng)網(wǎng)絡(luò)之間的區(qū)別類(lèi)似時(shí),這會(huì)讓你驚訝。但事實(shí)是,命題規(guī)則可以輕易地編碼進(jìn)神經(jīng)網(wǎng)絡(luò),并且其它的表征方式之間也有類(lèi)似的關(guān)系。模型本質(zhì)上都是通過(guò)將近鄰樣本分到相同的類(lèi)別而實(shí)現(xiàn)的,關(guān)鍵差異在于「近鄰」的含義。對(duì)于非均勻分布的數(shù)據(jù),模型可以產(chǎn)生廣泛不同的邊界,同時(shí)在重要的區(qū)域(具有大量訓(xùn)練樣例的區(qū)域,因此也是大多數(shù)文本樣例可能出現(xiàn)的區(qū)域)中產(chǎn)生相同的預(yù)測(cè)。這也能解釋為什么強(qiáng)大的模型可能是不穩(wěn)定的但仍然很準(zhǔn)確。
一般來(lái)說(shuō),我們首先要考慮最簡(jiǎn)單的模型(例如,先考慮樸素貝葉斯而非 logistic 回歸,先考慮 K-近鄰而非支持向量機(jī))。模型越復(fù)雜越誘人,但是它們通常很難使用,因?yàn)槟阈枰{(diào)整很多的節(jié)點(diǎn)以獲得好的結(jié)果,同時(shí),它們的內(nèi)部構(gòu)造極其不透明。
模型可以分為兩種主要類(lèi)型:一種是規(guī)模固定的模型,例如線(xiàn)性分類(lèi)器,另一種是表征能力隨數(shù)據(jù)集增強(qiáng)的模型,例如決策樹(shù)。固定規(guī)模的模型只能利用有限的數(shù)據(jù)。規(guī)模可變的模型理論上可以擬合任何函數(shù),只要有足夠大的數(shù)據(jù)集,但是現(xiàn)實(shí)很骨感,總存在算法的局限性或計(jì)算成本。而且,由于維度災(zāi)難,現(xiàn)有的數(shù)據(jù)集可能不夠。鑒于這些原因,更智能的算法—那些充分利用數(shù)據(jù)和計(jì)算資源的算法--如果你愿意努力去調(diào)試,最終會(huì)得到好的結(jié)果。在設(shè)計(jì)模型與學(xué)習(xí)分類(lèi)器之間并沒(méi)有十分清晰的界線(xiàn);但是,任何給定的知識(shí)點(diǎn)都可以編碼進(jìn)模型或從數(shù)據(jù)中學(xué)習(xí)到。因此,模型設(shè)計(jì)往往是機(jī)器學(xué)習(xí)項(xiàng)目中的重要組成部分,設(shè)計(jì)者最好擁有相關(guān)專(zhuān)業(yè)背景。
9. “單模型”很難實(shí)現(xiàn)最優(yōu),“多模型集成”才是出路!
在機(jī)器學(xué)習(xí)發(fā)展的早期,大家都有各自喜愛(ài)的模型,用一些先驗(yàn)的理由說(shuō)明它的優(yōu)越性。研究員對(duì)模型開(kāi)發(fā)了大量的變體并從中挑選一個(gè)最優(yōu)的模型。隨后,系統(tǒng)的經(jīng)驗(yàn)比較表明,最好的模型隨應(yīng)用的改變而改變,開(kāi)始出現(xiàn)了包含許多不同模型的系統(tǒng)。現(xiàn)在的研究開(kāi)始嘗試調(diào)試多個(gè)模型的不同變體,然后挑選表現(xiàn)最好的那一個(gè)。但研究人員開(kāi)始注意到,不選擇找到的最佳變體,而是結(jié)合多個(gè)變體,卻得到了更好的結(jié)果(通常會(huì)好很多),而且這沒(méi)有增加工作量。
現(xiàn)在,模型集成已經(jīng)是標(biāo)準(zhǔn)方法。其中最簡(jiǎn)單的技術(shù)叫 bagging 算法,我們僅通過(guò)重采樣來(lái)生成訓(xùn)練數(shù)據(jù)集的隨機(jī)變體,再基于這些變體分別學(xué)習(xí)分類(lèi)器,并通過(guò)投票整合這些分類(lèi)器的結(jié)果。此法的可行性在于它大幅減少了方差,且只微微提升了一點(diǎn)偏差。在 boosTIng 算法中,訓(xùn)練樣例有權(quán)重,而且這些權(quán)重各不相同,因此每個(gè)新分類(lèi)器都把重點(diǎn)放在前面的模型會(huì)出錯(cuò)的樣例上。在 stacking 算法中,每個(gè)單獨(dú)的分類(lèi)器的輸出作為「高層」模型的輸入,這些高層模型會(huì)以最佳方式組合這些模型。
還有很多其它的方法,就不一一列舉了,但是總的趨勢(shì)是規(guī)模越來(lái)越大的集成學(xué)習(xí)。在 Netflix 的獎(jiǎng)金激勵(lì)下,全世界的團(tuán)隊(duì)致力于構(gòu)建最佳視頻推薦系統(tǒng)。隨著競(jìng)賽的推進(jìn),競(jìng)賽團(tuán)隊(duì)發(fā)現(xiàn)通過(guò)結(jié)合其它團(tuán)隊(duì)的模型可以獲得最佳結(jié)果,同時(shí)這也促進(jìn)團(tuán)隊(duì)的合并。冠軍和亞軍模型都是由 100 多個(gè)小模型組成的集成模型,兩個(gè)集成模型相結(jié)合可進(jìn)一步提高成績(jī)。毫無(wú)疑問(wèn),將來(lái)還會(huì)出現(xiàn)更大的集成模型。
10 .“簡(jiǎn)單”不能代表是“準(zhǔn)確”!
奧卡姆剃刀原理指出,如無(wú)必要,勿增實(shí)體。在機(jī)器學(xué)習(xí)中,這通常意味著,給定兩個(gè)具有相同訓(xùn)練誤差的分類(lèi)器,兩者中較簡(jiǎn)單的分類(lèi)器可能具有最低的評(píng)估誤差。關(guān)于這一說(shuō)法的佐證在文獻(xiàn)中隨處可見(jiàn),但實(shí)際上有很多反例用來(lái)反駁它,「沒(méi)有免費(fèi)午餐」定理質(zhì)疑它的真實(shí)性。
我們?cè)谇拔闹幸部吹搅艘粋€(gè)反例:集成模型。即使訓(xùn)練誤差已經(jīng)達(dá)到零,通過(guò)增加分類(lèi)器,增強(qiáng)集成模型的泛化誤差仍然可以繼續(xù)減少。因此,與直覺(jué)相悖,模型的參數(shù)數(shù)量與其過(guò)擬合趨勢(shì)并沒(méi)有必然的聯(lián)系。
一個(gè)巧妙的觀(guān)點(diǎn)是將模型復(fù)雜性等同于假設(shè)空間的大小,因?yàn)檩^小的空間允許用較短的編碼表征假設(shè)。類(lèi)似理論保證部分中的界限可能被理解成較短的假設(shè)編碼有更好的泛化能力。通過(guò)在有先驗(yàn)偏好的空間中對(duì)假設(shè)進(jìn)行較短的編碼,我們可以進(jìn)一步細(xì)化這一點(diǎn)。但是把這看作準(zhǔn)確率和簡(jiǎn)單性之間的權(quán)衡的證明則是循環(huán)論證:我們通過(guò)設(shè)計(jì)使偏愛(ài)的假設(shè)更簡(jiǎn)單,如果它們準(zhǔn)確率不錯(cuò),那是因?yàn)槠珢?ài)假設(shè)的正確,而不是因?yàn)樵谔囟ū碚飨录僭O(shè)的「簡(jiǎn)單」。
11.“可表征”并不代表“可學(xué)習(xí)”!
所有運(yùn)用于非固定規(guī)模的模型表征實(shí)際上都有「任意函數(shù)都可以使用該表征來(lái)表示或無(wú)限逼近」之類(lèi)的相關(guān)定理。這使得某表征方法的偏好者常常會(huì)忽略其它要素。然而,僅憑可表征性并不意味著模型可以學(xué)習(xí)。例如,葉節(jié)點(diǎn)多于訓(xùn)練樣本的決策樹(shù)模型就不會(huì)學(xué)習(xí)。在連續(xù)的空間中,通常使用一組固定的原語(yǔ)表征很簡(jiǎn)單的函數(shù)都需要無(wú)限的分量。
進(jìn)一步講,如果評(píng)估函數(shù)在假設(shè)空間有很多局部最優(yōu)點(diǎn)(這很常見(jiàn)),模型可能就找不到最優(yōu)的函數(shù),即使它是可表征的。給定有限的數(shù)據(jù)、時(shí)間及存儲(chǔ)空間,標(biāo)準(zhǔn)的模型只能學(xué)到所有可能函數(shù)集的一個(gè)很小的子集,且這個(gè)子集隨所選的表征方法的不同而不同。因此,關(guān)鍵問(wèn)題不在「模型是否可表示」,而「模型是否可學(xué)習(xí)」以及嘗試不同的模型(甚至是集成模型)是很重要的。
12 .“相關(guān)性”并非就是“因果關(guān)系”!
相關(guān)性并不意味著因果關(guān)系這一點(diǎn)被頻繁提起,以至于都不值得再批評(píng)。但是,我們討論的某類(lèi)模型可能只學(xué)習(xí)相關(guān)性,但是它們的結(jié)果通常被看作是表征因果關(guān)系。有問(wèn)題嗎?如果有,那么大家為何還這么做?
通常是不對(duì)的,預(yù)測(cè)模型學(xué)習(xí)的目標(biāo)是用它們作為行動(dòng)的指南。當(dāng)發(fā)現(xiàn)人們?cè)谫I(mǎi)啤酒的時(shí)候也會(huì)買(mǎi)紙尿布,那么把啤酒放在紙尿布旁邊或許會(huì)提高銷(xiāo)量。但如果不實(shí)際進(jìn)行實(shí)驗(yàn)則很難驗(yàn)證。機(jī)器學(xué)習(xí)通常用于處理觀(guān)測(cè)數(shù)據(jù),其中預(yù)測(cè)變量不受模型的控制,和實(shí)驗(yàn)數(shù)據(jù)相反(可控的)。一些學(xué)習(xí)算法也許可以通過(guò)觀(guān)測(cè)數(shù)據(jù)挖掘潛在的因果關(guān)系,但是實(shí)用性很差。另一方面,相關(guān)性只是潛在的因果關(guān)系的標(biāo)識(shí),我們可以用它指導(dǎo)進(jìn)一步的研究。
評(píng)論