機(jī)器學(xué)習(xí)算法基礎(chǔ)知識(shí)
可利用的算法非常之多。困難之處在于既有不同種類的方法,也有對(duì)這些方法的擴(kuò)展。這導(dǎo)致很快就難以區(qū)分到底什么才是正統(tǒng)的算法。在這個(gè)帖子里,我希望給你兩種方式來思考和區(qū)分在這個(gè)領(lǐng)域中你將會(huì)遇到的算法。
第一種劃分算法的方式是根據(jù)學(xué)習(xí)的方式,第二種則是基于形式和功能的相似性(就像把相似的動(dòng)物歸為一類一樣)。兩種方式都是有用的。
學(xué)習(xí)方式
基于其與經(jīng)驗(yàn)、環(huán)境,或者任何我們稱之為輸入數(shù)據(jù)的相互作用,一個(gè)算法可以用不同的方式對(duì)一個(gè)問題建模。在機(jī)器學(xué)習(xí)和人工智能教科書中,流行的做法是首先考慮一個(gè)算法的學(xué)習(xí)方式。
算法的主要學(xué)習(xí)方式和學(xué)習(xí)模型只有幾個(gè),我們將會(huì)逐一介紹它們,并且給出幾個(gè)算法和它們適合解決的問題類型來作為例子。
-
監(jiān)督學(xué)習(xí):輸入數(shù)據(jù)被稱為訓(xùn)練數(shù)據(jù),它們有已知的標(biāo)簽或者結(jié)果,比如垃圾郵件/非垃圾郵件或者某段時(shí)間的股票價(jià)格。模型的參數(shù)確定需要通過一個(gè)訓(xùn)練的過程,在這個(gè)過程中模型將會(huì)要求做出預(yù)測(cè),當(dāng)預(yù)測(cè)不符時(shí),則需要做出修改。
-
無監(jiān)督學(xué)習(xí):輸入數(shù)據(jù)不帶標(biāo)簽或者沒有一個(gè)已知的結(jié)果。通過推測(cè)輸入數(shù)據(jù)中存在的結(jié)構(gòu)來建立模型。這類問題的例子有關(guān)聯(lián)規(guī)則學(xué)習(xí)和聚類。算法的例子包括Apriori算法和K-means算法。
-
半監(jiān)督學(xué)習(xí):輸入數(shù)據(jù)由帶標(biāo)記的和不帶標(biāo)記的組成。合適的預(yù)測(cè)模型雖然已經(jīng)存在,但是模型在預(yù)測(cè)的同時(shí)還必須能通過發(fā)現(xiàn)潛在的結(jié)構(gòu)來組織數(shù)據(jù)。這類問題包括分類和回歸。典型算法包括對(duì)一些其他靈活的模型的推廣,這些模型都對(duì)如何給未標(biāo)記數(shù)據(jù)建模做出了一些假設(shè)。
-
強(qiáng)化學(xué)習(xí):輸入數(shù)據(jù)作為來自環(huán)境的激勵(lì)提供給模型,且模型必須作出反應(yīng)。反饋并不像監(jiān)督學(xué)習(xí)那樣來自于訓(xùn)練的過程,而是作為環(huán)境的懲罰或者是獎(jiǎng)賞。典型問題有系統(tǒng)和機(jī)器人控制。算法的例子包括Q-學(xué)習(xí)和時(shí)序差分學(xué)習(xí)(Temporal Difference Learning)。
當(dāng)你處理大量數(shù)據(jù)來對(duì)商業(yè)決策建模時(shí),通常會(huì)使用監(jiān)督和無監(jiān)督學(xué)習(xí)。目前一個(gè)熱門話題是半監(jiān)督學(xué)習(xí),比如會(huì)應(yīng)用在圖像分類中,涉及到的數(shù)據(jù)集很大但是只包含極少數(shù)標(biāo)記的數(shù)據(jù)。
算法相似性
通常,我們會(huì)把算法按照功能和形式的相似性來區(qū)分。比如樹形結(jié)構(gòu)和神經(jīng)網(wǎng)絡(luò)的方法。這是一種有用的分類方法,但也不是完美的。仍然有些算法很容易就可以被歸入好幾個(gè)類別,比如學(xué)習(xí)矢量量化,它既是受啟發(fā)于神經(jīng)網(wǎng)絡(luò)的方法,又是基于實(shí)例的方法。也有一些算法的名字既描述了它處理的問題,也是某一類算法的名稱,比如回歸和聚類。正因?yàn)槿绱?,你?huì)從不同的來源看到對(duì)算法進(jìn)行不同的歸類。就像機(jī)器學(xué)習(xí)算法自身一樣,沒有完美的模型,只有足夠好的模型。
在這個(gè)小節(jié)里,我將會(huì)按照我覺得最直觀的方式列出許多流行的機(jī)器學(xué)習(xí)算法。雖然不管是類別還是算法都不是全面詳盡的,但我認(rèn)為它們都具有代表性,有助于你對(duì)整個(gè)領(lǐng)域有一個(gè)大致的了解。如果你發(fā)現(xiàn)有一個(gè)或一類算法沒有被列入,將它寫在回復(fù)里和大家分享。讓我們來開始吧。
回歸分析
回歸是這樣一種建模方式,它先確定一個(gè)衡量模型預(yù)測(cè)誤差的量,然后通過這個(gè)量來反復(fù)優(yōu)化變量之間的關(guān)系。回歸方法是統(tǒng)計(jì)學(xué)的主要應(yīng)用,被歸為統(tǒng)計(jì)機(jī)器學(xué)習(xí)。這有些讓人迷惑,因?yàn)槲覀兛梢杂没貧w來指代一類問題和一類算法。實(shí)際上,回歸是一個(gè)過程。以下是一些例子:
-
普通最小二乘法
-
邏輯回歸
-
逐步回歸
-
多元自適應(yīng)樣條回歸(MARS)
-
局部多項(xiàng)式回歸擬合(LOESS)
基于實(shí)例的方法
基于實(shí)例的學(xué)習(xí)模型對(duì)決策問題進(jìn)行建模,這些決策基于訓(xùn)練數(shù)據(jù)中被認(rèn)為重要的或者模型所必需的實(shí)例。這類方法通常會(huì)建立一個(gè)范例數(shù)據(jù)庫,然后根據(jù)某個(gè)相似性衡量標(biāo)準(zhǔn)來把新數(shù)據(jù)和數(shù)據(jù)庫進(jìn)行比較,從而找到最匹配的項(xiàng),最后作出預(yù)測(cè)。因此,基于實(shí)例的方法還被叫做“贏者通吃”方法和基于記憶的學(xué)習(xí)。這種方法的重點(diǎn)在于已有實(shí)例的表示以及實(shí)例間相似性的衡量標(biāo)準(zhǔn)。
-
K最近鄰算法(kNN)
-
學(xué)習(xí)矢量量化(LVQ)
-
自組織映射(SOM)
正則化方法
這是對(duì)另一種方法(通常是回歸分析方法)的擴(kuò)展,它懲罰復(fù)雜度高的模型,傾向推廣性好的更加簡單的模型。我在這里列下了一些正則化的方法,因?yàn)樗麄兞餍小?qiáng)大,而且通常只是對(duì)其他方法簡單的改進(jìn)。
-
嶺回歸
-
套索算法(LASSO)
-
彈性網(wǎng)絡(luò)
決策樹學(xué)習(xí)
決策樹方法對(duì)決策過程進(jìn)行建模,決策是基于數(shù)據(jù)中屬性的實(shí)際數(shù)值。決策在樹形結(jié)構(gòu)上分叉直到對(duì)特定的某個(gè)記錄能做出預(yù)測(cè)。在分類或者回歸的問題中我們用數(shù)據(jù)來訓(xùn)練決策樹。
-
分類與回歸樹算法(CART)
-
迭代二叉樹3代(ID3)
-
C4.5算法
-
卡方自動(dòng)互動(dòng)檢視(CHAID)
-
單層決策樹
-
隨機(jī)森林
-
多元自適應(yīng)樣條回歸(MARS)
-
梯度推進(jìn)機(jī)(GBM)
貝葉斯算法
貝葉斯方法是那些明確地在分類和回歸問題中應(yīng)用貝葉斯定理的算法。
-
樸素貝葉斯算法
-
AODE算法
-
貝葉斯信度網(wǎng)絡(luò)(BBN)
核函數(shù)方法
核函數(shù)方法中最為出名的是流行的支持向量機(jī)算法,它其實(shí)是一系列方法。核函數(shù)方法關(guān)心的是如何把輸入數(shù)據(jù)映射到一個(gè)高維度的矢量空間,在這個(gè)空間中,某些分類或者回歸問題可以較容易地解決。
-
支持向量機(jī)(SVM)
-
徑向基函數(shù)(RBF)
-
線性判別分析(LDA)
聚類方法
就像回歸一樣,聚類既表示一類問題,也表示一類方法。聚類方法一般按照建模方式來劃分:基于質(zhì)心的或者層級(jí)結(jié)構(gòu)的。所有的方法都是利用數(shù)據(jù)的內(nèi)在結(jié)構(gòu)來盡量地把數(shù)據(jù)歸入具有最大共性的一類里。
-
K均值法
-
最大期望算法(EM)
關(guān)聯(lián)規(guī)則學(xué)習(xí)
關(guān)聯(lián)規(guī)則學(xué)習(xí)是提取規(guī)則的一類算法,這些規(guī)則能最好地解釋觀測(cè)到的數(shù)據(jù)中的變量之間的關(guān)系。這些規(guī)則能在大型多維數(shù)據(jù)集中發(fā)現(xiàn)重要且在商業(yè)上有用的關(guān)聯(lián),然后進(jìn)一步被利用。
-
Apriori算法
-
Eclat算法
人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)是受啟發(fā)于生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和/或功能的算法。它們是一類常用在回歸和分類問題中的模式匹配方法,但其實(shí)這個(gè)龐大的子類包含了上百種算法和算法的變形,可以解決各種類型的問題。一些經(jīng)典流行的方法包括(我已經(jīng)把深度學(xué)習(xí)從這個(gè)類中分出來了):
-
感知器
-
反向傳播算法
-
Hopfield神經(jīng)網(wǎng)絡(luò)
-
自適應(yīng)映射(SOM)
-
學(xué)習(xí)矢量量化(LVQ)
深度學(xué)習(xí)
深度學(xué)習(xí)方法是利用便宜冗余的計(jì)算資源對(duì)人工神經(jīng)網(wǎng)絡(luò)的現(xiàn)代改進(jìn)版。這類方法試圖建立大得多也復(fù)雜得多的神經(jīng)網(wǎng)絡(luò),就如前面說到的,許多方法都是基于大數(shù)據(jù)集中非常有限的標(biāo)記數(shù)據(jù)來解決半監(jiān)督學(xué)習(xí)問題。
-
受限玻爾茲曼機(jī)(RBM)
-
深度信念網(wǎng)(DBN)
-
卷積神經(jīng)網(wǎng)絡(luò)
-
層疊自動(dòng)編碼器(SAE)
降維方法
如同聚類方法,降維方法試圖利用數(shù)據(jù)中的內(nèi)在結(jié)構(gòu)來總結(jié)或描述數(shù)據(jù),所不同的是它以無監(jiān)督的方式利用更少的信息。這對(duì)于可視化高維數(shù)據(jù)或者為之后的監(jiān)督學(xué)習(xí)簡化數(shù)據(jù)都有幫助。
-
主成分分析(PCA)
-
偏最小二乘法回歸(PLS)
-
薩蒙映射
-
多維尺度分析(MDS)
-
投影尋蹤
集成方法
集成方法由多個(gè)較弱模型組合而成,這些子模型獨(dú)立訓(xùn)練,它們的預(yù)測(cè)結(jié)果以某種方式整合起來得出總的預(yù)測(cè)。很多努力都集中在選擇什么類型的學(xué)習(xí)模型作為子模型,以及用什么方式整合它們的結(jié)果。這是一類非常強(qiáng)大的技術(shù),因此也很流行。
-
推進(jìn)技術(shù)(Boosting)
-
自展集成(Bagging)
-
適應(yīng)性推進(jìn)(AdaBoost)
-
層疊泛化策略(Blending)
-
梯度推進(jìn)機(jī)(GBM)
-
隨機(jī)森林

這是一個(gè)最適曲線集成的例子。弱成員用灰色線表示,整合后的預(yù)測(cè)用紅色。這個(gè)圖顯示了溫度/臭氧數(shù)據(jù),曲線出自使用局部多項(xiàng)式回歸擬合(LOESS)的模型。
圖片授權(quán)自公有領(lǐng)域(public domain),歸于維基百科。
對(duì)機(jī)器學(xué)習(xí)算法的環(huán)顧的目的是讓你對(duì)目前存在的算法有一個(gè)大概的了解,也給你一些工具來把這些你有可能遇到的算法相互聯(lián)系起來。
這個(gè)帖子附上的資源如你所期待的是其他一些很棒的關(guān)于機(jī)器學(xué)習(xí)算法的列表。不要覺得壓力太大,知道很多算法固然有用,但是對(duì)少數(shù)幾個(gè)關(guān)鍵算法的深入了解和有效執(zhí)行也是很有用的。
本文由36大數(shù)據(jù)翻譯組darcher005翻譯,并經(jīng)36大數(shù)據(jù)編輯。轉(zhuǎn)載此文章須經(jīng)本站同意,并請(qǐng)附上譯者、出處(36大數(shù)據(jù))及本頁鏈接。原文鏈接:http://www.36dsj.com/?p=8911





















