机器学习综述【快速了解 通俗易懂】

941 阅读14分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

@[toc]

参考:非常简单易懂的机器学习入门

参考:各种机器学习算法的概述以及举例

引言

谈起人工智能,诸多词汇时刻萦绕在我们耳边:人工智能(Artificial Intelligence)、机器学习(Machine Learning)、深度学习(Deep Learning)。不少人对这些高频词汇的含义及其背后的关系总是似懂非懂、一知半解。

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

机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。下图形象的说明了三者的包含关系:

img

为何深度学习作为人工智能的一个子集的子集却如此人尽皆知?一个非常重要的原因就是深度学习在某种意义上完全颠覆了其他的人工智能算法,并且已经取得了巨大的成功。

参考回答

机器学习与大数据

机器学习与大数据密不可分,通俗点讲,机器学习(人工智能)就是被大数据喂出来的。人工智能一系列的算法(可以理解为数学模型),在海量的大数据中不断学习,自我优化,逐渐提高正确率,最终达到理想的效果。

image-20210330175635988

机器学习概述

在进行特定编程的情况下,给予计算机学习能力的领域。

—Arthur Samuel

机器学习的核心是使用算法解析数据,从中学习,然后对某件事情做出决定或预测。这与传统的软件开发的区别在于,前者是显式地编写程序来执行某些任务,后者是用一个算法和数据让计算机自己学习,最终来完成任务。 💡比方说,我们想让计算机来判断一个动物图片是猫还是狗,机器学习就是提供给计算机一大堆猫和狗的照片,让计算机先来学习,逐步提高正确率。而传统的软件开发是无法实现这种任务的,难不成你要针对每一个像素点写上亿次的if else来判断所有情况?

⭐️机器学习分类

主要有三种类型的机器学习:监督学习、非监督学习和强化学习,除此之外还有一个比较特殊的子集:深度学习与神经网络(还有一些诸如强监督学习,弱监督学习,暂不讨论)。所有这些都有其特定的优点和缺点,我们下面来简单介绍每种算法,并给出一个生活中常见的应用

image-20210330204816473

监督学习(Supervised Learning)

监督学习给定一组带有标记的数据集。计算机可以使用特定的模式来识别每种标记类型的新样本。监督学习的两种主要类型是分类和回归。 不管是分类还是回归,数据都带有一定的标记(也称特征)

分类(Classification)

在分类算法中,计算机被训练将一组数据划分为特定的类

例如:电子邮箱垃圾邮件过滤器。过滤器分析你以前标记为垃圾邮件的电子邮件,并将它们与新邮件进行比较。如果它们匹配一定的百分比,这些新邮件将被标记为垃圾邮件。

image-20210330205544880

回归(Regression)

回归这个词的意思是,试着推测出这一系列连续值属性。即用一条连续的线来拟合一系列离散的数据,从而达到预测其他值的效果。

例如:预测天气,机器使用先前的标记好的数据来预测未来,包括气象事件的历史数据(平均气温、湿度和降水量等),你的手机天气应用程序可以据此对未来的一定时间内的天气进行预测。

image-20210330205100162

无监督学习(Unsupervised Learning)

在无监督学习中,数据是无标签的。由于大多数真实世界的数据都没有标签,所以这些算法可能更加实用。无监督学习分为聚类和降维

image-20210330211436757

💡简单来说,有监督学习的数据是有明确的标签或特征的,能够明确告诉你有哪几类或值是多少,比如到底是不是垃圾邮件,人肯定一眼就能分辨出来,价格预测也有明确的价格作为特征。但在无监督学习中,我只能告诉你这有一堆数据,他们有哪些类型,有什么不同的值,我什么都不知道,一切都由你自己来找

聚类(Clustering)

聚类可以根据属性或行为等将数据对象进行分成若干簇。这与分类不同,因为这些组不是你提供的,而是由聚类算法来划分的。

例如:今日头条在做一件事的就是搜索非常多的文章,自动地把它们聚类到一起。这些新闻事件全是同一主题的并显示到一起。

常见的聚类算法包括k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

Clustering Algorithms | Clustering in Machine Learning

降维(Dimensionality Reduction)

降维通过找到共同点来减少数据集的特征,可以把任何维度降到任何维度,但降维的算法只负责减少维数, 新产生的特征的意义就只能由自己去发现了(共同点的含义)。

例如:我们通过降维可以实现数据压缩,减少数据的占用空间,并且加快算法的速度。还可以实现大数据的可视化,假使我们有很多国家的数据,每一个特征向量都有50个特征(如 GDP,人均 GDP,平均寿命等)。如果要将这个50维的数据可视化是不可能的。使用降维的方法将其降至2维,我们便实现了大数据可视化了,但这二维的特征有什么意义则需要自己来定义。

image-20210401165053812

强化学习(Reinforcement Learning)

除了试图直接去建立一个可以模拟成人大脑的程序之外, 为什么不试图建立一个可以模拟小孩大脑的程序呢?如果它接受适当的教育, 就可能成长为成人的大脑. — Alan Turing

强化学习是指一类在与环境交互中不断学习的问题以及解决这类问题的方法。强化学习和监督学习的不同在于,强化学习问题不需要给出 “正确” 策略作为监督信息,只需要给出策略的(延迟)回报,并通过调整策略来取得最大化的期望回报。 例如在下棋中,我不需要向计算机给出每一步走的对不对,只需要告诉最终你有没有赢就可以了

强化学习的经典应用是玩游戏。与监督和非监督学习不同,强化学习不涉及提供“正确的”答案或输出。相反,它只关注性能。这反映了人类是如何根据积极和消极的结果学习的。很快就学会了不要重复这一动作。同样的道理,一台下棋的电脑可以学会不把它的国王移到对手的棋子可以进入的空间。然后,国际象棋的这一基本教训就可以被扩展和推断出来,直到机器能够打败人类顶级玩家为止。

深度学习(Deep Learning)与神经网络(Neural Network)

强烈推荐床长的人工智能教程

半监督学习

在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。 应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。 如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。

机器学习算法使用的步骤

image-20210330203050053

其中第三步最为关键:为数据和情况选择正确的算法。 容易忽略的是第五步——可视化的重要性,即便你的算法再优秀,但如果只有你自己能够理解,不能输出成一个清晰明了易操作的可视化,那又有谁会去用呢?

⭐️最经典的机器学习算法

根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类

以下是一些最常见、最经典的机器学习算法分类:

回归算法

回归算法可能是最流行的机器学习算法,因为它一直是最快速简单的机器学习算法之一。回归算法分为线性回归、多元线性回归和逻辑回归。 线性回归算法是基于连续变量预测特定结果的监督学习算法,通过拟合最佳直线来建立自变量和因变量的关系。 逻辑回归是一种分类算法,专门用来预测离散值,通过将数据拟合进一个逻辑函数来预估一个事件出现的概率。对于0~1之间的概率值,当概率大于0.5预测为1,小于0.5预测为0。

640?wx_fmt=png img

参考文档与详细讲解

决策树

根据一些特征(feature)进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。

决策树算法看起来很弱很简单,但这其实恰好是其有趣的地方。决策树将一组“弱”学习器组合在一起,形成了一种强算法。 每个分支都是简单的if-else判断,但通过树形结构和机器的自我学习分类,的确可以在较优的时间内做到很准确的预测。 在下面的例子中,我们可以发现每个节点的特征(例如眼睛是蓝的或者不是蓝色的),都不足以单独识别动物。然而,当我们把所有这些观察结合在一起时,我们就能形成一个更完整的画面,并做出更准确的预测。

07081047_vooL.png

常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)。

随机森林算法

随机森林算法是一种非常流行的决策树算法。在该算法中,弱学习器是随机选择的,而不是像普通决策树算法中那样选择最佳分割点,这往往可以获得一个强预测器。 因此,针对每个数据样本创建的模型将会与其他方式得到的有所不同,不过虽然方法独特且不同,它们仍然是准确的。结合它们的预测可以更好的估计真实的输出值。 Bagging + 决策树 = 随机森林

贝叶斯算法

贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。

常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE)以及Bayesian Belief Network(BBN)。

贝叶斯公式通俗理解

朴素贝叶斯算法

最流行的贝叶斯算法是朴素贝叶斯,它经常用于文本分析。 举个在 NLP 的应例子用:给一段文字,返回情感分类,这段文字的态度是积极的(positive),还是消极的(negative):

图解十大经典的机器学习算法

为了解决这个问题,可以只看其中的一些单词:

图解十大经典的机器学习算法

这段文字,将仅由一些单词和它们的计数代表:

图解十大经典的机器学习算法

原始问题是:给你一句话,它属于哪一类 ?通过bayes rules变成一个比较简单容易求得的问题:这一类中这句话出现的概率是多少,当然,别忘了公式里的另外两个概率。例子:单词“love”在positive的情况下出现的概率是0.1,在negative的情况下出现的概率是0.001。

朴素贝叶斯算法详细概述

基于实例的算法

基于实例的算法使用提供数据的特定实例来预测结果。常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。

常见的算法包括k-最近邻域算法(k-Nearest Neighbor, KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map, SOM)。

k-最近邻域算法(KNN)

最著名的基于实例的算法是k-最近邻算法,也称为KNN。KNN用于分类比较数据点的距离,并将每个点分配给它最接近的组。 简单来说,给一个新的数据时,离它最近的 k 个点中,哪个类别多,这个数据就属于哪一类。

举例来说,要区分“猫”和“狗”,通过“claws”和“sound”两个feature来判断的话,圆形和三角形是已知分类的了,那么这个“star”代表的是哪一类呢?

图解十大经典的机器学习算法

k=3时,即选最近的三个点,那么圆形多一些,所以这个star就是属于猫。

图解十大经典的机器学习算法

聚类算法

前面提到过,聚类算法的重点是发现元素之间的共性并对它们进行相应的分组

常见的聚类算法包括k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

神经网络(Neural Networks, NN)

神经网络适合一个输入(input)可能落入至少两个类别里。NN由若干层神经元,和它们之间的联系组成。 第一层是input层,最后一层是output层,中间是数量最多的隐藏层(hidden)。在hidden层和output层都有自己的分类器(classifier)。 和决策树有点类似,只不过决策树是树状结构,神经网络是图形结构,顾名思义,其实非常类似我们人的大脑。

图解十大经典的机器学习算法

input输入到网络中,被激活,计算的分数被传递到下一层,激活后面的神经层,最后output层的节点上的分数代表属于各类的分数,下图例子得到分类结果为class 1;同样的input被传输到不同的节点上,之所以会得到不同的结果是因为各自节点有不同的权重(weights)和偏好(bias),这也就是正向传播(forward propagation)。 每个节点(分类器)按照自己的简单逻辑进行计算和传递,就类似我们大脑里的神经元一样,数量巨大的复杂节点构成了一个神经网络。

图解十大经典的机器学习算法

机器学习算法关系图

机器学习算法没有最好的,只有最合适的。下面这张图是我目前为止见过的最好的机器学习算法关系以及分类图。点击这里,可以点击该图片中任意一个节点查看详细介绍。

Move mouse over image

机器学习所需算法知识

注意所有对数学恐惧的读者:我很遗憾地告诉你,要完全理解大多数机器学习算法,就需要对一些关键的数学概念有一个基本的理解。但不要害怕!所需的概念很简单,并且借鉴了你可能已经上过的课程。机器学习使用线性代数、微积分、概率和统计。

640?wx_fmt=png