人工智能&机器学习&深度学习

机器学习:一切通过优化方法挖掘数据中规律的学科。

 深度学习:一切运用了神经网络作为参数结构进行优化的机器学习算法。 

 强化学习:不仅能利用现有数据,还可以通过对环境的探索获得新数据,并利用新数据循环往复地更新迭代现有模型的机器学习算法。学习是为了更好地对环境进行探索,而探索是为了获取数据进行更好的学习。 

 深度强化学习:一切运用了神经网络作为参数结构进行优化的强化学习算法。

人工智能定义与分类

人工智能(Artificial Intelligence, AI)是机器,特别是计算机系统对人类智能过程的模拟。人工智能是一个愿景,目标就是让机器像我们人类一样思考与行动,能够代替我们人类去做各种各样的工作人工智能研究的范围非常广,包括演绎、推理和解决问题、知识表示、学习、运动和控制、数据挖掘等众多领域。

人工智能应用场景分类

人工智能、机器学习与深度学习关系 

人工智能是一个宏大的愿景,目标是让机器像我们人类一样思考和行动,既包括增强我们人类脑力也包括增强我们体力的研究领域。而学习只是实现人工智能的手段之一,并且,只是增强我们人类脑力的方法之一。所以,人工智能包含机器学习。机器学习又包含了深度学习。

机器学习的算法流程

1)数据集准备、2)探索性的对数据进行分析、3)数据预处理、4)数据分割、5)机器学习算法建模、6)选择机器学习任务,到最后就是评价机器学习算法对实际数据的应用情况如何。


机器学习算法流程

1 数据集

首先我们要研究的是数据的问题,数据集是构建机器学习模型流程的起点。简单来说,数据集本质上是一个M×N矩阵,其中M代表列(特征),N代表行(样本)。列可以分解为X和Y,X是可以指特征、独立变量或者是输入变量。Y也是可以指类别标签、因变量和输出变量。

数据集

2 数据分析

进行探索性数据分析(Exploratory data analysis, EDA)是为了获得对数据的初步了解。EDA主要的工作是:对数据进行清洗,对数据进行描述(描述统计量,图表),查看数据的分布,比较数据之间的关系,培养对数据的直觉,对数据进行总结等。

描述性统计:平均数、中位数、模式、标准差。

数据可视化:热力图(辨别特征内部相关性)、箱形图(可视化群体差异)、散点图(可视化特征之间的相关性)、主成分分析(可视化数据集中呈现的聚类分布)等。

数据整形:对数据进行透视、分组、过滤等。

3 数据预处理

数据预处理,其实就是对数据进行清理、数据整理或普通数据处理。指对数据进行各种检查和校正过程,以纠正缺失值、拼写错误、使数值正常化/标准化以使其具有可比性、转换数据(如对数转换)等问题。一般来说,数据预处理可以轻松地占到机器学习项目流程中80%的时间,而实际的模型建立阶段和后续的模型分析大概仅占到剩余的20%。

4 数据分割

训练集 & 测试集

在机器学习模型的开发流程中,希望训练好的模型能在新的、未见过的数据上表现良好。为了模拟新的、未见过的数据,对可用数据进行数据分割,从而将已经处理好的数据集分割成2部分:训练集合测试集。

第一部分是较大的数据子集,用作训练集(如占原始数据的80%);第二部分通常是较小的子集,用作测试集(其余20%的数据)。

接下来,利用训练集建立预测模型,然后将这种训练好的模型应用于测试集(即作为新的、未见过的数据)上进行预测。根据模型在测试集上的表现来选择最佳模型,为了获得最佳模型,还可以进行超参数优化。

训练集 & 验证集 & 测试集

另一种常见的数据分割方法是将数据分割成3部分:1)训练集,2)验证集和3)测试集。

训练集用于建立预测模型,同时对验证集进行评估,据此进行预测,可以进行模型调优(如超参数优化),并根据验证集的结果选择性能最好的模型。

验证集的操作方式跟训练集类似。不过值得注意的是,测试集不参与机器学习模型的建立和准备,是机器学习模型训练过程中单独留出的样本集,用于调整模型的超参数和对模型的能力进行初步评估。通常边训练边验证,这里的验证就是用验证集来检验模型的初步效果。

交叉验证

实际上数据是机器学习流程中最宝贵的,为了更加经济地利用现有数据,通常使用N倍交叉验证,将数据集分割成N个。在这样的N倍数据集中,其中一个被留作测试数据,而其余的则被用作建立模型的训练数据。通过反复交叉迭代的方式来对机器学习流程进行验证。

这种交叉验证的方法在机器学习流程中被广泛的使用,但是深度学习中使用得比较少哈。


交叉验证

5 机器学习算法建模

根据taget变量(通常称为Y变量)的数据类型,可以建立一个分类或回归模型。

机器学习算法可以大致分为以下三种类型之一:

监督学习:是一种机器学习任务,建立输入X和输出Y变量之间的数学(映射)关系。这样的(X、Y)对构成了用于建立模型的标签数据,以便学习如何从输入中预测输出。即从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练数据中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。

无监督学习:是一种只利用输入X变量的机器学习任务。X变量是未标记的数据,学习算法在建模时使用的是数据的固有结构。常见的无监督学习算法有聚类。

半监督学习:介于监督学习与无监督学习之间。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。

强化学习:是一种决定下一步行动方案的机器学习任务,它通过试错学习(trial and error learning)来实现这一目标,努力使reward回报最大化,达到目标会有正向反馈。

机器学习(ML)技术在预测中发挥了重要的作用,ML经历了多代的发展,形成了具有丰富的模型结构,例如:1.线性回归。2.逻辑回归。3.决策树。4.支持向量机。5.贝叶斯模型。6.正则化模型。7.模型集成(ensemble)。8.神经网络。

特征选择

特征选择从字面上看就是从最初的大量特征中选择一个特征子集的过程。除了实现高精度的模型外,机器学习模型构建最重要的一个方面是获得可操作的见解,为了实现这一目标,能够从大量的特征中选择出重要的特征子集非常重要。

特征选择的任务本身就可以构成一个全新的研究领域,在这个领域中,大量的努力都是为了设计新颖的算法和方法。从众多可用的特征选择算法中,一些经典的方法是基于模拟退火和遗传算法。除此之外,还有大量基于进化算法(如粒子群优化、蚁群优化等)和随机方法(如蒙特卡洛)的方法

6 机器学习任务

Classification 分类,如垃圾邮件识别(detection, ranking)

一个训练好的分类模型将一组变量作为输入,并预测输出的类标签。下图是由不同颜色和标签表示的三个类。每一个小的彩色球体代表一个数据样本。三类数据样本在二维中的显示,这种可视化图可以通过执行PCA分析并显示前两个主成分(PC)来创建;或者也可以选择两个变量的简单散点图可视化。

性能指标

如何知道训练出来的机器学习模型表现好或坏?就是使用性能评价指标(metrics),一些常见的评估分类性能的指标包括准确率(AC)、灵敏度(SN)、特异性(SP)和马太相关系数(MCC)。

Regression 回归,例如股市预测

最简单的回归模式,可以通过以下简单等式很好地总结:Y = f(X)。其中,Y对应量化输出变量,X指输入变量,f指计算输出值作为输入特征的映射函数(从机器学习模型中得到)。上面的回归例子公式的实质是,如果X已知,就可以推导出Y。一旦Y被计算(预测)出来,一个流行的可视化方式是将实际值与预测值做一个简单的散点图,如下图所示。

对回归模型的性能进行评估,以评估拟合模型可以准确预测输入数据值的程度。评估回归模型性能的常用指标是确定系数(R²)。此外,均方误差(MSE)以及均方根误差(RMSE)也是衡量残差或预测误差的常用指标。

Clustering 聚类,如 iPhoto 按人分组

Rule Extraction 规则提取,如数据挖掘

深度学习算法流程

深度学习实际上是机器学习中的一种范式,所以他们的主要流程是差不多的。深度学习则是优化了数据分析,建模过程的流程也是缩短了,由神经网络统一了原来机器学习中百花齐放的算法。在深度学习正式大规模使用之前呢,机器学习算法流程中要花费很多时间去收集数据,然后对数据进行筛选,尝试各种不同的特征提取机器学习算法,或者结合多种不同的特征对数据进行分类和回归。主要特点是使用多层非线性处理单元进行特征提取和转换。每个连续的图层使用前一层的输出作为输入。

主要流程:1)数据集准备、2)数据预处理、3)数据分割、4)定义神经网络模型,5)训练网络。

深度学习不需要我们自己去提取特征,而是通过神经网络自动对数据进行高维抽象学习,减少了特征工程的构成,在这方面节约了很多时间。但是同时因为引入了更加深、更复杂的网络模型结构,所以调参工作变得更加繁重啦。例如:定义神经网络模型结构、确认损失函数、确定优化器,最后就是反复调整模型参数的过程。

深度学习强调以下几点:

(1)强调了模型结构的重要性:深度学习所使用的深层神经网络(Deep Neural Network,DNN)算法中,隐藏层往往会有多层,是具有多个隐藏层的深层神经网络,而不是传统“浅层神经网络”,这也正是“深度学习”的名称由来。

(2)强调非线性处理:线性函数的特点是具备齐次性和可加性,因此线性函数的叠加仍然是线性函数,如果不采用非线性转换,多层的线性神经网络就会退化成单层的神经网络,最终导致学习能力低下。深度学习引入激活函数,实现对计算结果的非线性转换,避免多层神经网络退化成单层神经网络,极大地提高了学习能力。

(3)特征提取和特征转换:深层神经网络可以自动提取特征,将简单的特征组合成复杂的特征,也就是说,通过逐层特征转换,将样本在原空间的特征转换为更高维度空间的特征,从而使分类或预测更加容易。与人工提取复杂特征的方法相比,利用大数据来学习特征,能够更快速、方便地刻画数据丰富的内在信息。

在传统的机器学习领域,监督学习最大的问题是训练数据标注成本比较高,而无监督学习应用范围有限。利用少量的训练样本和大量无标注数据的半监督学习一直是机器学习的研究重点。当前非常流行的深度学习GAN模型和半监督学习的思路有相通之处,GAN是“生成对抗络”(Generative Adversarial Networks)的简称,包括了一个生成模型G和一个判别模型D,GAN的目标函数是关于D与G的一个零和游戏,也是一个最小-最大化问题。GAN实际上就是生成模型和判别模型之间的一个模仿游戏。生成模型的目的,就是要尽量去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。通过这两个内部模型之间不断的竞争,从而提高两个模型的生成能力和判别能力。

DNN也演变成许多不同的网络拓扑结构,所以有CNN(卷积神经网络),RNN(递归神经网络),LSTM(长期短期记忆),GAN(生成敌对网络),转移学习,注意模型(attention model)所有的这些被统称为深度学习(Deep Learning)。

目前主流的深度学习框架:

Caffe 由Berkeley提出

TensorFlow 由Google提出 (Apache 2.0)

Torch (BSD License), facebook是主要使用者

MXNet 一个相对中立的机器学习框架(Apache 2.0), 被Amazon AWS使用

CNTK2 由Microsoft提出 (MIT License)


参考:https://zhuanlan.zhihu.com/p/455602945

           https://zhuanlan.zhihu.com/p/103373260

你可能感兴趣的:(人工智能&机器学习&深度学习)