人工智能涉及算法
最近需要提交高级人工网络的课程论文,故查找一下资料,做如下记录。后期会继续补充部分算法的的详细内容、自己的理解和代码实现部分
人工智能的三大基石:算法、数据和计算能力。就算法来看,涉及如下几种。
一、按照模型训练方式不同分类
可以分为监督学习(Supervised Learning),无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)和强化学习(Reinforcement Learning)四大类。
常见的监督学习类算法包括:
(1)人工神经网络(Artificial Neural Network)类
1.反向传播(Backpropagation)
2.波尔兹曼机(Boltzmann Machine)
3.卷积神经网络(Convolutional Neural Network)
4.Hopfield网络(hopfield Network)
5.多层感知器(Multilyer Perceptron)
6.径向基函数网络(Radial Basis Function Network,RBFN)
7.受限波尔兹曼机(Restricted Boltzmann Machine)
8.回归神经网络(Recurrent Neural Network,RNN)
9.自组织映射(Self-organizing Map,SOM)
10.尖峰神经网络(Spiking Neural Network)等。
(2)贝叶斯类(Bayesin)类:
1.朴素贝叶斯(Naive Bayes)
2.高斯贝叶斯(Gaussian Naive Bayes)
3.多项朴素贝叶斯(Multinomial Naive Bayes)
4.平均-依赖性评估(Averaged One-Dependence Estimators,AODE)
5.贝叶斯信念网络(Bayesian Belief Network,BBN)
6.贝叶斯网络(Bayesian Network,BN)等。
(3)决策树(Decision Tree)类:
1.分类和回归树(Classification and Regression Tree,CART)
2.ID3算法(ID3 Algorithm)
3.C4.5算法(C4.5 Algorithm)、C5.0算法(C5.0 Algorithm)
4.卡方自动交互检测(Chi-squared Automatic Interaction Detection,CHAID)
5.决策残端(Decision Stump)
6.随机森林(Random Forest)
7.SLIQ(Supervised Learning in Quest)等。
(4)线性分类器(Linear Classifier)类:
1.Fisher的线性判别(Fisher’s Linear Discriminant)
2.线性回归(Linear Regression)
3.逻辑回归(Logistic Regression)
4.多项逻辑回归(Multionmial Logistic Regression)
5.朴素贝叶斯分类器(Naive Bayes Classifier)
6.感知(Perception)
7.支持向量机(Support Vector Machine)等。
常见的无监督学习类算法包括:
(1) 人工神经网络(Artificial Neural Network)类:
1.生成对抗网络(Generative Adversarial Networks,GAN)
2.前馈神经网络(Feedforward Neural Network)
3.逻辑学习机(Logic Learning Machine)
4.自组织映射(Self-organizing Map)等。
(2) 关联规则学习(Association Rule Learning)类:
1.先验算法(Apriori Algorithm)
2.Eclat算法(Eclat Algorithm)
3.FP-Growth算法等。
(3)分层聚类算法(Hierarchical Clustering)类:
1.单连锁聚类(Single-linkage Clustering)
2.概念聚类(Conceptual Clustering)等。
(4)聚类分析(Cluster analysis)类:
1.BIRCH算法
2.DBSCAN算法
3.期望最大化(Expectation-maximization,EM)
4.模糊聚类(Fuzzy Clustering)
5.K-means算法
6.K均值聚类(K-means Clustering)
7.K-medians聚类
8.均值漂移算法(Mean-shift)
9.OPTICS算法等。
(5)异常检测(Anomaly detection)类:
1.K最邻近(K-nearest Neighbor,KNN)算法
2.局部异常因子算法(Local Outlier Factor,LOF)等。
常见的半监督学习类算法包含:
1.生成模型(Generative Models)
2.低密度分离(Low-density Separation)
3.基于图形的方法(Graph-based Methods)
4.联合训练(Co-training)等。
常见的强化学习类算法包含:
1.Q学习(Q-learning)
2.状态-行动-奖励-状态-行动(State-Action-Reward-State-Action,SARSA)
3.DQN(Deep Q Network)
4.策略梯度算法(Policy Gradients)
5.基于模型强化学习(Model Based RL)
6.时序差分学习(Temporal Different Learning)等。
常见的深度学习类算法包含:
1.深度信念网络(Deep Belief Machines)
2.深度卷积神经网络(Deep Convolutional Neural Networks)
3.深度递归神经网络(Deep Recurrent Neural Network)
4.分层时间记忆(Hierarchical Temporal Memory,HTM
5.深度波尔兹曼机(Deep Boltzmann Machine,DBM)
6.栈式自动编码器(Stacked Autoencoder)
7.生成对抗网络(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):适用于精准度高、训练时间较长的场景。
(2)多分类算法(Multi-class Classification)
解决多分类问题通常适用三种解决方案:第一种,从数据集和适用方法入手,利用二分类器解决多分类问题;第二种,直接使用具备多分类能力的多分类器;第三种,将二分类器改进成为多分类器今儿解决多分类问题。
1.多分类逻辑回归(Multiclass Logistic Regression):适用训练时间短、线性模型的场景。
2.多分类神经网络(Multiclass Neural Network):适用于精准度高、训练时间较长的场景。
3.多分类决策森林(Multiclass Decision Forest):适用于精准度高,训练时间短的场景。
4.多分类决策丛林(Multiclass Decision Jungle):适用于精准度高,内存占用较小的场景。
5.“一对多”多分类(One-vs-all Multiclass):取决于二分类器效果。
(3)回归算法(Regression)
回归问题通常被用来预测具体的数值而非分类。除了返回的结果不同,其他方法与分类问题类似。我们将定量输出,或者连续变量预测称为回归;将定性输出,或者离散变量预测称为分类。
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):适用于精确度高、训练时间短、内存占用较大的场景。
(4) 聚类算法(Clustering)
聚类的目标是发现数据的潜在规律和结构。聚类通常被用做描述和衡量不同数据源间的相似性,并把数据源分类到不同的簇中。
1.层次聚类(Hierarchical Clustering):适用于训练时间短、大数据量的场景。
2.K-means算法:适用于精准度高、训练时间短的场景。
3.模糊聚类FCM算法(Fuzzy C-means,FCM):适用于精确度高、训练时间短的场景。
4.SOM神经网络(Self-organizing Feature Map,SOM):适用于运行时间较长的场景。
(5) 异常检测算法(Anomaly Detection)
异常检测是指对数据中存在的不正常或非典型的分体进行检测和标志,有时也称为偏差检测。
异常检测看起来和监督学习问题非常相似,都是分类问题。都是对样本的标签进行预测和判断,但是实际上两者的区别非常大,因为异常检测中的正样本(异常点)非常小。常用的算法有:
1.一分类支持向量机(One-class SVM):适用于数据特征较多的场景。
2.基于PCA的异常检测(PCA-based Anomaly Detection):适用于训练时间短的场景。
(6)迁移学习类算法(Transfer Learning)
1.归纳式迁移学习(Inductive Transfer Learning)
2.直推式迁移学习(Transductive Transfer Learning)
3.无监督式迁移学习(Unsupervised Transfer Learning)
4.传递式迁移学习(Transitive Transfer Learning)等。