
基于云的機(jī)器學(xué)習(xí)工具帶來(lái)了使用機(jī)器學(xué)習(xí)創(chuàng)造和提供新的功能的可能性。然而,當(dāng)我們使用不當(dāng)時(shí),這些工具會(huì)輸出不好的結(jié)果。想要在應(yīng)用程序中成功地融入機(jī)器學(xué)習(xí)的開發(fā)者,需要注意十大關(guān)鍵要點(diǎn)。
在提供發(fā)現(xiàn)埋藏?cái)?shù)據(jù)深層的模式的能力上,機(jī)器學(xué)習(xí)有著潛在的能力使得應(yīng)用程序更加的強(qiáng)大并且更能響應(yīng)用戶的需求。精心調(diào)校好的算法能夠從巨大的并且互不相同的數(shù)據(jù)源中提取價(jià)值,同時(shí)沒有人類思考和分析的限制。對(duì)于開發(fā)者而言,機(jī)器學(xué)習(xí)為應(yīng)用業(yè)務(wù)的關(guān)鍵分析提供了希望,從而實(shí)現(xiàn)從改善客戶體驗(yàn)到提供產(chǎn)品推薦上升至超個(gè)性化內(nèi)容服務(wù)的任何應(yīng)用程序。
像Amazon和Micorosoft這樣的云供應(yīng)商提供云功能的機(jī)器學(xué)習(xí)解決方案,承諾為開發(fā)者提供一個(gè)簡(jiǎn)單的方法,使得機(jī)器學(xué)習(xí)的能力能夠融入到他們的應(yīng)用程序當(dāng)中,這也算是最近的頭條新聞了。承諾似乎很好,但開發(fā)者還需謹(jǐn)慎。
對(duì)于開發(fā)人員而言,基于云的機(jī)器學(xué)習(xí)工具帶來(lái)了使用機(jī)器學(xué)習(xí)創(chuàng)造和提供新的功能的可能性。然而,當(dāng)我們使用不當(dāng)時(shí),這些工具會(huì)輸出不好的結(jié)果,用戶可能會(huì)因此而感到不安。測(cè)試過(guò)微軟年齡檢測(cè)機(jī)器學(xué)習(xí)工具的人都會(huì)發(fā)現(xiàn),伴隨即插即用的易用性而來(lái)的是主要的精度問(wèn)題——對(duì)于關(guān)鍵應(yīng)用程序或者是重大決策,它應(yīng)該不值得信賴。
想要在應(yīng)用程序中成功地融入機(jī)器學(xué)習(xí)的開發(fā)者,需要注意以下的一些關(guān)鍵要點(diǎn):
1. 算法使用的數(shù)據(jù)越多,它的精度會(huì)更加準(zhǔn)確,所以如果可能要盡量避免抽樣。機(jī)器學(xué)習(xí)理論在預(yù)測(cè)誤差上有著非常直觀的描述。簡(jiǎn)而言之,在機(jī)器學(xué)習(xí)模型和最優(yōu)預(yù)測(cè)(在理論上達(dá)到最佳可能的誤差)之間的預(yù)測(cè)誤差的差距可以被分解為三個(gè)部分:
由于沒有找到正確函數(shù)形式的模型的誤差
由于沒有找到最佳參數(shù)的模型的誤差
由于沒用使用足夠數(shù)據(jù)的模型的誤差
如果訓(xùn)練集有限,它可能無(wú)法支撐解決這個(gè)問(wèn)題所需的模型復(fù)雜性。統(tǒng)計(jì)學(xué)的基本規(guī)律告訴我們,如果我們可以的話,應(yīng)該利用所有的數(shù)據(jù)而不是抽樣。
2. 對(duì)給定的問(wèn)題選擇效果最好的機(jī)器學(xué)習(xí)算法是決定成敗的關(guān)鍵。例如,梯度提升樹(GBT)是一個(gè)非常受歡迎的監(jiān)督學(xué)習(xí)算法,由于其精度而被業(yè)內(nèi)開發(fā)人員廣泛使用。然而,盡管其高度受歡迎,我們也不能盲目的把這種算法應(yīng)用于任何問(wèn)題上。相反,我們使用的算法應(yīng)該是能夠最佳地?cái)M合數(shù)據(jù)特征同時(shí)能夠保證精度的算法。
為了證明這個(gè)觀點(diǎn),嘗試做這樣一個(gè)實(shí)驗(yàn),在數(shù)據(jù)集 the popular text categorization dataset rcv1上測(cè)試GBT算法和線性支持向量機(jī)(SVM)算法,并比較兩者的精度。我們觀察到在這個(gè)問(wèn)題上,就錯(cuò)誤率而言,線性SVM要優(yōu)于GBT算法。這是因?yàn)樵谖谋绢I(lǐng)域當(dāng)中,數(shù)據(jù)通常是高維的。一個(gè)線性分類器能夠在N-1維當(dāng)中完美的分離出N個(gè)樣本,所以,一個(gè)樣本模型在這種數(shù)據(jù)上通常表現(xiàn)的更好。此外,模型越簡(jiǎn)單,通過(guò)利用有限的訓(xùn)練樣本來(lái)避免過(guò)擬合的方式學(xué)習(xí)參數(shù),并且提供一個(gè)精確的模型,產(chǎn)生的問(wèn)題也會(huì)隨之越少。
另一方面,GBT是高度非線性的并且更加強(qiáng)大,但是在這種環(huán)境中卻更難學(xué)習(xí)并且更容易發(fā)生過(guò)擬合,往往結(jié)果精度也較低。
3. 為了得到一個(gè)更好的模型,必須選擇最佳的的算法和相關(guān)的參數(shù)。這對(duì)于非數(shù)據(jù)科學(xué)家而言可能不容易?,F(xiàn)代的機(jī)器學(xué)習(xí)算法有許多的參數(shù)可以調(diào)整。例如,對(duì)于流行的GBT算法單獨(dú)的就有十二個(gè)參數(shù)可以設(shè)置,其中包括如何控制樹的大小,學(xué)習(xí)率,行或列的采樣方法,損失函數(shù),正則化選項(xiàng)等等。一個(gè)特有的項(xiàng)目需要在給定的數(shù)據(jù)集上為每一個(gè)參數(shù)找到其最優(yōu)值并且達(dá)到最精準(zhǔn)的精度,這確實(shí)不是一件容易的事。但是為了得到最佳的結(jié)果,數(shù)據(jù)科學(xué)家需要訓(xùn)練大量的模型,而直覺和經(jīng)驗(yàn)會(huì)幫助他們根據(jù)交叉驗(yàn)證的得分,然后決定使用什么參數(shù)再次嘗試。
4. 機(jī)器學(xué)習(xí)模型會(huì)隨著好的數(shù)據(jù)而變得更好,錯(cuò)誤的數(shù)據(jù)收集和數(shù)據(jù)處理會(huì)降低你建立預(yù)測(cè)和歸納的機(jī)器學(xué)習(xí)模型的能力。根據(jù)經(jīng)驗(yàn),建議仔細(xì)審查與主題相關(guān)的數(shù)據(jù),從而深入了解數(shù)據(jù)和幕后數(shù)據(jù)的生成過(guò)程。通常這個(gè)過(guò)程可以識(shí)別與記錄、特征、值或采樣相關(guān)的數(shù)據(jù)質(zhì)量問(wèn)題。