人工智慧常見演算法簡介

dicksonjyl560101發表於2019-02-15


https://blog.csdn.net/weixin_42137700/article/details/87355812



人工智慧的三大基石—演算法、資料和計算能力,演算法作為其他之一,是非常重要的,那麼人工智慧都會涉及哪些演算法呢?不同演算法適用於哪些場景呢?

一、按照模型訓練方式不同可以分為監督學習(Supervised Learning),無監督學習(Unsupervised Learning)、半監督學習(Semi-supervised Learning)和強化學習(Reinforcement Learning)四大類。

常見的監督學習演算法包含以下幾類:

人工智慧常見演算法簡介

(1)人工神經網路(Artificial Neural Network)類:反向傳播(Backpropagation)、波爾茲曼機(Boltzmann Machine)、卷積神經網路(Convolutional Neural Network)、Hopfield網路(hopfield Network)、多層感知器(Multilyer Perceptron)、徑向基函式網路(Radial Basis Function Network,RBFN)、受限波爾茲曼機(Restricted Boltzmann Machine)、迴歸神經網路(Recurrent Neural Network,RNN)、自組織對映(Self-organizing Map,SOM)、尖峰神經網路(Spiking Neural Network)等。

(2)貝葉斯類(Bayesin):樸素貝葉斯(Naive Bayes)、高斯貝葉斯(Gaussian Naive Bayes)、多項樸素貝葉斯(Multinomial Naive Bayes)、平均-依賴性評估(Averaged One-Dependence Estimators,AODE)

貝葉斯信念網路(Bayesian Belief Network,BBN)、貝葉斯網路(Bayesian Network,BN)等。

(3)決策樹(Decision Tree)類:分類和迴歸樹(Classification and Regression Tree,CART)、迭代Dichotomiser3(Iterative Dichotomiser 3, ID3),C4.5演算法(C4.5 Algorithm)、C5.0演算法(C5.0 Algorithm)、卡方自動互動檢測(Chi-squared Automatic Interaction Detection,CHAID)、決策殘端(Decision Stump)、ID3演算法(ID3 Algorithm)、隨機森林(Random Forest)、SLIQ(Supervised Learning in Quest)等。

(4)線性分類器(Linear Classifier)類:Fisher的線性判別(Fisher’s Linear Discriminant)

線性迴歸(Linear Regression)、邏輯迴歸(Logistic Regression)、多項邏輯迴歸(Multionmial Logistic Regression)、樸素貝葉斯分類器(Naive Bayes Classifier)、感知(Perception)、支援向量機(Support Vector Machine)等。

常見的無監督學習類演算法包括:

(1) 人工神經網路(Artificial Neural Network)類:生成對抗網路(Generative Adversarial Networks,GAN),前饋神經網路(Feedforward Neural Network)、邏輯學習機(Logic Learning Machine)、自組織對映(Self-organizing Map)等。

(2) 關聯規則學習(Association Rule Learning)類:先驗演算法(Apriori Algorithm)、Eclat演算法(Eclat Algorithm)、FP-Growth演算法等。

(3)分層聚類演算法(Hierarchical Clustering):單連鎖聚類(Single-linkage Clustering),概念聚類(Conceptual Clustering)等。

(4)聚類分析(Cluster analysis):BIRCH演算法、DBSCAN演算法,期望最大化(Expectation-maximization,EM)、模糊聚類(Fuzzy Clustering)、K-means演算法、K均值聚類(K-means Clustering)、K-medians聚類、均值漂移演算法(Mean-shift)、OPTICS演算法等。

(5)異常檢測(Anomaly detection)類:K最鄰近(K-nearest Neighbor,KNN)演算法,區域性異常因子演算法(Local Outlier Factor,LOF)等。

常見的半監督學習類演算法包含:生成模型(Generative Models)、低密度分離(Low-density Separation)、基於圖形的方法(Graph-based Methods)、聯合訓練(Co-training)等。

常見的強化學習類演算法包含:Q學習(Q-learning)、狀態-行動-獎勵-狀態-行動(State-Action-Reward-State-Action,SARSA)、DQN(Deep Q Network)、策略梯度演算法(Policy Gradients)、基於模型強化學習(Model Based RL)、時序差分學習(Temporal Different Learning)等。

常見的深度學習類演算法包含:深度信念網路(Deep Belief Machines)、深度卷積神經網路(Deep Convolutional Neural Networks)、深度遞迴神經網路(Deep Recurrent Neural Network)、分層時間記憶(Hierarchical Temporal Memory,HTM)、深度波爾茲曼機(Deep Boltzmann Machine,DBM)、棧式自動編碼器(Stacked Autoencoder)、生成對抗網路(Generative Adversarial Networks)等。

人工智慧常見演算法簡介

二、按照解決任務的不同來分類,粗略可以分為二分類演算法(Two-class Classification)、多分類演算法(Multi-class Classification)、迴歸演算法(Regression)、聚類演算法(Clustering)和異常檢測(Anomaly Detection)五種。

1.二分類(Two-class Classification)

(1)二分類支援向量機(Two-class SVM):適用於資料特徵較多、線性模型的場景。

(2)二分類平均感知器(Two-class Average Perceptron):適用於訓練時間短、線性模型的場景。

(3)二分類邏輯迴歸(Two-class Logistic Regression):適用於訓練時間短、線性模型的場景。

(4)二分類貝葉斯點機(Two-class Bayes Point Machine):適用於訓練時間短、線性模型的場景。(5)二分類決策森林(Two-class Decision Forest):適用於訓練時間短、精準的場景。

(6)二分類提升決策樹(Two-class Boosted Decision Tree):適用於訓練時間短、精準度高、記憶體佔用量大的場景

(7)二分類決策叢林(Two-class Decision Jungle):適用於訓練時間短、精確度高、記憶體佔用量小的場景。

(8)二分類區域性深度支援向量機(Two-class Locally Deep SVM):適用於資料特徵較多的場景。

(9)二分類神經網路(Two-class Neural Network):適用於精準度高、訓練時間較長的場景。

解決多分類問題通常適用三種解決方案:第一種,從資料集和適用方法入手,利用二分類器解決多分類問題;第二種,直接使用具備多分類能力的多分類器;第三種,將二分類器改進成為多分類器今兒解決多分類問題。

常用的演算法:

(1)多分類邏輯迴歸(Multiclass Logistic Regression):適用訓練時間短、線性模型的場景。

(2)多分類神經網路(Multiclass Neural Network):適用於精準度高、訓練時間較長的場景。

(3)多分類決策森林(Multiclass Decision Forest):適用於精準度高,訓練時間短的場景。

(4)多分類決策叢林(Multiclass Decision Jungle):適用於精準度高,記憶體佔用較小的場景。

(5)“一對多”多分類(One-vs-all Multiclass):取決於二分類器效果。

迴歸

迴歸問題通常被用來預測具體的數值而非分類。除了返回的結果不同,其他方法與分類問題類似。我們將定量輸出,或者連續變數預測稱為迴歸;將定性輸出,或者離散變數預測稱為分類。長巾的演算法有:

(1)排序迴歸(Ordinal Regression):適用於對資料進行分類排序的場景。

(2)泊松迴歸(Poission Regression):適用於預測事件次數的場景。

(3)快速森林分位數迴歸(Fast Forest Quantile Regression):適用於預測分佈的場景。

(4)線性迴歸(Linear Regression):適用於訓練時間短、線性模型的場景。

(5)貝葉斯線性迴歸(Bayesian Linear Regression):適用於線性模型,訓練資料量較少的場景。

(6)神經網路迴歸(Neural Network Regression):適用於精準度高、訓練時間較長的場景。

(7)決策森林迴歸(Decision Forest Regression):適用於精準度高、訓練時間短的場景。

(8)提升決策樹迴歸(Boosted Decision Tree Regression):適用於精確度高、訓練時間短、記憶體佔用較大的場景。

聚類

聚類的目標是發現資料的潛在規律和結構。聚類通常被用做描述和衡量不同資料來源間的相似性,並把資料來源分類到不同的簇中。

(1)層次聚類(Hierarchical Clustering):適用於訓練時間短、大資料量的場景。

(2)K-means演算法:適用於精準度高、訓練時間短的場景。

(3)模糊聚類FCM演算法(Fuzzy C-means,FCM):適用於精確度高、訓練時間短的場景。

(4)SOM神經網路(Self-organizing Feature Map,SOM):適用於執行時間較長的場景。

異常檢測

異常檢測是指對資料中存在的不正常或非典型的分體進行檢測和標誌,有時也稱為偏差檢測。

異常檢測看起來和監督學習問題非常相似,都是分類問題。都是對樣本的標籤進行預測和判斷,但是實際上兩者的區別非常大,因為異常檢測中的正樣本(異常點)非常小。常用的演算法有:

(1)一分類支援向量機(One-class SVM):適用於資料特徵較多的場景。

(2)基於PCA的異常檢測(PCA-based Anomaly Detection):適用於訓練時間短的場景。

常見的遷移學習類演算法包含:歸納式遷移學習(Inductive Transfer Learning) 、直推式遷移學習(Transductive Transfer Learning)、無監督式遷移學習(Unsupervised Transfer Learning)、傳遞式遷移學習(Transitive Transfer Learning)等。

演算法的適用場景:

需要考慮的因素有:

(1)資料量的大小、資料質量和資料本身的特點

(2)機器學習要解決的具體業務場景中問題的本質是什麼?

(3)可以接受的計算時間是什麼?

(4)演算法精度要求有多高?

有了演算法,有了被訓練的資料(經過預處理過的資料),那麼多次訓練(考驗計算能力的時候到了)後,經過模型評估和演算法人員調參後,會獲得訓練模型。當新的資料輸入後,那麼我們的訓練模型就會給出結果。業務要求的最基礎的功能就算實現了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2636100/,如需轉載,請註明出處,否則將追究法律責任。

相關文章