機(jī)器學(xué)習(xí)的經(jīng)典代表算法總結(jié)(二)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
從1990到2012年,機(jī)器學(xué)習(xí)逐漸走向成熟和應(yīng)用,在這20多年里機(jī)器學(xué)習(xí)的理論和方法得到了完善和充實(shí),可謂是百花齊放的年代。代表性的重要成果有:支持向量機(jī)(SVM,1995)、AdaBoost算法(1997)、循環(huán)神經(jīng)網(wǎng)絡(luò)和LSTM(1997)、流形學(xué)習(xí)(2000)、隨機(jī)森林(2001)。
下面我們對(duì)部分機(jī)器學(xué)習(xí)代表算法進(jìn)行介紹。
?AdaBoost
Adaptive Boosting或稱為AdaBoost,是多種學(xué)習(xí)算法的融合。它是一種迭代算法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個(gè)更強(qiáng)的最終分類器(強(qiáng)分類器)。其算法本身是通過改變數(shù)據(jù)分布來實(shí)現(xiàn)的,它根據(jù)每次訓(xùn)練集之中每個(gè)樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來確定每個(gè)樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進(jìn)行訓(xùn)練,然后將每次訓(xùn)練得到的分類器融合起來,作為最終的決策分類器。
AdaBoost是最常用的算法,它可用于回歸或者分類算法。相比其他機(jī)器學(xué)習(xí)算法,它克服了過擬合的問題,通常對(duì)異常值和噪聲數(shù)據(jù)敏感。為了創(chuàng)建一個(gè)強(qiáng)大的復(fù)合學(xué)習(xí)器,AdaBoost使用了多次迭代。因此,它又被稱為“Adaptive Boosting”。通過迭代添加弱學(xué)習(xí)器,AdaBoost創(chuàng)建了一個(gè)強(qiáng)學(xué)習(xí)器。一個(gè)新的弱學(xué)習(xí)器加到實(shí)體上,并且調(diào)整加權(quán)向量,作為對(duì)前一輪中錯(cuò)誤分類的樣例的回應(yīng)。得到的結(jié)果,是一個(gè)比弱分類器有更高準(zhǔn)確性的分類器。
AdaBoost有助于將弱閾值的分類器提升為強(qiáng)分類器。上面的圖像描述了AdaBoost的執(zhí)行,只用了簡(jiǎn)單易于理解的代碼并且在一個(gè)文件中就實(shí)現(xiàn)了。這個(gè)函數(shù)包含一個(gè)弱分類器和boosting組件。弱分類器在一維的數(shù)據(jù)中嘗試去尋找最理想的閾值來將數(shù)據(jù)分離為兩類。boosting組件迭代調(diào)用分類器,經(jīng)過每一步分類,它改變了錯(cuò)誤分類示例的權(quán)重。因此,創(chuàng)建了一個(gè)級(jí)聯(lián)的弱分類器,它的行為就像一個(gè)強(qiáng)分類器。
目前,對(duì)Adaboost算法的研究以及應(yīng)用大多集中于分類問題,同時(shí)近年也出現(xiàn)了一些在回歸問題上的應(yīng)用。Adaboost系列主要解決了:兩類問題、多類單標(biāo)簽問題、多類多標(biāo)簽問題、大類單標(biāo)簽問題和回歸問題。它用全部的訓(xùn)練樣本進(jìn)行學(xué)習(xí)。
?K-均值算法(K-Means)
K-均值是著名聚類算法,它找出代表聚類結(jié)構(gòu)的k個(gè)質(zhì)心。如果有一個(gè)點(diǎn)到某一質(zhì)心的距離比到其他質(zhì)心都近,這個(gè)點(diǎn)則指派到這個(gè)最近的質(zhì)心所代表的簇。依次,利用當(dāng)前已聚類的數(shù)據(jù)點(diǎn)找出一個(gè)新質(zhì)心,再利用質(zhì)心給新的數(shù)據(jù)指派一個(gè)簇。
?支持向量機(jī)(SVM)
支持向量機(jī)(Support Vector Machine,SVM)是一類按監(jiān)督學(xué)習(xí)(supervised learning)方式對(duì)數(shù)據(jù)進(jìn)行二元分類(binary classification)的廣義線性分類器(generalized linear classifier),其決策邊界是對(duì)學(xué)習(xí)樣本求解的最大邊距超平面(maximum-margin hyperplane)?;舅枷胧牵赫业郊线吘壣系娜舾蓴?shù)據(jù)(稱為支持向量(Support Vector)),用這些點(diǎn)找出一個(gè)平面(稱為決策面),使得支持向量到該平面的距離最大。由簡(jiǎn)至繁的SVM模型包括:
1)當(dāng)訓(xùn)練樣本線性可分時(shí),通過硬間隔最大化,學(xué)習(xí)一個(gè)線性可分支持向量機(jī);2)當(dāng)訓(xùn)練樣本近似線性可分時(shí),通過軟間隔最大化,學(xué)習(xí)一個(gè)線性支持向量機(jī);
3)當(dāng)訓(xùn)練樣本線性不可分時(shí),通過核技巧和軟間隔最大化,學(xué)習(xí)一個(gè)非線性支持向量機(jī);
在分類問題中,很多時(shí)候有多個(gè)解,在理想的線性可分的情況下其決策平面會(huì)有多個(gè)。而SVM的基本模型是在特征空間上找到最佳的分離超平面使得訓(xùn)練集上正負(fù)樣本間隔最大,SVM算法計(jì)算出來的分界會(huì)保留對(duì)類別最大的間距,即有足夠的余量。
在解決線性不可分問題時(shí),它通過引入核函數(shù)巧妙地解決在高維空間中的內(nèi)積運(yùn)算,從而很好地解決了非線性分類問題。通過核函數(shù)的引入,將線性不可分的數(shù)據(jù)映射到一個(gè)高緯的特征空間內(nèi),使得數(shù)據(jù)在特征空間內(nèi)是可分的。
?人工神經(jīng)網(wǎng)絡(luò)ANN(Artificial Neural Network)
人工神經(jīng)網(wǎng)絡(luò)ANN(Artificial Neural Network)是由大量處理單元互聯(lián)組成的非線性、自適應(yīng)信息處理系統(tǒng)。它是一種模仿動(dòng)物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。其基本過程可以概述如下:外部刺激通過神經(jīng)末梢轉(zhuǎn)化為電信號(hào),傳導(dǎo)到神經(jīng)細(xì)胞(又叫神經(jīng)元);無數(shù)神經(jīng)元構(gòu)成神經(jīng)中樞;神經(jīng)中樞綜合各種信號(hào),做出判斷;人體根據(jù)神經(jīng)中樞的指令,對(duì)外部刺激做出反應(yīng)。
人工神經(jīng)網(wǎng)絡(luò)經(jīng)歷了漫長(zhǎng)的發(fā)展階段。最早是上個(gè)世紀(jì)六十年代提出的“人造神經(jīng)元”模型,叫做“感知器”(perceptron)。感知機(jī)模型是機(jī)器學(xué)習(xí)二分類問題中的一個(gè)非常簡(jiǎn)單的模型。
隨著反向傳播算法、最大池化(max-pooling)等技術(shù)的發(fā)明,神經(jīng)網(wǎng)絡(luò)進(jìn)入了飛速發(fā)展的階段。神經(jīng)網(wǎng)絡(luò)就是將許多個(gè)單一“神經(jīng)元”聯(lián)結(jié)在一起,這樣,一個(gè)“神經(jīng)元”的輸出就可以是另一個(gè)“神經(jīng)元”的輸入。典型的人工神經(jīng)網(wǎng)絡(luò)具有以下三個(gè)部分:
結(jié)構(gòu)(Architecture)指定了網(wǎng)絡(luò)中的變量和它們的拓?fù)潢P(guān)系。
激勵(lì)函數(shù)(Activity Rule)大部分神經(jīng)網(wǎng)絡(luò)模型具有一個(gè)短時(shí)間尺度的動(dòng)力學(xué)規(guī)則,來定義神經(jīng)元如何根據(jù)其他神經(jīng)元的活動(dòng)來改變自己的激勵(lì)值。
學(xué)習(xí)規(guī)則(Learning Rule)指定了網(wǎng)絡(luò)中的權(quán)重如何隨著時(shí)間推進(jìn)而調(diào)整。
人工神經(jīng)網(wǎng)絡(luò)具有四個(gè)基本特征:非線性、非局限性、非常定性和非凸性。
人工神經(jīng)網(wǎng)絡(luò)的特點(diǎn)和優(yōu)越性,主要表現(xiàn)在三個(gè)方面:具有自學(xué)習(xí)功能、具有聯(lián)想存儲(chǔ)功能和具有高速尋找最優(yōu)解的能力。