-->

AI内参_135_128_数据科学家基础能力之机器学习

你好,我是洪亮杰。

今天我和你分享的主题是数据科学家,基础能力之机器学习,呃,想要成为合格的,或者更加进一步成为优秀的人工智能工程师或数据科学家,机器学习的各种基础知识是必不可少的。

然而,机器学习领域浩如烟海,各类教材和入门课程也是层出不穷,特别是机器学习基础需要不少的数学知识。

那么这对于想进入这一领域的工程师而言,无疑是一个比较高的门槛儿。

今天呢我就来和你聊一聊。

如何学习和掌握机器学习基础知识,又如何通过核心的知识脉络,快速掌握更多的机器学习算法和模型?呃,要问机器学习主要能解决什么问题?抛开各式各样的机器学习流派和层出不穷的算法模型,先不谈,机器学习主要解决的是两类问题。

监督学习和无监督学习,掌握积极学习主要就是学习这两类问题,掌握解决这两类问题的基本思路。

那么,什么是解决这两类问题的基本思路呢?基本思路简而言之就是套路哈放在这里的语境。

那就是指一、如何把现实场景中的问题抽象成相应的数学模型。

并知道在这个抽象过程中,数学模型有怎样的假设。

二、如何利用数学工具对相应的数学模型参数进行求解?三、如何根据实际问题提出评估方案,对应用的数学模型进行评估,看是否解决了实际问题。

这三步呢就是我们学习、监督、学习和无监督、学习乃至所有的机器学习算法的核心思路。

机器学习中不同模型、不同算法都是围绕这三步来展开的。

我们不妨把这个思路叫做三步套路。

那什么是监督学习呢?监督学习是指这么一个过程,我们通过外部的响应变量来指导模型学习我们关心的任务并达到我们需要的目的。

这也就是监督学习中监督两字的由来。

也就是说,监督学习的最终目标是使模型可以更准确的对我们所需要的响应变量建模。

比如,我们希望通过一系列特征来预测某个地区的房屋销售价格。

我们预测电影的票房,或者希望预测用户可能购买的商品。

这里的销售价格、电影票房以及可能购买的商品都是监督学习中的响应变量。

那什么是无监督学习呢?通常情况下呀,无监督学习并没有明显的响应变量。

无监督学习的核心往往是希望发现数据内部的潜在结构和规律,为我们进行下一步决断来提供参考。

典型的无监督学习呢,就是希望能够利用数据特征来把数据分组、机器学习语境下叫做聚类。

那么根据不同的应用场景,聚类又有很多变种。

比如认为某一个数据点属于一个类别,或者认为某一个数据点同时属于好几个类别,只是属于每个类别的概率不同等等。

而无监督学习的另外一个作用呢,是为监督学习提供更加有利的特征。

通常情况下呀无监督学习能够挖掘出数据内部的结构。

而这些结构可能会比我们提供的数据特征更能抓住数据的本质联系。

因此,监督学习中往往也需要无监督、学习来进行辅助。

我们简要回顾了机器学习中两大类问题的定义。

在学习这两大类模型和算法的时候,有这么一个技巧,就是要不断的回归到上面提到的基本思路上去就是这个三步套路,反复用到这三个方面来审视当前的模型。

另外啊,我们也可以慢慢的体会到任何新的模型或者算法的诞生。

我们都是基于旧有的模型算法在以上三个方面中的某一个或几个方向有所创新。

我先来说说监督学习的基础。

监督学习的基础是三类模型,一线性模型。

二决策树模型。

三、神经网络模型掌握这三类模型,就掌握了监督学习的主干,利用、监督、学习来解决的问题,占所有机器学习或者人工智能任务的绝大多数。

这里面啊有百分之九十甚至更多的监督学习问题。

一、可以用这三类模型得到比较好的解决。

这三类监督学习模型又可以细分为处理两类问题,一、分类问题。

二、回归问题。

分类问题的核心是如何利用模型来判别一个数据点的类别。

这个类别一般是离散的,比如两类或者多类回归问题的核心则是利用模型来输出一个预测的数值。

而这个数值一般是一个实数,是连续的。

有了这个基本的认识以后,我们利用前面的思路来看一下如何梳理监督学习的思路。

这里啊用线性模型的回归问题来做例子,但整个思路可以推广到所有的监督学习模型。

线性回归模型是所有回归模型中最简单也是最核心的一个模型。

我们依次来看上面所讲的三步套路。

首先,第一步我们需要回答的问题是,线性回归对数学场景是如何抽象的。

顾名思义,线性回归认为,现实场景中的响应变量和数据特征之间存在线性关系。

而线性回归的数学假设有两个部分,一、响应变量的预测值是数据特征的线性变换,这里的参数是一组系数,而预测值是系数和数据特征的线性组合。

二、响应变量的预测值和真实值之间有一个误差,而这个误差服从一个正态分布分布的期望值是零,方差是西格玛的平方。

有了这样的假设以后,第二步就要看线性回归模型的参数是如何求解的。

这里从历史上就衍生出了很多方法,比如在教科书中一般会介绍线性回归的解析解。

那么线性回归的解析解虽然简单优美,但是在现实计算中一般不直接采用,因为啊需要对矩阵进行逆运算,而矩阵求逆运算量很大。

解析解主要用于各种理论分析当中,线性回归的参数还可以用数值计算的方法,比如梯度下降的方法求得近似结果。

然而梯度下降需要对所有的数据点进行扫描。

当数据量很多的时候,梯度下降会变得很慢,于是随机梯度下降,算法就应运而生,随机梯度下降,并不需要对所有的数据点扫描后才对参数进行更新。

而可以对一部分数据有时甚至是一个数据点进行更新。

从这里啊我们可以看到,对于同一个模型而言,可以用不同的算法来求解模型的参数,这是机器学习的一个核心特点。

最后第三步,我们来看如何评估线性回归模型。

由于线性回归是对问题的响应变量进行了一个实数预测。

那么最简单的评估方法就是看这个预测值和真实值之间的绝对误差。

如果对于每个数据点,我们都可以计算出这么一个误差。

那么对于所有的数据点而言,我们就可以计算一个平均误差。

上述对于线性回归的讨论,可以扩展到监督学习的三类基本模型。

这样你就可以很快掌握这些模型的特点和这些模型算法之间的联系。

接下来我来讲无监督学习的基础。

现实中,绝大多数的应用场景并不需要无监督学习。

然而,无监督学习中,很多有价值的思想非常值得初学者掌握。

另外,无监督学习特别是深度学习支持下的无监督学习,是目前机器学习乃至深度学习的前沿研究方向。

所以从长远来看,了解无监督学习的非常必要的。

我们前面说到无监督学习的主要目的就是挖掘出数据内在的联系。

这里的根本问题是不同的,无监督学习方法对于数据内部的结构有不同的假设。

首此,无监督学习不同模型之间常常有很大的差别。

在众多无监督学习模型中,聚类模型无疑是重要的代表。

了解和熟悉聚类模型有助于我们了解数据的一些基本组息。

聚类模有也有很多种类。

这里我们就用最常见的非常重要的k均值算法,来看看如何通过前面讲过的三步套路去掌握起核心思路。

首先,无均值算法,认为数据由k个类别组成,每个类别内部的数据相距比较近,而距离所有其他类别中的数据都相对比较遥远。

那么这里面的数学假设需要定义数据到一个类别的距离,以及距离函数本身。

在k均值算法中,数据到一个类别的结构被定义为到这个类别的平均点的距离。

那么这也是k均值名字的由来。

而距离函数则采用了欧几里德距离来衡量两个数据点之间的远近,直接求解k均值的目标函数是一个NP难的问题,于是大多数现有的方法都用了迭代的贪心算法来求解。

一直以来,对于聚类问题,对无监督学习任务的评估,都是机器学习的一个难点。

无监督学习,没有一个真正的目标,或者是我们之前之间的响应变量。

因此无法真正客观的衡量模型或者算法的好坏。

对于k均值算法而言,比较简单的衡量指标就是看所有类别内部的数据点的平均距离和类别,两两之间的所有点的平均距离的大小。

如果聚类成功,则类别内部的数据点会相距较近,而类别两两之间的所有点的平均距离则比较远。

以上呢我们通过三步套路的三个方面,讨论了k均值算法的核心思路。

那么这种讨论方法也适用所有的聚类模型和算法。

当你可以熟练使用我今天介绍的三步套路,去分析更多监督学习和无监督学习的模型算法以后,那么对于基础的内容,也就是教科书上经常讲到的内容,你就可以去看这些内容究竟是在讲解这三个方面的哪个方面了。

对于绝大多数模型来说,第一部型往往是最重要的。

也就是说,这个模型究竟和现实问题的联系是什么?而第三部分也就是模型的求解,取决于模型本身的复杂度和成熟度。

现在很多模型啊往往都有现成的软件包提供求解过程。

而第三部分模型的评估则在现实生产中至关重要。

牢牢的把握这三个方面来对机器学习模型算法进行讨论,是成长为成熟数据科学家必不可少的过程。

今天我为你讲了掌握机器学习基础知识的一些核心思路,一起来回顾一下要点。

第一,机器学习主要的任务有监督、学习和无监督学习。

这两种机器学习任务的很多模型和算法,都可以用一个三步套路的思路来进行分析。

第二,我们用线性回归作为例子,探讨了如何用这个三步套路来分析监督学习的模型和算法。

第三,我们用k均值聚类算法作为例子来探讨了如何用三步套路来分析无监督学习的模型和算法。

最后给你留一个思考题。

呃,在现实场景中,当你发现一个模型并没有很好的解决你的问题时,那么从这个三不套路的角度来看,究竟哪个方面最容易出问题呢?欢迎你在评论区留言讨论。