从上至下:
- 人工智能(Artificial Intelligence,AI)
- 机器学习(Machine Learning,ML)
- 深度学习(Deep Learning,DL)
机器学习例子:
机器学习算法尝试根据训练数据(training data)使得表示算法行为的数学目标最大化,并以此来进行预测或作出决定。
机器学习问题分为几种,包括分类、回归、聚类,每种都有不一样的目标。
所有的学习算法都需要定义每个数据点的特征(feature)集,也就是传给学习函数的值,正确地定义特征才是机器学习中最有挑战性的部分。大多数算法都只是专为数值特征(具体来说,就是一个代表各个特征值的数字向量)定义的,因此提取特征并转化为特征向量是机器学习过程中很重要的一步。
当数据已经成为特征向量的形式后,大多数机器学习算法都会根据这些向量优化一个定义好的数学函数。例如,某个分类算法可能会在特征向量的空间中定义出一个平面,使得这个平面能“最好”地分隔垃圾邮件和非垃圾邮件。这里需要为“最好”给出定义(比如大多数数据点都被这个平面正确分类)。算法会在运行结束时返回一个代表学习决定的模型(比如这个选中的平面),而这个模型就可以用来对新的点进行预测(例如根据新邮件的特征向量在平面的哪一边来决定它是不是垃圾邮件)。下图展示了一个机器学习流水线的示例。
最后,大多数机器学习算法都有多个会影响结果的参数,所以现实中的机器学习流水线会训练出多个不同版本的模型,然后分别对其进行评估(evaluate)。要这么做的话,通常需要把输入数据分为“训练集”和“测试集”,并且只使用前者进行训练,这样就可以用后者来检验模型是否过度拟合(overfit)了训练数据。
按学习方式分类
(1) 监督学习(分类、回归):输入数据被称为训练数据,它们有已知的标签和结果
(2) 半监督学习(分类和回归):输入数据由带标签和不带标签组成。
(3) 无监督学习(聚类):输入数据不带标签或者没有一个已知的结果。
(4) 集成学习(bagging、boosting):若干弱模型组合为强模型。
(5) 深度学习(深度神经网络):多层,循环训练
(6) 强化学习(动态系统以及机器人控制):输入数据作为来自环境的激励供给模型,且模型做出反应。反馈作为环境的惩罚或奖赏。包括Q学习,时序差分学习。
分析:
- 监督式学习:监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back PropagationNeural Network)、
- 无监督学习:在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。
- 半监督学习:在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。
- 集成学习:集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting,Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(StackedGeneralization, Blending),梯度推进机(Gradient BoostingMachine, GBM),随机森林(Random Forest)。
- 深度学习:机器学习需要一个精致的引擎和相当专业的知识来设计一个特征提取器,把原始数据(如图像的像素值)转换成一个适当的内部特征表示或特征向量,然后对输入的样本进行检测或分类。而特征学习是一套给机器灌入原始数据,就可以自动发现需要进行检测和分类的特征的方法。深度学习就是一种特征学习方法,把原始数据通过一些简单的但是非线性的模型转变成为更高层层次的、更加抽象的表达。通过足够多的转换的组合,非常复杂的函数也可以被学习。对于分类任务,高层次的表达能够强化输入数据的区分能力方面,同时削弱不相关因素。深度学习的核心方面是,各层的特征都不是利用人工工程来设计的,而是使用一种通用的学习过程从数据中学到的。
- 强化学习:在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal differencelearning)
按算法结构分类
分类一:
(1) 线性回归
(2) 逻辑回归
(3) 决策树
(4) 支持向量机
(5) 贝叶斯模型
(6) 正则化模型
(7) 模型集成
(8) 神经网络
分类二:
(1) 分类和回归:线性回归、逻辑回归、贝叶斯分类、决策树分类等
(2) 聚类:KMeans聚类、LDA主题、KNN等
(3) 关联规则:Apriori、FPGrowth等
(4) 推荐:协同过滤、ALS等
(5) 神经网络:BP、RBF、SVM等
(6) 深度神经网络:CNN、RNN
主要参考:
- [美] Holden Karau/[美] Andy Konwinski/[美] Patrick Wendell/[加] Matei Zaharia. Spark快速大数据分析