03.01 机器学习需要哪些数学基础?

wo人生如戏


最主要的是线性代数和概率论。

线性代数

现在最流行的机器学习模型,神经网络基本是就是一大堆向量、矩阵、张量。从激活函数到损失函数,从反向传播到梯度下降,都是对这些向量、矩阵、张量的操作和运算。

其他“传统”机器学习算法也大量使用线性代数。比如线性回归

听名字就知道和线性代数关系密切了。

而主成分分析,从线性代数的观点看,就是对角化协方差矩阵。

概率

特别是当你读论文或者想深入一点的时候,概率论的知识非常有帮助。

包括边缘概率、链式法则、期望、贝叶斯推理、最大似然、最大后验、自信息、香农熵、KL散度,等等。

其他

神经网络很讲究“可微”,因为可微的模型可以通过梯度下降的方法优化。梯度下降离不开求导。所以多变量微积分也需要。另外,因为机器学习是基于统计的方法,所以统计学的知识也缺不了。不过大部分理工科应该都学过这两块内容,所以这也许不属于需要补充的内容。


论智


对于搞机器学习的同学来说,高等数学、线性代数和概率论与数理统计是最重要的三门的数学基础了。下面我来分别说明这三方面在机器学习中的作用

一. 高等数学

高等数学里面的微积分、牛顿迭代、拉格朗日乘数法、泰勒展开等等知识点在机器学习中都有应用到。例如在逻辑回归模型求梯度时候需要求偏导、优化目标使用的牛顿迭代方法、带约束优化问题的SVM需要用到拉格朗日乘数法等等,还有其它高等数学的知识点在机器学习中或多或少都有体现。

二. 线性代数

推荐系统使用的SVD分解、张量分解、非负矩阵分解NMF,PCA主成分分析中求特征值、矩阵运算。下面我贴一下之前我用矩阵求导解最小二乘问题的公式推导过程,可以体会一下线性代数的重要程度。

最小二乘的解,可以通过梯度下降迭代或牛顿迭代方法求解,但也可以基于矩阵求导来计算,它的计算方式更加简洁高效,不需要大量迭代,只需解一个正规方程组。

总之,线性代数对于机器学习来说比高数还重要。

三. 概率论与数理统计

概率论与数理统计那就更重要了,比如朴素贝叶斯分类和概率图模型用到的贝叶斯公式,高斯过程、最大熵模型,采样方法,NLP领域的大部分算法都与概率论相关,像基于LDA的主题模型、基于CRF的序列标注模型、分词系统等等。

所以要搞机器学习,高等数学、线性代数和概率论与数理统计都是必不可少的数学基础。


薛定谔的小猫猫


我们不从具体层面上谈论这个问题,让我们从表面上来更好地回答这个问题。


需要的基础数学知识有哪些?

回顾大学生涯中学习过的数学知识有:

  1. 高等数学

  2. 线性代数

  3. 概率与统计

这三者没有一个是机器学习所不需要的。高等数学中我们会用到微积分、导数以及其他的一些数学分析方法;线性代数中矩阵计算、变换几乎就是机器学习最为核心的计算;概率与统计学是机器学习用到的另一个强有力的工具。要给这三者排个序的话,我个人认为在机器学习中最重要的数学工具应该是线性代数,因为机器学习中数据的存储方式大多是以向量、以矩阵的形式来存储,计算、分析上也需要矩阵的性质。此外,概率与统计则是另一门重要的与机器学习息息相关的学科,因为机器学习做的大都是接收输入,而预测一个输出,有预测自然就有概率的存在。

数学知识就足够了吗?

很多时候,我们可能并不需要数学知识便可以构建一个机器学习的模型,但是这个模型极有可能是不完善的,可能其准确度是很低的。那是不是说这个时候,只要我们学过线性代数、高等数学、概率论就可以轻松完成参数的调整呢?显然不是的,即便是我们掌握了数学工具,但是还是需要学会如何在机器学习领域使用这些工具,这才是学习机器学习的意义所在。

结论及学习方法

总而言之,在学习机器学习之前,需要首先学习高等数学、线性代数以及概率、统计学。在有了这些基础之后,我们才能够事半功倍地学习有关机器学习的知识。学习机器学习的途径最好是结合书与视频一起学习。视频学习能够加快你的学习进度,并且能够少走弯路,对一些深奥概念能够更好的理解;看书则可以弥补你看视频时缺乏的个人思考,能够进一步巩固所学知识。

这就是我的一些看法,喜欢请关注我吧~


科技者联盟


首先我们要知道,机器学习理论是一个涵盖统计、概率、计算机科学和算法方面的领域,该理论的初衷是以迭代方式从数据中学习,找到可用于构建智能应用程序的隐藏洞察。尽管机器学习和深度学习有巨大的发展潜力,但要深入掌握算法的内部工作原理并获得良好的结果,就必须透彻地了解许多技术的数学原理。搞清楚这些数学原理,可以帮助我们:选择正确的算法、选择参数设置和验证策略、通过理解偏差-方差权衡,识别欠拟合和过拟合、估算正确的置信区间和不确定性。

从上面的图可以看出,普遍认为线性代数、微积分、概率论、统计学是比较重要的四块内容,首先可以告诉大家的是,统计学是核心,微积分告诉我们怎样学习和优化模型,线性代数使得算法能在超大型数据集上运行,概率论帮我们预测某个事件发生的可能性。

机器学习包含了统计学,微积分,线性代数和概率论知识,关系如下:

微积分告诉我们怎样优化

线性代数让算法适用于大型数据集

概率论帮我们预测某个特定输出的可能性

统计学则表明是不是我们的目标




DatawhaleCN


我们知道,机器学习涉及到很多的工具,其中最重要的当属数学工具了,因此必要的数学基础可谓是打开机器学习大门的必备钥匙。机器学习涉及到的数学基础内容包括三个方面,分别是线性代数、概率统计和最优化理论。下面小编就会好好给大家介绍一下机器学习中涉及到的数学基础知道,让大家在日常的机器学习中可以更好地运用数学工具。

首先我们给大家介绍一下线性代数,线性代数起到的一个最主要的作用就是把具体的事物转化成抽象的数学模型。不管我们的世界当中有多么纷繁复杂,我们都可以把它转化成一个向量,或者一个矩阵的形式。这就是线性代数最主要的作用。所以,在线性代数解决表示这个问题的过程中,我们主要包括这样两个部分,一方面是线性空间理论,也就是我们说的向量、矩阵、变换这样一些问题。第二个是矩阵分析。给定一个矩阵,我们可以对它做所谓的SVD分解,也就是做奇异值分解,或者是做其他的一些分析。这样两个部分共同构成了我们机器学习当中所需要的线性代数。

然后我们说一下概率统计,在评价过程中,我们需要使用到概率统计。概率统计包括了两个方面,一方面是数理统计,另外一方面是概率论。一般来说数理统计比较好理解,我们机器学习当中应用的很多模型都是来源于数理统计。像最简单的线性回归,还有逻辑回归,它实际上都是来源于统计学。在具体地给定了目标函数之后,我们在实际地去评价这个目标函数的时候,我们会用到一些概率论。当给定了一个分布,我们要求解这个目标函数的期望值。在平均意义上,这个目标函数能达到什么程度呢?这个时候就需要使用到概率论。所以说在评价这个过程中,我们会主要应用到概率统计的一些知识。

最后我们说一下最优化理论,其实关于优化,就不用说了,我们肯定用到的是最优化理论。在最优化理论当中,主要的研究方向是凸优化。凸优化当然它有些限制,但它的好处也很明显,比如说能够简化这个问题的解。因为在优化当中我们都知道,我们要求的是一个最大值,或者是最小值,但实际当中我们可能会遇到一些局部的极大值,局部的极小值,还有鞍点这样的点。凸优化可以避免这个问题。在凸优化当中,极大值就是最大值,极小值也就是最小值。但在实际当中,尤其是引入了神经网络还有深度学习之后,凸优化的应用范围越来越窄,很多情况下它不再适用,所以这里面我们主要用到的是无约束优化。同时,在神经网络当中应用最广的一个算法,一个优化方法,就是反向传播。


CDA数据分析师


随着大数据的兴起,机器学习越来越受人们的关注,机器学习的理论是众多学科的交叉,在数学方面至少要熟悉掌握线性代数与概率论!

线性代数篇

我个人觉得学习线性代数最重要的不是学习矩阵的运算、解方程,因为这些东西软件都能替代的。最关键在于如何深入的理解子空间、正交、特征值、特征向量以及线性变换。主要在于理解,学好线性代数就在于能否将这些知识联系起来,连贯起来。

概率论篇

又称概率与统计,需要深入的学习贝叶斯统计以及Graphical models,从基本的贝叶斯模型出发深入到统计网络的估计与推断。要了解概率论的知识很轻松,但是想学好实在是太难了。

另外就是关于分析方面的知识,就是大学里所学的微积分以及数学分析,因为这是很多学科领域的基础,要学习机器学习这些知识都是必备的。

没有任何学科是容易学的,因此要想学好机器学习就一定要先打好基础才是。有什么问题都可以在下方留言,我一定认真解答!

您的关注、点赞就是对我最大的鼓励和支持!


读研生活


微积分,线性代数,概率论在机器学习几乎所有算法中不可或缺。如果你数学不是那么扎实,大学学的数学知识都还给老师了(大部分同学都是如此),那么重新温习一下这些重要概念也不错。考虑到理论的数量,我们并不建议大家从大部头开始。尽管一开始可以用它查询具体概念,但是初学者先关注简单的话题比较好。我建议从提纲之类的视频教材入手,其中所有核心概念均被涉及,次要概念可在需要的时候自行查询。这种方法虽然不够系统,但却避免了这样的缺陷:大量晦涩概念使得没有扎实理论背景的人望而却步。


你可以看看菜鸟窝机器学习vip就业课的具体大纲,python基础、数据分析、数学都是从0基础开始,老师都是BAT工业界多年实践经验的,能让你在最短时间入门机器学习,并且拥有持续读paper等的自学能力,不过培训跟相亲一样要看眼缘,我这里有他们公开课的全套资料包括PPT源码,想要的可以私我哦。


不自然的刘海


好多粉丝私信我说想要入门机器学习、人工智能,今天我来给大家说下大致需要的知识。

1、概率与数理统计

机器学习是一门建立在统计基础上的学科,你需要的知识有最大似然估计方法、贝叶斯统计、均方差、直方图、各类分布如高斯分布、正态分布等等。

2、线性代数

线性代数在机器学习中起到一个计算工具的作用,大量矩阵算法被用来训练神经网络和各种机器学习算法模型。线性代数需要掌握矩阵、特征向量和特征值、归一化和正交化,矩阵乘法等等。

3、微积分

在学习机器学习的过程中难免会需要推导各类公式,那么微积分是不可避免的,例如在线性回归算法中需要推导梯度下降算法,这就需要用到导数的知识。


编程镇魔司


本人也是IT行业的从业者,正在研究和学习人工智能的课程,机器学习是人工智能的一部分,同时也可以做数据分析,所以用到数学知识是必然的!

下面这张图详细的介绍了人工智能一些领域所需要的基础知识,希望对你的学习有所帮助!

欢迎关注,欢迎探讨,如有咨询,知无不言



安易之之


1)数学是我们学习其他理工、科技的最重要的基础,科学本身就是用数学框架与模型来描述自然运作的规律。牛顿当年出版的《自然哲学的数学原理》,就是用数学来描述自然哲学(也就是自然运作的规律)其实包括物理在内的其他科学,都是以数学为基础的。

2)我们从实验中得到数据,构造假设(一般是数学模型或者方程),再验证假设。尤其是今天的信息科学包括通信、计算机、人工智能等等,几乎可以认为就是数学,通过编程来实现而已。机器学习如果是一门科学的话,它是关于算法的科学。 它与我们人类科学发现过程是类似的。首先通过我们的感官来得到证据(Evidence),之后构建很多假设(Hypothesis)试图来解释这些证据。能够印证数据或证据的假设就是理论,如果不能解释,就不断的修正参数来调整假设,直到我们找到一个最合适的假设。 我们的科学发现过程如此,机器学习亦是如此。

3)所以最基础知识就是数学,也看到有的回答说需要逻辑。这个也是对的,其实严格上来讲逻辑与数学也不分家。 作为一个普通的人工智能工程师,不是所有的数学都需要。 主要是高等数学(微积分、优化)、线性代数、概率与统计这三门是非常重要而且必要的数学基础。 很难相信不懂什么是高斯分布可以用贝叶斯方法做推理,不懂线性代数可以理解高维空间流形,不懂微积分可以理解反向传播,和不懂优化能理解SVM.

4)关于基础的数学书籍, 我个人比较喜欢的是

S. Ross 的书,包括《First Course in Probability》

https://www.amazon.com/First-Course-Probability-9th/dp/032179477X

《Introduction to Probability Models》

https://zhidao.baidu.com/share/b3054c8544cc41001c01047f338d06c6.html

5)关于专业书籍,可以看我以前的帖子。

https://www.wukong.com/question/6471062370604024078/


分享到:


相關文章: