由于我們的主要任務(wù)是選擇一種學(xué)習(xí)算法,并對(duì)某些數(shù)據(jù)進(jìn)行訓(xùn)練,所以最可能出現(xiàn)的兩個(gè)問題不外乎是“壞算法”和“壞數(shù)據(jù)”,本文主要從壞數(shù)據(jù)出發(fā),帶大家了解目前機(jī)器學(xué)習(xí)面臨的常見問題和挑戰(zhàn),從而更好地學(xué)習(xí)機(jī)器學(xué)習(xí)理論。
一、訓(xùn)練數(shù)據(jù)的數(shù)量不足
要教一個(gè)牙牙學(xué)語(yǔ)的小朋友什么是蘋果,你只需要指著蘋果說(shuō)“蘋果”(可能需要重復(fù)這個(gè)過程幾次)就行了,然后孩子就能夠識(shí)別各種顏色和形狀的蘋果了,簡(jiǎn)直是天才!
機(jī)器學(xué)習(xí)還沒達(dá)到這一步,大部分機(jī)器學(xué)習(xí)算法需要大量的數(shù)據(jù)才能正常工作。即使是最簡(jiǎn)單的問題,很可能也需要成千上萬(wàn)個(gè)示例,而對(duì)于諸如圖像或語(yǔ)音識(shí)別等復(fù)雜問題,則可能需要數(shù)百萬(wàn)個(gè)示例(除非你可以重用現(xiàn)有模型的某些部分)。
數(shù)據(jù)的不合理有效性
在2001年發(fā)表的一篇著名論文中,微軟研究員Michele Banko和Eric Brill表明,給定足夠的數(shù)據(jù),截然不同的機(jī)器學(xué)習(xí)算法(包括相當(dāng)簡(jiǎn)單的算法)在自然語(yǔ)言歧義消除這個(gè)復(fù)雜問題上注8,表現(xiàn)幾乎完全一致(如下圖所示)。
數(shù)據(jù)與算法的重要性注
正如作者所說(shuō):“這些結(jié)果表明,我們可能會(huì)重新思考如何在二者之間做權(quán)衡—將錢和時(shí)間花在算法的開發(fā)上,還是花在語(yǔ)料庫(kù)的建設(shè)上。”
對(duì)復(fù)雜問題而言,數(shù)據(jù)比算法更重要,這一想法被Peter Norvig等人進(jìn)一步推廣,于2009年發(fā)表論文“The Unreasonable Effectiveness of Data”注10。不過需要指出的是,中小型數(shù)據(jù)集依然非常普遍,獲得額外的訓(xùn)練數(shù)據(jù)并不總是一件輕而易舉或物美價(jià)廉的事情,所以暫時(shí)先不要拋棄算法。
二、訓(xùn)練數(shù)據(jù)不具代表性
為了很好地實(shí)現(xiàn)泛化,至關(guān)重要的一點(diǎn)是對(duì)于將要泛化的新示例來(lái)說(shuō),訓(xùn)練數(shù)據(jù)一定要非常有代表性。無(wú)論你使用的是基于實(shí)例的學(xué)習(xí)還是基于模型的學(xué)習(xí),都是如此。
例如,前面用來(lái)訓(xùn)練線性模型的國(guó)家數(shù)據(jù)集并不具備完全的代表性,有部分國(guó)家的數(shù)據(jù)缺失。下圖顯示了補(bǔ)充缺失國(guó)家信息之后的數(shù)據(jù)表現(xiàn)。
更具代表性的訓(xùn)練樣本
如果你用這個(gè)數(shù)據(jù)集訓(xùn)練線性模型,將會(huì)得到圖中的實(shí)線,而虛線表示舊模型。正如你所見,添加部分缺失的國(guó)家信息不僅顯著地改變了模型,也更清楚地說(shuō)明這種簡(jiǎn)單的線性模型可能永遠(yuǎn)不會(huì)那么準(zhǔn)確。看起來(lái),某些非常富裕的國(guó)家并不比中等富裕的國(guó)家更幸福(事實(shí)上,看起來(lái)甚至是不幸福),反之,一些貧窮的國(guó)家也似乎比許多富裕的國(guó)家更加幸福。
使用不具代表性的訓(xùn)練集訓(xùn)練出來(lái)的模型不可能做出準(zhǔn)確的預(yù)估,尤其是針對(duì)那些特別貧窮或特別富裕的國(guó)家。
針對(duì)你想要泛化的案例使用具有代表性的訓(xùn)練集,這一點(diǎn)至關(guān)重要。不過說(shuō)起來(lái)容易,做起來(lái)難:如果樣本集太小,將會(huì)出現(xiàn)采樣噪聲(即非代表性數(shù)據(jù)被選中);而即便是非常大的樣本數(shù)據(jù),如果采樣方式欠妥,也同樣可能導(dǎo)致非代表性數(shù)據(jù)集,這就是所謂的采樣偏差。
關(guān)于采樣偏差的一個(gè)示例
最著名的采樣偏差的示例發(fā)生在1936年美國(guó)總統(tǒng)大選期間,蘭登對(duì)決羅斯福。Literary Digest當(dāng)時(shí)舉行了一次大范圍的民意調(diào)查,向約1000萬(wàn)人發(fā)送郵件,并得到了240萬(wàn)個(gè)回復(fù),因此做出了高度自信的預(yù)言—蘭登將獲得57%的選票。結(jié)果恰恰相反,羅斯福贏得了62%的選票。問題就在于Literary Digest的采樣方式:
首先,為了獲取發(fā)送民意調(diào)查的地址,Literary Digest采用了電話簿、雜志訂閱名單、俱樂部會(huì)員名單等類似名簿。而所有這些名單上的人往往對(duì)富人有更大的偏好,也就更有可能支持共和黨(即蘭登)。
其次,收到民意調(diào)查郵件的人中,不到25%的人給出了回復(fù)。這再次引入了采樣偏差,那些不怎么關(guān)心政治的人、不喜歡Literary Digest的人以及其他的一些關(guān)鍵群體直接被排除在外了。這是一種特殊類型的采樣偏差,叫作無(wú)反應(yīng)偏差。
再舉一個(gè)示例,假設(shè)你想創(chuàng)建一個(gè)系統(tǒng)用來(lái)識(shí)別funk音樂視頻。構(gòu)建訓(xùn)練集的方法之一是直接在YouTube上搜索“funk music”,然后使用搜索結(jié)果的視頻。但是,這其實(shí)基于一個(gè)假設(shè)—YouTube的搜索引擎返回的視頻結(jié)果是所有能夠代表funk音樂的視頻。而實(shí)際的搜索結(jié)果可能會(huì)更偏向于當(dāng)前流行的音樂人(如果你住在巴西,你會(huì)得到很多關(guān)于“funk carioca”的視頻,這聽起來(lái)跟James Brown完全不是一回事)。另一方面,你還能怎樣獲得一個(gè)大的訓(xùn)練集?
三、低質(zhì)量數(shù)據(jù)
顯然,如果訓(xùn)練集滿是錯(cuò)誤、異常值和噪聲(例如,低質(zhì)量的測(cè)量產(chǎn)生的數(shù)據(jù)),系統(tǒng)將更難檢測(cè)到底層模式,更不太可能表現(xiàn)良好。所以花時(shí)間來(lái)清理訓(xùn)練數(shù)據(jù)是非常值得的投入。事實(shí)上,大多數(shù)數(shù)據(jù)科學(xué)家都會(huì)花費(fèi)很大一部分時(shí)間來(lái)做這項(xiàng)工作。例如:
如果某些實(shí)例明顯是異常情況,那么直接將其丟棄,或者嘗試手動(dòng)修復(fù)錯(cuò)誤,都會(huì)大有幫助。
如果某些實(shí)例缺少部分特征(例如,5%的顧客沒有指定年齡),你必須決定是整體忽略這些特征、忽略這部分有缺失的實(shí)例、將缺失的值補(bǔ)充完整(例如,填寫年齡值的中位數(shù)),還是訓(xùn)練一個(gè)帶這個(gè)特征的模型,再訓(xùn)練一個(gè)不帶這個(gè)特征的模型。
四、無(wú)關(guān)特征
正如我們常說(shuō)的:垃圾入,垃圾出。只有訓(xùn)練數(shù)據(jù)里包含足夠多的相關(guān)特征以及較少的無(wú)關(guān)特征,系統(tǒng)才能夠完成學(xué)習(xí)。一個(gè)成功的機(jī)器學(xué)習(xí)項(xiàng)目,其關(guān)鍵部分是提取出一組好的用來(lái)訓(xùn)練的特征集。這個(gè)過程叫作特征工程,包括以下幾點(diǎn):
特征選擇(從現(xiàn)有特征中選擇最有用的特征進(jìn)行訓(xùn)練)。
特征提?。▽F(xiàn)有特征進(jìn)行整合,產(chǎn)生更有用的特征—正如前文提到的,降維算法可以提供幫助)。
通過收集新數(shù)據(jù)創(chuàng)建新特征。
現(xiàn)在我們已經(jīng)看了不少“壞數(shù)據(jù)”的示例,再來(lái)看幾個(gè)“壞算法”的示例。
五、過擬合訓(xùn)練數(shù)據(jù)
假設(shè)你正在國(guó)外旅游,被出租車司機(jī)敲詐,你很可能會(huì)說(shuō),那個(gè)國(guó)家的所有出租車司機(jī)都是強(qiáng)盜。過度概括是我們?nèi)祟惓W龅氖虑椋恍业氖?,如果我們不小心,機(jī)器很可能也會(huì)陷入同樣的陷阱。在機(jī)器學(xué)習(xí)中,這稱為過擬合,也就是指模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,但是泛化時(shí)卻不盡如人意。下圖顯示了一個(gè)訓(xùn)練數(shù)據(jù)過擬合的高階多項(xiàng)式生活滿意度模型。雖然它在訓(xùn)練數(shù)據(jù)上的表現(xiàn)比簡(jiǎn)單的線性模型要好得多,但是你真的敢相信它的預(yù)測(cè)嗎?
過擬合訓(xùn)練數(shù)據(jù)
雖然諸如深度神經(jīng)網(wǎng)絡(luò)這類的復(fù)雜模型可以檢測(cè)到數(shù)據(jù)中的微小模式,但是如果訓(xùn)練集本身是有噪聲的,或者數(shù)據(jù)集太小(引入了采樣噪聲),那么很可能會(huì)導(dǎo)致模型檢測(cè)噪聲本身的模式。很顯然,這些模式不能泛化至新的實(shí)例。舉例來(lái)說(shuō),假設(shè)你給生活滿意度模型提供了更多其他的屬性,包括一些不具信息的屬性(例如國(guó)家名)。在這種情況下,一個(gè)復(fù)雜模型可能會(huì)檢測(cè)到這樣的事實(shí)模式:訓(xùn)練數(shù)據(jù)中,名字中帶有字母w的國(guó)家,如新西蘭(New Zealand,生活滿意度為7.3)、挪威(Norway,生活滿意度為7.4)、瑞典(Sweden,生活滿意度為7.2)和瑞士(Switzerland,生活滿意度為7.5),生活滿意度均大于7。當(dāng)把這個(gè)w滿意度規(guī)則泛化到盧旺達(dá)(Rwanda)或津巴布韋(Zim-babwe)時(shí),你對(duì)結(jié)果有多大的自信?顯然,訓(xùn)練數(shù)據(jù)中的這個(gè)模式僅僅是偶然產(chǎn)生的,但是模型無(wú)法判斷這個(gè)模式是真實(shí)的還是噪聲產(chǎn)生的結(jié)果。
當(dāng)模型相對(duì)于訓(xùn)練數(shù)據(jù)的數(shù)量和噪度都過于復(fù)雜時(shí),會(huì)發(fā)生過擬合??赡艿慕鉀Q方案如下。
簡(jiǎn)化模型:可以選擇較少參數(shù)的模型(例如,選擇線性模型而不是高階多項(xiàng)式模型)也可以減少訓(xùn)練數(shù)據(jù)中的屬性數(shù)量,或者是約束模型。
收集更多的訓(xùn)練數(shù)據(jù)。
減少訓(xùn)練數(shù)據(jù)中的噪聲(例如,修復(fù)數(shù)據(jù)錯(cuò)誤和消除異常值)。
通過約束模型使其更簡(jiǎn)單,并降低過擬合的風(fēng)險(xiǎn),這個(gè)過程稱為正則化。例如,我們前面定義的線性模型有兩個(gè)參數(shù):θ0和θ1。因此,該算法在擬合訓(xùn)練數(shù)據(jù)時(shí),調(diào)整模型的自由度就等于2,它可以調(diào)整線的高度(θ0)和斜率(θ1)。如果我們強(qiáng)行讓?duì)? = 0,那么算法的自由度將會(huì)降為1,并且擬合數(shù)據(jù)將變得更為艱難—它能做的全部就只是將線上移或下移來(lái)盡量接近訓(xùn)練實(shí)例,最后極有可能停留在平均值附近。這確實(shí)太簡(jiǎn)單了!如果我們?cè)试S算法修改θ1,但是我們強(qiáng)制它只能是很小的值,那么算法的自由度將位于1和2之間,這個(gè)模型將會(huì)比自由度為2的模型稍微簡(jiǎn)單一些,同時(shí)又比自由度為1的模型略微復(fù)雜一些。你需要在完美匹配數(shù)據(jù)和保持模型簡(jiǎn)單之間找到合適的平衡點(diǎn),從而確保模型能夠較好地泛化。
下圖顯示了三個(gè)模型。點(diǎn)線表示的是在以圓圈表示的國(guó)家上訓(xùn)練的原始模型(沒有正方形表示的國(guó)家),虛線是我們?cè)谒袊?guó)家(圓圈和方形)上訓(xùn)練的第二個(gè)模型,實(shí)線是用與第一個(gè)模型相同的數(shù)據(jù)訓(xùn)練的模型,但是有一個(gè)正則化約束。可以看到,正則化強(qiáng)制了模型的斜率較小:該模型與訓(xùn)練數(shù)據(jù)(圓圈)的擬合不如第一個(gè)模型,但它實(shí)際上更好地泛化了它沒有在訓(xùn)練時(shí)看到的新實(shí)例(方形)。
在學(xué)習(xí)時(shí),應(yīng)用正則化的程度可以通過一個(gè)超參數(shù)來(lái)控制。超參數(shù)是學(xué)習(xí)算法(不是模型)的參數(shù)。因此,它不受算法本身的影響。超參數(shù)必須在訓(xùn)練之前設(shè)置好,并且在訓(xùn)練期間保持不變。如果將正則化超參數(shù)設(shè)置為非常大的值,會(huì)得到一個(gè)幾乎平坦的模型(斜率接近零)。學(xué)習(xí)算法雖然肯定不會(huì)過擬合訓(xùn)練數(shù)據(jù),但是也更加不可能找到一個(gè)好的解決方案。調(diào)整超參數(shù)是構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)非常重要的組成部分。
正則化降低了過擬合的風(fēng)險(xiǎn)
六、欠擬合訓(xùn)練數(shù)據(jù)
你可能已經(jīng)猜到了,欠擬合和過擬合正好相反。它的產(chǎn)生通常是因?yàn)閷?duì)于底層的數(shù)據(jù)結(jié)構(gòu)來(lái)說(shuō),你的模型太過簡(jiǎn)單。例如,用線性模型來(lái)描述生活滿意度就屬于欠擬合?,F(xiàn)實(shí)情況遠(yuǎn)比模型復(fù)雜得多,所以即便是對(duì)于用來(lái)訓(xùn)練的示例,該模型產(chǎn)生的預(yù)測(cè)都一定是不準(zhǔn)確的。
解決這個(gè)問題的主要方式有:
選擇一個(gè)帶有更多參數(shù)、更強(qiáng)大的模型。
給學(xué)習(xí)算法提供更好的特征集(特征工程)。
減少模型中的約束(例如,減少正則化超參數(shù))。
七、全局總結(jié)
現(xiàn)在我們對(duì)機(jī)器學(xué)習(xí)已經(jīng)有了一定了解。我們暫且退后一步,縱觀一下全局:
機(jī)器學(xué)習(xí)是關(guān)于如何讓機(jī)器可以更好地處理某些特定任務(wù)的理論,它從數(shù)據(jù)中學(xué)習(xí),而無(wú)須清晰地編碼規(guī)則。
機(jī)器學(xué)習(xí)系統(tǒng)有很多類型:有監(jiān)督和無(wú)監(jiān)督,批量的和在線的,基于實(shí)例的和基于模型的,等等。
在一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目中,你從訓(xùn)練集中采集數(shù)據(jù),然后將數(shù)據(jù)交給學(xué)習(xí)算法來(lái)計(jì)算。如果算法是基于模型的,它會(huì)調(diào)整一些參數(shù)來(lái)將模型適配于訓(xùn)練集(即對(duì)訓(xùn)練集本身做出很好的預(yù)測(cè)),然后算法就可以對(duì)新的場(chǎng)景做出合理的預(yù)測(cè)。如果算法是基于實(shí)例的,它會(huì)記住這些示例,并根據(jù)相似度度量將它們與所學(xué)的實(shí)例進(jìn)行比較,從而泛化這些新實(shí)例。
責(zé)任編輯人:CC
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132630
原文標(biāo)題:機(jī)器學(xué)習(xí)訓(xùn)練中常見的問題和挑戰(zhàn)!
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論