機(jī)器學(xué)習(xí)入門(mén)算法:從線(xiàn)性模型到神經(jīng)網(wǎng)絡(luò)
近段時(shí)間以來(lái),我們頻頻聽(tīng)到「機(jī)器學(xué)習(xí)(machine learning)」這個(gè)詞(通常在預(yù)測(cè)分析(predictive analysis)和人工智能(artificial intelligence)的上下文中)。幾十年來(lái),機(jī)器學(xué)習(xí)實(shí)際上已經(jīng)變成了一門(mén)獨(dú)立的領(lǐng)域。由于現(xiàn)代計(jì)算能力的進(jìn)步,我們最近才能夠真正大規(guī)模地利用機(jī)器學(xué)習(xí)。而實(shí)際上機(jī)器學(xué)習(xí)是如何工作的呢?答案很簡(jiǎn)單:算法(algorithm)。
機(jī)器學(xué)習(xí)是人工智能(artificial intelligence)的一種,其本質(zhì)上講,就是計(jì)算機(jī)可以在無(wú)需編程的情況下自己學(xué)習(xí)概念(concept)。這些計(jì)算機(jī)程序一旦接觸新的數(shù)據(jù),就將會(huì)改變它們的「思考」(或者輸出)。為了實(shí)現(xiàn)機(jī)器學(xué)習(xí),算法是必需的。算法被寫(xiě)入計(jì)算機(jī)并在其剖析數(shù)據(jù)時(shí)給與其需要遵循的規(guī)則。
機(jī)器學(xué)習(xí)算法經(jīng)常被用于預(yù)測(cè)分析。在商業(yè)中,預(yù)測(cè)分析可以用于告訴企業(yè)未來(lái)最有可能發(fā)生什么。例如,使用預(yù)測(cè)分析算法,在線(xiàn) T 恤零售商可以使用當(dāng)前的數(shù)據(jù)來(lái)預(yù)測(cè)下個(gè)月他們將會(huì)售出多少 T 恤。
回歸或分類(lèi)
雖然機(jī)器學(xué)習(xí)也可以用于其它的用途,但是我們將在本指南中著重于預(yù)測(cè)。預(yù)測(cè)是一種基于輸入變量來(lái)估計(jì)輸出變量的過(guò)程。比如,如果我們輸入特定房子的特征,則可以預(yù)測(cè)售價(jià)。
預(yù)測(cè)問(wèn)題分為兩大類(lèi):
-
回歸問(wèn)題(Regression Problems):我們想要預(yù)測(cè)的變量是數(shù)字(例如,房子的價(jià)格)
-
分類(lèi)問(wèn)題(Classification Problems):我們想要預(yù)測(cè)的變量是「是/否」的答案(例如,某一設(shè)備是否會(huì)經(jīng)歷設(shè)備故障)
現(xiàn)在我們已經(jīng)介紹了機(jī)器學(xué)習(xí)在預(yù)測(cè)方面的應(yīng)用,我們可以討論機(jī)器學(xué)習(xí)算法,其分為 3 個(gè)組別:線(xiàn)性模型(linear models)、樹(shù)型模型(tree-based models)、和神經(jīng)網(wǎng)絡(luò)(neural networks)。
什么是線(xiàn)性模型算法

線(xiàn)性模型使用簡(jiǎn)單的公式通過(guò)一組數(shù)據(jù)點(diǎn)來(lái)查找「***擬合」線(xiàn)。通過(guò)你已知的變量方程(比如,原料),你可以求出你想要預(yù)測(cè)的變量(例如,烘烤蛋糕需要多長(zhǎng)時(shí)間)。為了求出預(yù)測(cè)量,我們輸入已知的變量得到答案。換句話(huà)說(shuō),為了求出烘烤蛋糕需要多長(zhǎng)時(shí)間,我們只需要輸入原料。
例如,要烘烤蛋糕,分析過(guò)后我們得到這個(gè)方程:t = 0.5x + 0.25y,其中 t 烤蛋糕的時(shí)間,x 為蛋糕糊的重量,y = 1 表示為巧克力蛋糕而 0 表示為非巧克力蛋糕。所以讓我們假設(shè),我們有 1kg 的蛋糕糊并且我們想要一個(gè)巧克力蛋糕,我們輸入我們的數(shù)字來(lái)建立這個(gè)方程:t = 0.5(1) + (0.25)(1) = 0.75,即 45 分鐘。
有不同形式的線(xiàn)性模型算法,我們將要討論線(xiàn)性回歸(linear regression)和邏輯回歸(logistic regression)。
線(xiàn)性回歸
線(xiàn)性回歸,也稱(chēng)為「最小二乘回歸(least squares regression)」,是線(xiàn)性模型的最標(biāo)準(zhǔn)的形式。對(duì)于回歸問(wèn)題(我們?cè)O(shè)法預(yù)測(cè)的變量是數(shù)字),線(xiàn)性回歸是最簡(jiǎn)單的線(xiàn)性模型。
邏輯回歸
邏輯回歸是為分類(lèi)問(wèn)題進(jìn)行簡(jiǎn)單調(diào)整過(guò)的線(xiàn)性回歸(我們?cè)O(shè)法預(yù)測(cè)的變量是「是/否」的答案)。由于其構(gòu)造,邏輯回歸非常適合于分類(lèi)問(wèn)題
線(xiàn)性回歸和邏輯回歸的缺點(diǎn)
線(xiàn)性回歸和邏輯回歸都有著相同的缺點(diǎn)。兩者都具有「過(guò)擬合(overfit)」的趨勢(shì),這意味著模型太適應(yīng)于數(shù)據(jù)而犧牲了推廣到先前未知的數(shù)據(jù)的能力。因此,這兩個(gè)模型經(jīng)常需要進(jìn)行規(guī)范,這意味著它們有一定的懲罰(penalty)以防止過(guò)擬合。另一個(gè)線(xiàn)性模型的缺點(diǎn)是,因?yàn)樗鼈兲?jiǎn)單了,所以往往不能預(yù)測(cè)更復(fù)雜的行為。
什么是樹(shù)型模型

樹(shù)型模型有助于探索數(shù)據(jù)集,并可視化預(yù)測(cè)的決策規(guī)則。當(dāng)你聽(tīng)到關(guān)于樹(shù)型模型的東西時(shí),你可以將其想成是決策樹(shù)或分支操作序列。樹(shù)型模型高度精確、穩(wěn)定且更易于解釋。與線(xiàn)性模型相反,它們可以映射非線(xiàn)性關(guān)系以求解問(wèn)題。
決策樹(shù)(decision tree)
決策樹(shù)是一種使用分支方法(branching method)來(lái)顯示決策的每個(gè)可能結(jié)果的圖。例如,如果你想要訂購(gòu)萵苣、澆頭和沙拉醬,決策樹(shù)可以繪制出所有可能的結(jié)果(或者你可能最終得到的沙拉的品種)。
為了創(chuàng)建或者訓(xùn)練決策樹(shù),我們采用我們過(guò)去訓(xùn)練模型的數(shù)據(jù),并找出哪些屬性可以***分割目標(biāo)訓(xùn)練集。
例如,我們?cè)谛庞每ㄆ墼p中使用決策樹(shù)。我們可以發(fā)現(xiàn)***的欺詐風(fēng)險(xiǎn)預(yù)測(cè)的屬性是消費(fèi)明細(xì)(例如,有信用卡用戶(hù)有非常大的消費(fèi))。這可能是***次分割(或分支)——那些有著異常高消費(fèi)的卡和沒(méi)有的卡。然后我們使用第二個(gè)***屬性(例如,經(jīng)常使用的信用卡)來(lái)創(chuàng)建下一次分割。然后我們可以繼續(xù)直到我們有足夠的屬性來(lái)滿(mǎn)足我們的需要。
隨機(jī)森林(random forest)
隨機(jī)森林是許多決策樹(shù)的平均,每個(gè)決策樹(shù)都用數(shù)據(jù)的隨機(jī)樣本訓(xùn)練。森林中的每個(gè)獨(dú)立的樹(shù)都比一個(gè)完整的決策樹(shù)弱,但是通過(guò)將它們結(jié)合,我們可以通過(guò)多樣性獲得更高的整體表現(xiàn)。
隨機(jī)森林是當(dāng)今機(jī)器學(xué)習(xí)中非常流行的算法。它非常容易訓(xùn)練(或構(gòu)建),且它往往表現(xiàn)良好。它的缺點(diǎn)是,相比于其他算法,其輸出預(yù)測(cè)可能較慢。所以當(dāng)你需要快如閃電般地預(yù)測(cè),你也許不會(huì)使用它。
梯度提升(gradient boosting)
梯度提升和隨機(jī)森林類(lèi)似,都是由「弱」決策樹(shù)構(gòu)成的。***的區(qū)別是,在梯度提升中樹(shù)是被一個(gè)接一個(gè)相繼訓(xùn)練的。每個(gè)隨后的樹(shù)主要用被先前樹(shù)錯(cuò)誤識(shí)別的數(shù)據(jù)進(jìn)行訓(xùn)練。這使得梯度提升更少地集中在容易預(yù)測(cè)的情況并更多地集中在困難的情況。
梯度提升訓(xùn)練速度也很快且表現(xiàn)非常好。然而,訓(xùn)練數(shù)據(jù)的小變化可以在模型中產(chǎn)生徹底的改變,因此它可能不會(huì)產(chǎn)生最可解釋的結(jié)果。
什么是神經(jīng)網(wǎng)絡(luò)

生物學(xué)中的神經(jīng)網(wǎng)絡(luò)是互相交換信息的相互連接的神經(jīng)元。這個(gè)想法現(xiàn)在已經(jīng)適用于機(jī)器學(xué)習(xí)的世界,并被稱(chēng)為人工神經(jīng)網(wǎng)絡(luò)(ANN)。深度學(xué)習(xí)(deep learning)是一個(gè)經(jīng)常出現(xiàn)的詞,是指幾層連續(xù)放置的人工神經(jīng)網(wǎng)絡(luò)。
人工神經(jīng)網(wǎng)絡(luò)(ANN)包含了許多可以學(xué)習(xí)類(lèi)似人腦的認(rèn)知能力的模型。其它算法不能處理的極其復(fù)雜的任務(wù)(如圖像識(shí)別),神經(jīng)網(wǎng)絡(luò)就可以辦到。然而,就像人類(lèi)的大腦,它需要很長(zhǎng)時(shí)間來(lái)訓(xùn)練模型,且需要很多的能量(想一想我們?yōu)榱吮3执竽X的工作,我們吃了多少東西)。
































