TensorFlow 機(jī)器學(xué)習(xí)常用算法解析和入門

2018-08-08 17:38 更新

作者:譚東

機(jī)器學(xué)習(xí)常用算法:

監(jiān)督學(xué)習(xí)

1)決策樹(Decision Tree)

    決策樹是一種樹形結(jié)構(gòu),為人們提供決策依據(jù),決策樹可以用來(lái)回答yes和no問(wèn)題,它通過(guò)樹形結(jié)構(gòu)將各種情況組合都表示出來(lái),每個(gè)分支表示一次選擇(選擇yes還是no),直到所有選擇都進(jìn)行完畢,最終給出正確答案。

1_3

0

    決策樹(decision tree)是一個(gè)樹結(jié)構(gòu)(可以是二叉樹或非二叉樹)。在實(shí)際構(gòu)造決策樹時(shí),通常要進(jìn)行剪枝,這時(shí)為了處理由于數(shù)據(jù)中的噪聲和離群點(diǎn)導(dǎo)致的過(guò)分?jǐn)M合問(wèn)題。剪枝有兩種:

    先剪枝——在構(gòu)造過(guò)程中,當(dāng)某個(gè)節(jié)點(diǎn)滿足剪枝條件,則直接停止此分支的構(gòu)造。

    后剪枝——先構(gòu)造完成完整的決策樹,再通過(guò)某些條件遍歷樹進(jìn)行剪枝。

4f110c5f2ce9191b9b2cb7fc6354b91d

2)樸素貝葉斯分類器(Naive Bayesian Model,NBM)

    樸素貝葉斯分類器基于貝葉斯定理及其假設(shè)(即特征之間是獨(dú)立的,是不相互影響的),主要用來(lái)解決分類和回歸問(wèn)題。

gif

P(A|B) 是后驗(yàn)概率, P(B|A) 是似然,P(A)為先驗(yàn)概率,P(B) 為我們要預(yù)測(cè)的值。

具體應(yīng)用有:標(biāo)記一個(gè)電子郵件為垃圾郵件或非垃圾郵件;將新聞文章分為技術(shù)類、政治類或體育類;檢查一段文字表達(dá)積極的情緒,或消極的情緒;用于人臉識(shí)別軟件。

    學(xué)過(guò)概率的同學(xué)一定都知道貝葉斯定理,這個(gè)在250多年前發(fā)明的算法,在信息領(lǐng)域內(nèi)有著無(wú)與倫比的地位。貝葉斯分類是一系列分類算法的總稱,這類算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類。樸素貝葉斯算法(Naive Bayesian) 是其中應(yīng)用最為廣泛的分類算法之一。樸素貝葉斯分類器基于一個(gè)簡(jiǎn)單的假定:給定目標(biāo)值時(shí)屬性之間相互條件獨(dú)立。

通過(guò)以上定理和“樸素”的假定,我們知道:

P( Category | Document) = P ( Document | Category ) * P( Category) / P(Document)

舉個(gè)例子,給一段文字,返回情感分類,這段文字的態(tài)度是positive,還是negative。

da3be74708f955ae8aff514260767a45

為了解決這個(gè)問(wèn)題,可以只看其中的一些單詞。

d92feb0efa9c490943a1bd09392f3a67

這段文字,將僅由一些單詞和它們的計(jì)數(shù)代表。

840f638ee86ef4343bbeeb94f0343635

原始問(wèn)題是:給你一句話,它屬于哪一類?

通過(guò) bayes rules 變成一個(gè)比較簡(jiǎn)單容易求得的問(wèn)題。

cf5d5e4faf63e7f3fd8cbc43112caa4b


問(wèn)題變成,這一類中這句話出現(xiàn)的概率是多少,當(dāng)然,別忘了公式里的另外兩個(gè)概率。

例子:?jiǎn)卧~love在positive 的情況下出現(xiàn)的概率是0.1,在negative的情況下出現(xiàn)的概率是 0.001。

0e857231efab1dc55a64ba2a5bd54f33

后面將給大家詳細(xì)講解樸素貝葉斯分類算法。

3)最小二乘法(Least squares)

    如果你對(duì)統(tǒng)計(jì)學(xué)有所了解,那么你必定聽說(shuō)過(guò)線性回歸。最小均方就是用來(lái)求線性回歸的。如下圖所示,平面內(nèi)會(huì)有一系列點(diǎn),然后我們求取一條線,使得這條線盡可能擬合這些點(diǎn)分布,這就是線性回歸。這條線有多種找法,最小二乘法就是其中一種。最小二乘法其原理如下,找到一條線使得平面內(nèi)的所有點(diǎn)到這條線的歐式距離和最小。這條線就是我們要求取得線。

640

    最小二乘法(又稱最小平方法)是一種數(shù)學(xué)優(yōu)化技術(shù)。它通過(guò)最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘法可以簡(jiǎn)便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實(shí)際數(shù)據(jù)之間誤差的平方和為最小。最小二乘法還可用于曲線擬合。其他一些優(yōu)化問(wèn)題也可通過(guò)最小化能量或最大化熵用最小二乘法來(lái)表達(dá)。

4)邏輯回歸(Logistic Regression)

    邏輯回歸模型是一個(gè)二分類模型,它選取不同的特征與權(quán)重來(lái)對(duì)樣本進(jìn)行概率分類,用一個(gè)log函數(shù)計(jì)算樣本屬于某一類的概率。即一個(gè)樣本會(huì)有一定的概率屬于一個(gè)類,會(huì)有一定的概率屬于另一類,概率大的類即為樣本所屬類。用于估計(jì)某種事物的可能性。

640 (1)

5)支持向量機(jī)(SVM)

    支持向量機(jī)(support vector machine)是一個(gè)二分類算法,它可以在N維空間找到一個(gè)(N-1)維的超平面,這個(gè)超平面可以將這些點(diǎn)分為兩類。也就是說(shuō),平面內(nèi)如果存在線性可分的兩類點(diǎn),SVM可以找到一條最優(yōu)的直線將這些點(diǎn)分開。SVM應(yīng)用范圍很廣。

640 (2)

要將兩類分開,想要得到一個(gè)超平面,最優(yōu)的超平面是到兩類的margin達(dá)到最大,margin就是超平面與離它最近一點(diǎn)的距離,如下圖,Z2>Z1,所以綠色的超平面比較好。

9ce316a3586fcc78bccad84f976cf582

6)K最近鄰算法(KNN,K-NearestNeighbor

   鄰近算法,或者說(shuō)K最近鄰(KNN,K-NearestNeighbor)分類算法是數(shù)據(jù)挖掘分類技術(shù)中最簡(jiǎn)單的方法之一。KNN算法的核心思想是如果一個(gè)樣本在特征空間中的k個(gè)最相鄰的樣本中的大多數(shù)屬于某一個(gè)類別,則該樣本也屬于這個(gè)類別,并具有這個(gè)類別上樣本的特性。該方法在確定分類決策上只依據(jù)最鄰近的一個(gè)或者幾個(gè)樣本的類別來(lái)決定待分樣本所屬的類別。 KNN方法在類別決策時(shí),只與極少量的相鄰樣本有關(guān)。由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來(lái)確定所屬類別的,因此對(duì)于類域的交叉或重疊較多的待分樣本集來(lái)說(shuō),KNN方法較其他方法更為適合。

041623504236939

    主要應(yīng)用領(lǐng)域是對(duì)未知事物的識(shí)別,即判斷未知事物屬于哪一類,判斷思想是,基于歐幾里得定理,判斷未知事物的特征和哪一類已知事物的的特征最接近。如上圖,綠色圓要被決定賦予哪個(gè)類,是紅色三角形還是藍(lán)色四方形?如果K=3,由于紅色三角形所占比例為2/3,綠色圓將被賦予紅色三角形那個(gè)類,如果K=5,由于藍(lán)色四方形比例為3/5,因此綠色圓被賦予藍(lán)色四方形類。由此也說(shuō)明了KNN算法的結(jié)果很大程度取決于K的選擇。

7)集成學(xué)習(xí)(Ensemble Learning)

    集成學(xué)習(xí)就是將很多分類器集成在一起,每個(gè)分類器有不同的權(quán)重,將這些分類器的分類結(jié)果合并在一起,作為最終的分類結(jié)果。最初集成方法為貝葉斯決策。

63918611gw1f6na9yjmmsj20gb096jt8

    集成算法用一些相對(duì)較弱的學(xué)習(xí)模型獨(dú)立地就同樣的樣本進(jìn)行訓(xùn)練,然后把結(jié)果整合起來(lái)進(jìn)行整體預(yù)測(cè)。集成算法的主要難點(diǎn)在于究竟集成哪些獨(dú)立的較弱的學(xué)習(xí)模型以及如何把學(xué)習(xí)結(jié)果整合起來(lái)。這是一類非常強(qiáng)大的算法,同時(shí)也非常流行。常見(jiàn)的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆疊泛化(Stacked Generalization, Blending),梯度推進(jìn)機(jī)(Gradient Boosting Machine, GBM),隨機(jī)森林(Random Forest)。

    那么集成方法是怎樣工作的,為什么他們會(huì)優(yōu)于單個(gè)的模型?

  • 他們拉平了輸出偏差:如果你將具有民主黨傾向的民意調(diào)查和具有共和黨傾向的民意調(diào)查取平均,你將得到一個(gè)中和的沒(méi)有傾向一方的結(jié)果。
  • 它們減小了方差:一堆模型的聚合結(jié)果和單一模型的結(jié)果相比具有更少的噪聲。在金融領(lǐng)域,這被稱為多元化——多只股票的混合投資要比一只股票變化更小。這就是為什么數(shù)據(jù)點(diǎn)越多你的模型會(huì)越好,而不是數(shù)據(jù)點(diǎn)越少越好。
  • 它們不太可能產(chǎn)生過(guò)擬合:如果你有一個(gè)單獨(dú)的沒(méi)有過(guò)擬合的模型,你是用一種簡(jiǎn)單的方式(平均,加權(quán)平均,邏輯回歸)將這些預(yù)測(cè)結(jié)果結(jié)合起來(lái),然后就沒(méi)有產(chǎn)生過(guò)擬合的空間了。

54f3fd1db7368

無(wú)監(jiān)督學(xué)習(xí)

8)聚類算法

    聚類算法就是將一堆數(shù)據(jù)進(jìn)行處理,根據(jù)它們的相似性對(duì)數(shù)據(jù)進(jìn)行聚類

     聚類,就像回歸一樣,有時(shí)候人們描述的是一類問(wèn)題,有時(shí)候描述的是一類算法。聚類算法通常按照中心點(diǎn)或者分層的方式對(duì)輸入數(shù)據(jù)進(jìn)行歸并。所以的聚類算法都試圖找到數(shù)據(jù)的內(nèi)在結(jié)構(gòu),以便按照最大的共同點(diǎn)將數(shù)據(jù)進(jìn)行歸類。常見(jiàn)的聚類算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

    聚類算法有很多種,具體如下:中心聚類、關(guān)聯(lián)聚類、密度聚類、概率聚類、降維、神經(jīng)網(wǎng)絡(luò)/深度學(xué)習(xí)

7cc829d3gw1ekoj9w451nj208w06pwew

63918611gw1f6na9zdfsmj20go08caf1

9)K-均值算法(K-Means)

    K-means算法是硬聚類算法,是典型的基于原型的目標(biāo)函數(shù)聚類方法的代表,它是數(shù)據(jù)點(diǎn)到原型的某種距離作為優(yōu)化的目標(biāo)函數(shù),利用函數(shù)求極值的方法得到迭代運(yùn)算的調(diào)整規(guī)則。K-means算法以歐式距離作為相似度測(cè)度,它是求對(duì)應(yīng)某一初始聚類中心向量V最優(yōu)分類,使得評(píng)價(jià)指標(biāo)J最小。算法采用誤差平方和準(zhǔn)則函數(shù)作為聚類準(zhǔn)則函數(shù)。K-means算法是很典型的基于距離的聚類算法,采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大。該算法認(rèn)為簇是由距離靠近的對(duì)象組成的,因此把得到緊湊且獨(dú)立的簇作為最終目標(biāo)。

20131226190225921副本

    通常,人們根據(jù)樣本間的某種距離或者相似性來(lái)定義聚類,即把相似的(或距離近的)樣本聚為同一類,而把不相似的(或距離遠(yuǎn)的)樣本歸在其他類。

10)主成分分析(Principal Component Analysis,PCA)

    主成分分析是利用正交變換將一些列可能相關(guān)數(shù)據(jù)轉(zhuǎn)換為線性無(wú)關(guān)數(shù)據(jù),從而找到主成分。PCA方法最著名的應(yīng)用應(yīng)該是在人臉識(shí)別中特征提取及數(shù)據(jù)降維。

640 (3)

PCA主要用于簡(jiǎn)單學(xué)習(xí)與可視化中數(shù)據(jù)壓縮、簡(jiǎn)化。但是PCA有一定的局限性,它需要你擁有特定領(lǐng)域的相關(guān)知識(shí)。對(duì)噪音比較多的數(shù)據(jù)并不適用。

11)SVD矩陣分解(Singular Value Decomposition)

    也叫奇異值分解(Singular Value Decomposition),是線性代數(shù)中一種重要的矩陣分解,是矩陣分析中正規(guī)矩陣酉對(duì)角化的推廣。在信號(hào)處理、統(tǒng)計(jì)學(xué)等領(lǐng)域有重要應(yīng)用。SVD矩陣是一個(gè)復(fù)雜的實(shí)復(fù)負(fù)數(shù)矩陣,給定一個(gè)m行、n列的矩陣M,那么M矩陣可以分解為M = UΣV。U和V是酉矩陣,Σ為對(duì)角陣。

640 (4)

    PCA實(shí)際上就是一個(gè)簡(jiǎn)化版本的SVD分解。在計(jì)算機(jī)視覺(jué)領(lǐng)域,第一個(gè)臉部識(shí)別算法就是基于PCA與SVD的,用特征對(duì)臉部進(jìn)行特征表示,然后降維、最后進(jìn)行面部匹配。盡管現(xiàn)在面部識(shí)別方法復(fù)雜,但是基本原理還是類似的。

12)獨(dú)立成分分析(ICA)

    獨(dú)立成分分析(Independent Component Analysis,ICA)是一門統(tǒng)計(jì)技術(shù),用于發(fā)現(xiàn)存在于隨機(jī)變量下的隱性因素。ICA為給觀測(cè)數(shù)據(jù)定義了一個(gè)生成模型。在這個(gè)模型中,其認(rèn)為數(shù)據(jù)變量是由隱性變量,經(jīng)一個(gè)混合系統(tǒng)線性混合而成,這個(gè)混合系統(tǒng)未知。并且假設(shè)潛在因素屬于非高斯分布、并且相互獨(dú)立,稱之為可觀測(cè)數(shù)據(jù)的獨(dú)立成分。

640 (5)

ICA與PCA相關(guān),但它在發(fā)現(xiàn)潛在因素方面效果良好。它可以應(yīng)用在數(shù)字圖像、檔文數(shù)據(jù)庫(kù)、經(jīng)濟(jì)指標(biāo)、心里測(cè)量等。

669910444588363343

上圖為基于ICA的人臉識(shí)別模型。實(shí)際上這些機(jī)器學(xué)習(xí)算法并不是全都像想象中一樣復(fù)雜,有些還和高中數(shù)學(xué)緊密相關(guān)。

后面講給大家一一詳細(xì)單獨(dú)講解這些常用算法。

強(qiáng)化學(xué)習(xí)

13)Q-Learning算法

    Q-learning要解決的是這樣的問(wèn)題:一個(gè)能感知環(huán)境的自治agent,怎樣通過(guò)學(xué)習(xí)選擇能達(dá)到其目標(biāo)的最優(yōu)動(dòng)作。

    強(qiáng)化學(xué)習(xí)目的是構(gòu)造一個(gè)控制策略,使得Agent行為性能達(dá)到最大。Agent從復(fù)雜的環(huán)境中感知信息,對(duì)信息進(jìn)行處理。Agent通過(guò)學(xué)習(xí)改進(jìn)自身的性能并選擇行為,從而產(chǎn)生群體行為的選擇,個(gè)體行為選擇和群體行為選擇使得Agent作出決策選擇某一動(dòng)作,進(jìn)而影響環(huán)境。增強(qiáng)學(xué)習(xí)是指從動(dòng)物學(xué)習(xí)、隨機(jī)逼近和優(yōu)化控制等理論發(fā)展而來(lái),是一種無(wú)導(dǎo)師在線學(xué)習(xí)技術(shù),從環(huán)境狀態(tài)到動(dòng)作映射學(xué)習(xí),使得Agent根據(jù)最大獎(jiǎng)勵(lì)值采取最優(yōu)的策略;Agent感知環(huán)境中的狀態(tài)信息,搜索策略(哪種策略可以產(chǎn)生最有效的學(xué)習(xí))選擇最優(yōu)的動(dòng)作,從而引起狀態(tài)的改變并得到一個(gè)延遲回報(bào)值,更新評(píng)估函數(shù),完成一次學(xué)習(xí)過(guò)程后,進(jìn)入下一輪的學(xué)習(xí)訓(xùn)練,重復(fù)循環(huán)迭代,直到滿足整個(gè)學(xué)習(xí)的條件,終止學(xué)習(xí)。

    Q-Learning是一種無(wú)模型的強(qiáng)化學(xué)習(xí)技術(shù)。具體來(lái)說(shuō),可以使用Q學(xué)習(xí)來(lái)為任何給定的(有限的)馬爾可夫決策過(guò)程(MDP)找到最優(yōu)的動(dòng)作選擇策略。它通過(guò)學(xué)習(xí)一個(gè)動(dòng)作價(jià)值函數(shù),最終給出在給定狀態(tài)下采取給定動(dòng)作的預(yù)期效用,然后遵循最優(yōu)策略。一個(gè)策略是代理在選擇動(dòng)作后遵循的規(guī)則。當(dāng)這種動(dòng)作值函數(shù)被學(xué)習(xí)時(shí),可以通過(guò)簡(jiǎn)單地選擇每個(gè)狀態(tài)中具有最高值的動(dòng)作來(lái)構(gòu)建最優(yōu)策略。 Q-learning的優(yōu)點(diǎn)之一是能夠比較可用操作的預(yù)期效用,而不需要環(huán)境模型。此外,Q學(xué)習(xí)可以處理隨機(jī)過(guò)渡和獎(jiǎng)勵(lì)的問(wèn)題,而不需要任何適應(yīng)。已經(jīng)證明,對(duì)于任何有限的MDP,Q學(xué)習(xí)最終找到一個(gè)最優(yōu)策略,從總體獎(jiǎng)勵(lì)的預(yù)期值返回到從當(dāng)前狀態(tài)開始的所有連續(xù)步驟是最大可實(shí)現(xiàn)的意義。


參考文獻(xiàn):

[1]http://openclassroom.stanford.edu/

[2]機(jī)器學(xué)習(xí)公開課.Andrew Ng

[3]機(jī)器學(xué)習(xí).Tom M.Mitchell



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)