選自static.coggle.it
機器之心編譯
在我們日常生活中所用到的推薦系統、智能圖片美化應用和聊天機器人等應用中,各種各樣的機器學習和數據處理演算法正盡職盡責地發揮著自己的功效。本文篩選並簡單介紹了一些最常見演算法類別,還為每一個類別列出了一些實際的演算法並簡單介紹了它們的優缺點。
目錄
正則化演算法(Regularization Algorithms)
集成演算法(Ensemble Algorithms)
決策樹演算法(Decision Tree Algorithm)
回歸(Regression)
人工神經網路(Artificial Neural Network)
深度學習(Deep Learning)
支持向量機(Support Vector Machine)
降維演算法(Dimensionality Reduction Algorithms)
聚類演算法(Clustering Algorithms)
基於實例的演算法(Instance-based Algorithms)
貝葉斯演算法(Bayesian Algorithms)
關聯規則學習演算法(Association Rule Learning Algorithms)
圖模型(Graphical Models)
正則化演算法(Regularization Algorithms)
它是另一種方法(通常是回歸方法)的拓展,這種方法會基於模型複雜性對其進行懲罰,它喜歡相對簡單能夠更好的泛化的模型。
例子:
嶺回歸(Ridge Regression)
最小絕對收縮與選擇運算元(LASSO)
GLASSO
彈性網路(Elastic Net)
最小角回歸(Least-Angle Regression)
優點:
其懲罰會減少過擬合
總會有解決方法
缺點:
懲罰會造成欠擬合
很難校準
集成演算法(Ensemble algorithms)
集成方法是由多個較弱的模型集成模型組,其中的模型可以單獨進行訓練,並且它們的預測能以某種方式結合起來去做出一個總體預測。
該演算法主要的問題是要找出哪些較弱的模型可以結合起來,以及結合的方法。這是一個非常強大的技術集,因此廣受歡迎。
Boosting
Bootstrapped Aggregation(Bagging)
AdaBoost
層疊泛化(Stacked Generalization)(blending)
梯度推進機(Gradient Boosting Machines,GBM)
梯度提升回歸樹(Gradient Boosted Regression Trees,GBRT)
隨機森林(Random Forest)
優點:
當先最先進的預測幾乎都使用了演算法集成。它比使用單個模型預測出來的結果要精確的多
缺點:
需要大量的維護工作
決策樹演算法(Decision Tree Algorithm)
決策樹學習使用一個決策樹作為一個預測模型,它將對一個 item(表徵在分支上)觀察所得映射成關於該 item 的目標值的結論(表徵在葉子中)。
樹模型中的目標是可變的,可以采一組有限值,被稱為分類樹;在這些樹結構中,葉子表示類標籤,分支表示表徵這些類標籤的連接的特徵。
例子:
分類和回歸樹(Classification and Regression Tree,CART)
Iterative Dichotomiser 3(ID3)
C4.5 和 C5.0(一種強大方法的兩個不同版本)
優點:
容易解釋
非參數型
缺點:
趨向過擬合
可能或陷於局部最小值中
沒有在線學習
回歸(Regression)演算法
回歸是用於估計兩種變數之間關係的統計過程。當用於分析因變數和一個 多個自變數之間的關係時,該演算法能提供很多建模和分析多個變數的技巧。具體一點說,回歸分析可以幫助我們理解當任意一個自變數變化,另一個自變數不變時,因變數變化的典型值。最常見的是,回歸分析能在給定自變數的條件下估計出因變數的條件期望。
回歸演算法是統計學中的主要演算法,它已被納入統計機器學習。
例子:
普通最小二乘回歸(Ordinary Least Squares Regression,OLSR)
線性回歸(Linear Regression)
邏輯回歸(Logistic Regression)
逐步回歸(Stepwise Regression)
多元自適應回歸樣條(Multivariate Adaptive Regression Splines,MARS)
本地散點平滑估計(Locally Estimated Scatterplot Smoothing,LOESS)
優點:
直接、快速
知名度高
缺點:
要求嚴格的假設
需要處理異常值
人工神經網路
人工神經網路是受生物神經網路啟發而構建的演算法模型。
它是一種模式匹配,常被用於回歸和分類問題,但擁有龐大的子域,由數百種演算法和各類問題的變體組成。
例子:
感知器
反向傳播
Hopfield 網路
徑向基函數網路(Radial Basis Function Network,RBFN)
優點:
在語音、語義、視覺、各類遊戲(如圍棋)的任務中表現極好。
演算法可以快速調整,適應新的問題。
缺點:
需要大量數據進行訓練
訓練要求很高的硬體配置
模型處於「黑箱狀態」,難以理解內部機制
元參數(Metaparameter)與網路拓撲選擇困難。
深度學習(Deep Learning)
深度學習是人工神經網路的最新分支,它受益於當代硬體的快速發展。
眾多研究者目前的方向主要集中於構建更大、更複雜的神經網路,目前有許多方法正在聚焦半監督學習問題,其中用於訓練的大數據集只包含很少的標記。
例子:
深玻耳茲曼機(Deep Boltzmann Machine,DBM)
Deep Belief Networks(DBN)
卷積神經網路(CNN)
Stacked Auto-Encoders
優點/缺點:見神經網路
支持向量機(Support Vector Machines)
給定一組訓練事例,其中每個事例都屬於兩個類別中的一個,支持向量機(SVM)訓練演算法可以在被輸入新的事例后將其分類到兩個類別中的一個,使自身成為非概率二進位線性分類器。
SVM 模型將訓練事例表示為空間中的點,它們被映射到一幅圖中,由一條明確的、儘可能寬的間隔分開以區分兩個類別。
隨後,新的示例會被映射到同一空間中,並基於它們落在間隔的哪一側來預測它屬於的類別。
優點:
在非線性可分問題上表現優秀
缺點:
非常難以訓練
很難解釋
降維演算法(Dimensionality Reduction Algorithms)
和集簇方法類似,降維追求並利用數據的內在結構,目的在於使用較少的信息總結或描述數據。
這一演算法可用於可視化高維數據或簡化接下來可用於監督學習中的數據。許多這樣的方法可針對分類和回歸的使用進行調整。
例子:
優點:
可處理大規模數據集
無需在數據上進行假設
缺點:
難以搞定非線性數據
難以理解結果的意義
聚類演算法(Clustering Algorithms)
聚類演算法是指對一組目標進行分類,屬於同一組(亦即一個類,cluster)的目標被劃分在一組中,與其他組目標相比,同一組目標更加彼此相似(在某種意義上)。
例子:
優點:
讓數據變得有意義
缺點:
結果難以解讀,針對不尋常的數據組,結果可能無用。
基於實例的演算法(Instance-based Algorithms)
基於實例的演算法(有時也稱為基於記憶的學習)是這樣學 習演算法,不是明確歸納,而是將新的問題例子與訓練過程中見過的例子進行對比,這些見過的例子就在存儲器中。
之所以叫基於實例的演算法是因為它直接從訓練實例中建構出假設。這意味這,假設的複雜度能隨著數據的增長而變化:最糟的情況是,假設是一個訓練項目列表,分類一個單獨新實例計算複雜度為 O(n)
例子:
優點:
演算法簡單、結果易於解讀
缺點:
內存使用非常高
計算成本高
不可能用於高維特徵空間
貝葉斯演算法(Bayesian Algorithms)
貝葉斯方法是指明確應用了貝葉斯定理來解決如分類和回歸等問題的方法。
例子:
優點:
快速、易於訓練、給出了它們所需的資源能帶來良好的表現
缺點:
如果輸入變數是相關的,則會出現問題
關聯規則學習演算法(Association Rule Learning Algorithms)
關聯規則學習方法能夠提取出對數據中的變數之間的關係的最佳解釋。比如說一家超市的銷售數據中存在規則 {洋蔥,土豆}=> {漢堡},那說明當一位客戶同時購買了洋蔥和土豆的時候,他很有可能還會購買漢堡肉。
例子:
圖模型(Graphical Models)
圖模型或概率圖模型(PGM/probabilistic graphical model)是一種概率模型,一個圖(graph)可以通過其表示隨機變數之間的條件依賴結構(conditional dependence structure)。
例子:
優點:
模型清晰,能被直觀地理解
缺點: