机器学习必备的数学基础有哪些?

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

机器学习必备的数学基础有哪些?大家好,我是王天一。我是北京邮电大学博士毕业,目前在贵州大学大数据信息工程学院任教,同时也是咱们极客时间《人工智能基础课》这个专栏的作者。今天我们分享的内容,主要是关于机器学习中的基础数学,包括以下四个部分。第一,我们关注的是机器学习当中会用到哪些基础数学。第二,这些数学在机器学习,或者说在人工智能这个大环境下都能起到一些什么样的作用。第三,有了这个学科,有了数学,分析了它的作用之后,我们需要把它掌握到一个什么样的程度。最后,简单地介绍一下,如何在短时间内,能尽快高效率地掌握。1机器学习会用到哪些数学基础第一部分,我们先来看一看机器学习需要哪些数学的基础。我们可以先引用一个专家的定义。这个专家是来自美国华盛顿大学的佩罗·多明戈斯。这也是人工智能领域的一个老兵。他对于机器学习给出了这样一个定义,机器学习是由三个部分组成,分别是表示、评价,还有优化。这样的三个步骤,实际上也就对应着在机器学习当中所需要的数学。机器学习三部曲表示在表示这一步当中,我们需要建立起数据,还有实际问题的抽象模型。所以,这里面就包括了两个方面,一方面我们要对要解决的这个实际的问题进行抽象化处理。比方说我们要设计一个算法,判断一个邮件它到底是不是一封垃圾邮件,那么得到的结果无外乎两种,要么是,要么不是。这样一个问题如果对它做抽象,实际上就是个二分分类问题。是,我们可以把它定义成0,不是,可以把它定义成1。所以,这个问题最终要解决的是什么呢?输出一个0或者1的结果。当然把0和1的意义调过来也可以,用1代表是垃圾邮件,0代表不是,也是可以的。所以,在表示的过程当中,我们要解决的问题就是把我们面临的真实世界当中的一些物理问题给它抽象化,抽象成一个数学问题。抽象出来这个数学问题之后,我们要进一步去解决它,还要对这个数据进行表示。对于问题抽象完了以后,我们还要对数据进行抽象。在判定这个邮件到底是不是垃圾邮件的时候,我们要怎么判断呢?要根据它的特征进行判断,看一看这个邮件里的关健字是否有关于推销的,或者关于产品的一些关键字。这些特征,这些关键字,我们就要把它表示成一个特征,表示成一个向量,或者表示成其他的形式。表示成向量也好,表示成其他形式也好,都是对这个数据做出了抽象。在表示阶段,我们需要建立的是数据,还有问题的抽象模型。把这个模型建立出来,然后去寻找合理的算法。K-近邻算法。在机器学习当中,我们常见的有K-近邻算法。K-近邻算法在我们的专栏中没有提到,因为它太简单了。它实际上就是,找到一个样本点和这个样本点最近的几个邻居,最近的这K个邻居。按照少数服从多数的原则,对它进行分类,这就是K-近邻算法。回归模型。除此之外,还有线性回归,这样的统计学习方法。我建立一个线性回归模型,当然,对二分类我们可以建立逻辑回归模型。决策树。还有像决策树这样的方法。决策树它不依赖于数据,它完全是自顶向下的一个设计。线性回归也好,逻辑回归也好,它是从数据反过来去推导模型,而决策树直接去用模型判定数据,两个方向不太一样。SVM支持向量机。最后,还有SVM支持向量机这样的纯数学方法。所以说表示的部分,我们需要把问题和数据进行抽象,这个时候我们就要用到抽象的工具。评价给定了模型之后,我们如何评价这个模型的好坏呢?这个时候就需要设定一个目标函数,来评价这个模型的性质。设定目标函数目标函数的选取也可以有多种形式。像对于我们说到的垃圾邮件这种问题,我们可以定义一个错误率。比方说一个邮件它原本不是垃圾邮件,但是我这个算法误判成了垃圾邮件,这就是一个错例。所以呢,错误率在分类问题当中是个常用的指标,或者说常用的目标函数。最小均方误差和最大后验概率那么在回归当中呢,我们会使用最小均方误差这样一个常用目标函数,尤其是在线性回归里。除此之外呢,还有最大后验概率,一些其他的指标。优化有了目标函数以后,我们要求解这个目标函数在模型之下的一个最优解,这个模型能够获取到的最小错误率,或者最小均方误差是多少呢?我们要求出一个特定的值。没有这个值的话,你如何评价不同的模型它到底是好是坏呢?所以说优化这个步骤它的作用是求解目标函数在模型之下的一个最优解,看看这个模型在解决这个问题的时候,最好能达到什么样的程度。总结来说,多明戈斯教授总结到的机器学习的三个步骤,包括了表示、评价、优化这样三个步骤,在这三个步骤当中我们会用到不同的数学公式来分别解决这三个问题。三种数学工具线性代数在这三个步骤中,应用了三种不同的工具。在表示这个步骤当中,我们主要使用的工具是什么呢?就是线性代数。线性代数呢,我们在这个专栏里面也提到,它起到的一个最主要的作用就是把具体的事物转化成抽象的数学模型。不管你的世界当中有多么纷繁复杂,我们都可以把它转化成一个向量,或者一个矩阵的形式。这就是线性代数最主要的作用。所以,在线性代数解决表示这个问题的过程中,我们主要包括这样两个部分,一方面是线性空间理论,也就是我们说的向量、矩阵、变换这样一些问题。第二个是矩阵分析。给定一个矩阵,我们可以对它做所谓的SVD(singularvaluedecomposition)分解,也就是做奇异值分解,或者是做其他的一些分析。这样两个部分共同构成了我们机器学习当中所需要的线性代数,当然了,这两者也是各有侧重。线性空间的话,我们主要应用在一些解决理论问题当中,矩阵分析在理论当中有使用,在实践当中也有一些使用。概率统计我们说到,线性代数起作用是在表示的过程当中。在评价过程中,我们需要使用到概率统计。概率统计包括了两个方面,一方面是数理统计,另外一方面是概率论。数理统计好理解,我们机器学习当中应用的很多模型都是来源于数理统计。比方说最简单的线性回归,还有逻辑回归,它实际上都是来源于统计学。在具体地给定了目标函数之后,我们在实际地去评价这个目标函数的时候,我们会用到一些概率论。比方说给定了一个分布,我要求解这个目标函数的期望值。在平均意义上,这个目标函数能达到什么程度呢?这个时候就需要使用到概率论。所以说在评价这个过程中,我们会主要应用到概率统计的一些知识。实际上对于数理统计来说,我们在评价模型的时候,不只关注的是一个目标函数,我们可能还关注一些它的统计特性。比如说它的置信度,或者是其他的一些指标。你这个模型建立起来,它的可信性程度到底有多大,这些在早期的机器学习算法当中也是需要考虑的。当然随着神经网络,随着深度学习的兴起,这部分内容实际上渐渐地衰落,或者渐渐地被忽略。你在神经网络当中可能只需要达到一个这个好的目标函数,好的指标就行,至于说它的置信度,这些我们不去考虑。所以说,这也是深度学习不太受学数学,或者说学统计学的人待见的一个原因。因为统计学强调什么呢?强调可解释性,你这个模型能够达到什么样的指标,我们能把它清清楚楚地讲明白,为什么能够达到这样的指标,它的原理在哪?它背后的根据在哪?我给定一个分布,假如说高斯分布,那么再给定一个模型,我就可以通过严谨而简洁的这个数学推导,把这个结果以公式的形式给它呈现出来,这个看起来就很高大上,或者说很清楚。但神经网络和深度学习,现在还达不到这样可解释的程度。所以说现在也有人批评,说深度学习是炼金术,主要的原因在这里。我只能够通过调参数调出一个比较好的结果,但是到底这个结果为什么会出现?哪些因素会影响到它?可能还不是那么清晰。所以呢,关于概率统计,我们主要应用在评价这个过程中。最优化理论关于优化,就不用说了,我们肯定用到的是最优化理论。在最优化理论当中,主要的研究方向是凸优化。凸优化当然它有些限制,但它的好处是什么呢?能够简化这个问题的解。因为在优化当中我们都知道,我们要求的是一个最大值,或者是最小值,但实际当中我们可能会遇到一些局部的极大值,局部的极小值,还有鞍点这样的点。凸优化可以避免这个问题。在凸优化当中,极大值就是最大值,极小值也就是最小值。但在实际当中,尤其是引入了神经网络还有深度学习之后,凸优化的应用范围越来越窄,很多情况下它不再适用,所以这里面我们主要用到的是无约束优化。我在整个范围之内,我对参数,对输入并没有限定。在整个的输入范围内去求解,不设置额外的约束条件。同时,在神经网络当中应用最广的一个算法,一个优化方法,就是反向传播。三种数学工具和三个步骤并非一一对应我们今天谈论这个机器学习当中,用到的基础数学都包括哪些呢?包括这三种,线性代数,概率统计,还有最优化理论。这是我们在机器学习当中用到的最基础的一些数学工具。如果大概做一个分类,分别对应到我们机器学习当中,表示、评价,还有优化这样三个步骤。当然,这种应用它也并不是说一一对应的关系。在表示当中我只用到线性代数,概率统计一点儿都不涉及,同样地,我在评价的时候,线性代数也不涉及,不是这样,都会有一个交叉的过程,但是在每个步骤当中应用到的主要工具还是有所区别。高等数学是数学工具的基础当然,在数学工具当中,我们并没有涉及到高等数学,高等数学我们就把它当作一个基础,一个基础中的基础。不光是人工智能,或者说机器学习,只要有数学参与的地方,我们都需要有高等数学的这个基础。那么具体到机器学习当中,我们在高等数学这一块儿用到的比较多的,可能包括求导,微分,这样的一些内容。当然还有这个积分,我们在求解这个目标函数的期望值的时候可能也会遇到。所以到这呢,我们就说,我们介绍了机器学习当中用到了哪些数学。主要就是这三块,线性代数,概率统计,还有最优化,那么任何复杂的算法实际上都是由这三者的结合叠加所构造出来的,那么这三者在机器学习当中他们起到的作用分别是什么呢?我们可以具体地来看一看。2三种数学工具在机器学习中的作用线性代数将具体事物抽象为数学对象对于线性代数来说,我们可以对它做一个简单的定义。所谓线性代数是什么?就是数量和结构的一个组合,也就是说,线性代数等于数量加上结构。本身数量呢,它是一个单独的数。对于单个的数我们没有结构可言,对于单个的对象没有结构可言。但是当我们把一组数,或者一堆数排列到一块儿的时候,这个排列不是随机的排列,而是有一定的顺序进行排列的时候,这个时候,数目之间的顺序或者数量之间的顺序就形成了一种结构,这个结构就可以蕴含一定的信息,能够供我们去使用。除了顺序之外,结构还有另外一层含义。我可以对数量定义一些运算。在线性空间里面我们提到,基本的运算包括什么呢?包括加法,包括数乘,这样一些运算。有了运算之后,我们就可以对不同的对象,单个的数目放在一块儿,按照一定的顺序排列在一起,我们可以把它组成一个向量,组成这样一个对象。那么有了加法,数乘这样一些运算之后,你就可以对这个对象再来进行一些操作。这样的话,就实现了把具体事物给它抽象成数学对象,这样的一个过程。这就是线性代数最主要的一个作用。当然不光是在机器学习里面,在其他应用到线性代数的场合也是一样:把具体的事物抽象成为数学对象。提升大规模运算的效率当然除此之外呢,它还有另外一个优势,线性代数还有另外一个作用,就是能够提升大规模运算的效率。因为在现代的机器学习当中,我们要处理的数据都是海量的数据,数据的数量是呈指数形式的增长。我们要处理的数据越来越多,如果只是简单地说,用最传统的方法,用一个一个的for循环去处理高维的矩阵,它的效率肯定是相当低下。有了线性代数之后,我们可以把矩阵的运算引入到机器学习的算法当中,通过一些额外的库,或者一些额外的软件包,提升大规模运算的效率。这里面最直观的一个例子就是MATLAB软件。MATLAB软件本身名字叫矩阵实验室。它的特点,或者说它的卖点就在于,对矩阵,或者说对向量它操作的高效率。所以说呢,线性代数,我们把它总结一下,它就等于数量和结构的组合。它的作用,一方面可以把具体的事物抽象成数学对象,另外一方面,可以提升大规模运算的效率。概率统计利用数据学习模型如果我们说,线性代数可以看成是数量还有结构的组合的话,那么概率统计就可以看成是模型还有数据的组合。那么模型和数据组合在一块,实际上是双向的处理。我们机器学习有学习的阶段,我们要利用这个数据去训练这个模型,这个阶段,我们是用数据去学习这个模型。在模型里面,我们就可以去选择。有那么多的模型,像我们刚才说到的,有K-近

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功