機(jī)器學(xué)習(xí)算法都有哪一些
掃描二維碼
隨時隨地手機(jī)看文章
機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)(Machine Learning, ML)是一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科。專門研究計算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識或技能,重新組織已有的知識結(jié)構(gòu)使之不斷改善自身的性能。
嚴(yán)格的定義:機(jī)器學(xué)習(xí)是一門研究機(jī)器獲取新知識和新技能,并識別現(xiàn)有知識的學(xué)問。這里所說的“機(jī)器”,指的就是計算機(jī),電子計算機(jī),中子計算機(jī)、光子計算機(jī)或神經(jīng)計算機(jī)等等。
機(jī)器學(xué)習(xí)概論
機(jī)器學(xué)習(xí)分為四大塊: classification (分類), clustering (聚類), regression (回歸), dimensionality reducTIon (降維)。
classificaTIon & regression
舉一個簡單的例子:
給定一個樣本特征 x, 我們希望預(yù)測其對應(yīng)的屬性值 y, 如果 y 是離散的, 那么這就是一個分類問題,反之,如果 y 是連續(xù)的實數(shù), 這就是一個回歸問題。
如果給定一組樣本特征 S={x∈RD}, 我們沒有對應(yīng)的 y, 而是想發(fā)掘這組樣本在 D 維空間的分布, 比如分析哪些樣本靠的更近,哪些樣本之間離得很遠(yuǎn), 這就是屬于聚類問題。
如果我們想用維數(shù)更低的子空間來表示原來高維的特征空間, 那么這就是降維問題。
無論是分類還是回歸,都是想建立一個預(yù)測模型 H,給定一個輸入 x, 可以得到一個輸出 y:
y=H(x)
不同的只是在分類問題中, y 是離散的; 而在回歸問題中 y 是連續(xù)的。所以總得來說,兩種問題的學(xué)習(xí)算法都很類似。所以在這個圖譜上,我們看到在分類問題中用到的學(xué)習(xí)算法,在回歸問題中也能使用。分類問題最常用的學(xué)習(xí)算法包括 SVM (支持向量機(jī)) , SGD (隨機(jī)梯度下降算法), Bayes (貝葉斯估計), Ensemble, KNN 等。而回歸問題也能使用 SVR, SGD, Ensemble 等算法,以及其它線性回歸算法。
clustering
聚類也是分析樣本的屬性, 有點類似classificaTIon, 不同的就是classificaTIon 在預(yù)測之前是知道 y 的范圍, 或者說知道到底有幾個類別, 而聚類是不知道屬性的范圍的。所以 classification 也常常被稱為 supervised learning, 而clustering就被稱為 unsupervised learning。
clustering 事先不知道樣本的屬性范圍,只能憑借樣本在特征空間的分布來分析樣本的屬性。這種問題一般更復(fù)雜。而常用的算法包括 k-means (K-均值), GMM (高斯混合模型) 等。
dimensionality reduction
降維是機(jī)器學(xué)習(xí)另一個重要的領(lǐng)域, 降維有很多重要的應(yīng)用, 特征的維數(shù)過高, 會增加訓(xùn)練的負(fù)擔(dān)與存儲空間, 降維就是希望去除特征的冗余, 用更加少的維數(shù)來表示特征。 降維算法最基礎(chǔ)的就是PCA了, 后面的很多算法都是以PCA為基礎(chǔ)演化而來。
機(jī)器 學(xué)習(xí)常見算法
機(jī)器學(xué)習(xí)領(lǐng)域涉及到很多的算法和模型,這里遴選一些常見的算法:
正則化算法(Regularization Algorithms)
集成算法(Ensemble Algorithms)
決策樹算法(Decision Tree Algorithm)
回歸(Regression)
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)
深度學(xué)習(xí)(Deep Learning)
支持向量機(jī)(Support Vector Machine)
降維算法(Dimensionality Reduction Algorithms)
聚類算法(Clustering Algorithms)
基于實例的算法(Instance-based Algorithms)
貝葉斯算法(Bayesian Algorithms)
關(guān)聯(lián)規(guī)則學(xué)習(xí)算法(Association Rule Learning Algorithms)
圖模型(Graphical Models)
正則化算法(Regularization Algorithms)
正則化算法是另一種方法(通常是回歸方法)的拓展,這種方法會基于模型復(fù)雜性對其進(jìn)行懲罰,它喜歡相對簡單能夠更好的泛化的模型。
正則化中我們將保留所有的特征變量,但是會減小特征變量的數(shù)量級(參數(shù)數(shù)值的大小θ(j))。這個方法非常有效,當(dāng)我們有很多特征變量時,其中每一個變量都能對預(yù)測產(chǎn)生一點影響。
算法實例:
- 嶺回歸(Ridge Regression)
- 最小絕對收縮與選擇算子(LASSO)
- GLASSO
- 彈性網(wǎng)絡(luò)(Elastic Net)
- 最小角回歸(Least-Angle Regression)
集成算法(Ensemble algorithms)
集成方法是由多個較弱的模型集成模型組,其中的模型可以單獨(dú)進(jìn)行訓(xùn)練,并且它們的預(yù)測能以某種方式結(jié)合起來去做出一個總體預(yù)測。這類算法又稱元算法(meta-algorithm)。最常見的集成思想有兩種bagging和boosting。
boosting
基于錯誤提升分類器性能,通過集中關(guān)注被已有分類器分類錯誤的樣本,構(gòu)建新分類器并集成。
bagging
基于數(shù)據(jù)隨機(jī)重抽樣的分類器構(gòu)建方法。
算法實例:
Boosting
Bootstrapped Aggregation(Bagging)
AdaBoost
層疊泛化(Stacked Generalization)(blending)
梯度推進(jìn)機(jī)(Gradient Boosting Machines,GBM)
梯度提升回歸樹(Gradient Boosted Regression Trees,GBRT)
隨機(jī)森林(Random Forest)
總結(jié):當(dāng)先最先進(jìn)的預(yù)測幾乎都使用了算法集成。它比使用單個模型預(yù)測出來的結(jié)果要精確的多。但是該算法需要大量的維護(hù)工作。
決策樹算法(Decision Tree Algorithm)
決策樹學(xué)習(xí)使用一個決策樹作為一個預(yù)測模型,它將對一個 item(表征在分支上)觀察所得映射成關(guān)于該 item 的目標(biāo)值的結(jié)論(表征在葉子中)。
決策樹通過把實例從艮節(jié)點排列到某個葉子結(jié)點來分類實例,葉子結(jié)點即為實例所屬的分類。樹上的每一個結(jié)點指定了對實例的某個屬性的測試,并且該結(jié)點的每一個后繼分支對應(yīng)于該屬性的一個可能值。分類實例的方法是從這棵樹的根節(jié)點開始,測試這個結(jié)點的屬性,然后按照給定實例的屬性值對應(yīng)的樹枝向下移動。然后這個過程在以新結(jié)點的根的子樹上重復(fù)。
算法實例:
- 分類和回歸樹(Classification and Regression Tree,CART)
- Iterative Dichotomiser 3(ID3)
- C4.5 和 C5.0(一種強(qiáng)大方法的兩個不同版本)
回歸(Regression)算法
回歸是用于估計兩種變量之間關(guān)系的統(tǒng)計過程。當(dāng)用于分析因變量和一個 多個自變量之間的關(guān)系時,該算法能提供很多建模和分析多個變量的技巧。具體一點說,回歸分析可以幫助我們理解當(dāng)任意一個自變量變化,另一個自變量不變時,因變量變化的典型值。最常見的是,回歸分析能在給定自變量的條件下估計出因變量的條件期望。
算法實例:
普通最小二乘回歸(Ordinary Least Squares Regression,OLSR)
線性回歸(Linear Regression)
邏輯回歸(Logistic Regression)
逐步回歸(Stepwise Regression)
多元自適應(yīng)回歸樣條(Multivariate Adaptive Regression Splines,MARS)
本地散點平滑估計(Locally Estimated Scatterplot Smoothing,LOESS)
人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)是受生物神經(jīng)網(wǎng)絡(luò)啟發(fā)而構(gòu)建的算法模型。它是一種模式匹配,常被用于回歸和分類問題,但擁有龐大的子域,由數(shù)百種算法和各類問題的變體組成。
人工神經(jīng)網(wǎng)絡(luò)(ANN)提供了一種普遍而且實際的方法從樣例中學(xué)習(xí)值為實數(shù)、離散值或向量函數(shù)。人工神經(jīng)網(wǎng)絡(luò)由一系列簡單的單元相互連接構(gòu)成,其中每個單元有一定數(shù)量的實值輸入,并產(chǎn)生單一的實值輸出。
算法實例:
感知器
反向傳播
Hopfield 網(wǎng)絡(luò)
徑向基函數(shù)網(wǎng)絡(luò)(Radial Basis Function Network,RBFN)
深度學(xué)習(xí)(Deep Learning)
深度學(xué)習(xí)是人工神經(jīng)網(wǎng)絡(luò)的最新分支,它受益于當(dāng)代硬件的快速發(fā)展。
眾多研究者目前的方向主要集中于構(gòu)建更大、更復(fù)雜的神經(jīng)網(wǎng)絡(luò),目前有許多方法正在聚焦半監(jiān)督學(xué)習(xí)問題,其中用于訓(xùn)練的大數(shù)據(jù)集只包含很少的標(biāo)記。
算法實例:
深玻耳茲曼機(jī)(Deep Boltzmann Machine,DBM)
Deep Belief Networks(DBN)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)
Stacked Auto-Encoders
支持向量機(jī)(Support Vector Machines)
支持向量機(jī)是一種監(jiān)督式學(xué)習(xí) (Supervised Learning)的方法,主要用在統(tǒng)計分類 (Classification)問題和回歸分析 (Regression)問題上。支持向量機(jī)屬于一般化線性分類器,也可以被認(rèn)為是提克洛夫規(guī)范化(Tikhonov Regularization)方法的一個特例。這族分類器的特點是他們能夠同時最小化經(jīng)驗誤差與最大化幾何邊緣區(qū),因此支持向量機(jī)也被稱為最大邊緣區(qū)分類器?,F(xiàn)在多簡稱為SVM。
給定一組訓(xùn)練事例,其中每個事例都屬于兩個類別中的一個,支持向量機(jī)(SVM)訓(xùn)練算法可以在被輸入新的事例后將其分類到兩個類別中的一個,使自身成為非概率二進(jìn)制線性分類器。
SVM 模型將訓(xùn)練事例表示為空間中的點,它們被映射到一幅圖中,由一條明確的、盡可能寬的間隔分開以區(qū)分兩個類別。
降維算法(Dimensionality Reduction Algorithms)
所謂的降維就是指采用某種映射方法,將原高維空間中的數(shù)據(jù)點映射到低維度的空間中。降維的本質(zhì)是學(xué)習(xí)一個映射函數(shù) f : x-》y,其中x是原始數(shù)據(jù)點的表達(dá),目前最多使用向量表達(dá)形式。 y是數(shù)據(jù)點映射后的低維向量表達(dá),通常y的維度小于x的維度(當(dāng)然提高維度也是可以的)。f可能是顯式的或隱式的、線性的或非線性的。
這一算法可用于可視化高維數(shù)據(jù)或簡化接下來可用于監(jiān)督學(xué)習(xí)中的數(shù)據(jù)。許多這樣的方法可針對分類和回歸的使用進(jìn)行調(diào)整。
算法實例:
主成分分析(Principal Component Analysis (PCA))
主成分回歸(Principal Component Regression (PCR))
偏最小二乘回歸(Partial Least Squares Regression (PLSR))
Sammon 映射(Sammon Mapping)
多維尺度變換(Multidimensional Scaling (MDS))
投影尋蹤(Projection Pursuit)
線性判別分析(Linear Discriminant Analysis (LDA))
混合判別分析(Mixture Discriminant Analysis (MDA))
二次判別分析(Quadratic Discriminant Analysis (QDA))
靈活判別分析(Flexible Discriminant Analysis (FDA))
聚類算法(Clustering Algorithms)
聚類算法是指對一組目標(biāo)進(jìn)行分類,屬于同一組(亦即一個類,cluster)的目標(biāo)被劃分在一組中,與其他組目標(biāo)相比,同一組目標(biāo)更加彼此相似。
優(yōu)點是讓數(shù)據(jù)變得有意義,缺點是結(jié)果難以解讀,針對不同的數(shù)據(jù)組,結(jié)果可能無用。
算法實例:
K-均值(k-Means)
k-Medians 算法
Expectation Maximi 封層 ation (EM)
最大期望算法(EM)
分層集群(Hierarchical Clstering)
貝葉斯算法(Bayesian Algorithms)
貝葉斯定理(英語:Bayes’ theorem)是概率論中的一個定理,它跟隨機(jī)變量的條件概率以及邊緣概率分布有關(guān)。在有些關(guān)于概率的解說中,貝葉斯定理(貝葉斯更新)能夠告知我們?nèi)绾卫眯伦C據(jù)修改已有的看法。貝葉斯方法是指明確應(yīng)用了貝葉斯定理來解決如分類和回歸等問題的方法。
算法實例:
樸素貝葉斯(Naive Bayes)
高斯樸素貝葉斯(Gaussian Naive Bayes)
多項式樸素貝葉斯(Multinomial Naive Bayes)
平均一致依賴估計器(Averaged One-Dependence Estimators (AODE))
貝葉斯信念網(wǎng)絡(luò)(Bayesian Belief Network (BBN))
貝葉斯網(wǎng)絡(luò)(Bayesian Network (BN))
關(guān)聯(lián)規(guī)則學(xué)習(xí)算法(Association Rule Learning Algorithms)
關(guān)聯(lián)規(guī)則學(xué)習(xí)方法能夠提取出對數(shù)據(jù)中的變量之間的關(guān)系的最佳解釋。比如說一家超市的銷售數(shù)據(jù)中存在規(guī)則 {洋蔥,土豆}=》 {漢堡},那說明當(dāng)一位客戶同時購買了洋蔥和土豆的時候,他很有可能還會購買漢堡肉。有點類似于聯(lián)想算法。
算法實例:
Apriori 算法(Apriori algorithm)
Eclat 算法(Eclat algorithm)
FP-growth
圖模型(Graphical Models)
圖模型(GraphicalModels)在概率論與圖論之間建立起了聯(lián)姻關(guān)系。它提供了一種自然工具來處理應(yīng)用數(shù)學(xué)與工程中的兩類問題——不確定性(Uncertainty)和復(fù)雜性(Complexity)問 題,特別是在機(jī)器學(xué)習(xí)算法的分析與設(shè)計中扮演著重要角色。圖模型的基本理念是模塊化的思想,復(fù)雜系統(tǒng)是通過組合簡單系統(tǒng)建構(gòu)的。概率論提供了一種粘合劑使 系統(tǒng)的各個部分組合在一起,確保系統(tǒng)作為整體的持續(xù)一致性,提供了多種數(shù)據(jù)接口模型方法。
圖模型或概率圖模型(PGM/probabilistic graphical model)是一種概率模型,一個圖(graph)可以通過其表示隨機(jī)變量之間的條件依賴結(jié)構(gòu)(conditional dependence structure)。
算法實例:
貝葉斯網(wǎng)絡(luò)(Bayesian network)
馬爾可夫隨機(jī)域(Markov random field)
鏈圖(Chain Graphs)
祖先圖(Ancestral graph)