机器学习需要哪些数学知识?

人工智能 跟开发 APP 和后台服务器相比,人工智能需要大量的数学知识 需要哪些数学知识??? 微积分 线性代数 概率论 最优化 关于书籍,特别说明一下,除非你是数学知识遗忘的特别厉害了,或者是本科的时候没有学 过相关数学知识,否则不建议大家抱着书去学习,会浪费大家大量的精力和时间

 

微积分

导数与求导公式 一阶导数与函数的单调性 一元函数极值判定法则 高阶导数 二阶导数与函数的凹凸性 一元导数泰勒展开

在机器学习中,微积分主要用到了微分部分,作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。在机器学习里 会用到微积分中的以下知识点:

? 导数和偏导数的定义与计算方法

? 梯度向量的定义

? 极值定理,可导函数在极值点处导数或梯度必须为 0

? 雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到

? Hessian 矩阵,这是 2 阶导数对多元函数的推广,与函数的极值有密切的联系

? 凸函数的定义与判断方法 ? 泰勒展开公式

? 拉格朗日乘数法,用于求解带等式约束的极值问题

其中最核心的是记住多元函数的泰勒展开公式,根据它我们可以推导出机器学习中 常用的梯度下降法,牛顿法,拟牛顿法等一系列最优化方法,泰勒公式: 微积分和线性代数,微积分中会用到大量线性代数的知识,线性代数中也会用到微积分的知识

线性代数

向量及其运算 矩阵及其运算 张量 行列式 二次型 特征值与特征向量

相比之下,线性代数用的更多。在机器学习的几乎所有地方都有使用,具体用到的 知识点有:

? 向量和它的各种运算,包括加法,减法,数乘,转置,内积

? 向量和矩阵的范数,L1 范数和 L2 范数

? 矩阵和它的各种运算,包括加法,减法,乘法,数乘

? 逆矩阵的定义与性质

? 行列式的定义与计算方法

? 二次型的定义

? 矩阵的正定性

? 矩阵的特征值与特征向量

? 矩阵的奇异值分解

? 线性方程组的数值解法,尤其是共轭梯度法

机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入 的数据都是特征向量,深度学习算法在处理图像时输入的 2 维的矩阵或者 3 维的张 量。掌握这些知识会使你游刃有余。

多元函数微分学 高阶偏导数 雅克比矩阵 Hessian 矩阵 多元函数泰勒展开 多元函数极值判定法则回到线性代数 奇异值分解 SVD 常用的矩阵和向量求导公式

概率论

随机事件与概率 条件概率和贝叶斯公式 随机变量 随机变量的期望和方差 常用概率分布(正太分布、均匀分布、伯努利二项分布) 随机向量(联合概率密度函数等) 协方差与协方差矩阵 最大似然估计

如果把机器学习所处理的样本数据看作随机变量/向量,我们就可以用概率论的观点 对问题进行建模,这代表了机器学习中很大一类方法。在机器学习里用到的概率论 知识点有:

? 随机事件的概念,概率的定义与计算方法

? 随机变量与概率分布,尤其是连续型随机变量的概率密度函数和分布函数

? 条件概率与贝叶斯公式

? 常用的概率分布,包括正态分布,伯努利二项分布,均匀分布

? 随机变量的均值与方差,协方差

? 随机变量的独立性 ? 最大似然估计

最优化

最后要说的是最优化,因为几乎所有机器学习算法归根到底都是在求解最优化问题。 求解最优化问题的指导思想是在极值点出函数的导数/梯度必须为 0。因此你必须理 解梯度下降法,牛顿法这两种常用的算法,它们的迭代公式都可以从泰勒展开公式 中得到。如果能知道坐标下降法、拟牛顿法就更好了。

凸优化是机器学习中经常会提及的一个概念,这是一类特殊的优化问题,它的优化 变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的所有局部最优 解就是全局最优解,因此求解时不会陷入局部最优解。如果一个问题被证明为是凸 优化问题,基本上已经宣告此问题得到了解决。在机器学习中,线性回归、岭回归、 支持向量机、logistic 回归等很多算法求解的都是凸优化问题。

拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为 原问题,这两个问题是等价的。通过这一步变换,将带约束条件的问题转换成不带 约束条件的问题。通过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原 问题转换为对偶问题,如果满足某种条件,原问题和对偶问题是等价的。这种方法 的意义在于可以将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。

KKT 条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式 约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。 如果你没有学过最优化方法这门课也不用担心,这些方法根据微积分和线性代数的 基础知识可以很容易推导出来。如果需要系统的学习这方面的知识,可以阅读《凸 优化》,《非线性规划》两本经典教材。

机器学习需要哪些数学知识?

 

 

 出现频率最高的是优化方法,拉格朗日乘数法,梯度下降法,牛顿法,凸优化

第二类概率论知识,随机变量,贝叶斯公式,随机变量独立性,正太分布,最大似然估计

第三类线性代数知识,几乎所有都会涉及到向量、矩阵、张量的计算,包括特征值和特征向 量,很多算法都会最终变成求解特征值和特征向量问题。 微积分的知识比如链式法则。

除了主体这些数学知识,会用到微分几何中的流行、测地线、测地距离的概念。

支持向量机会用到 Mercer 条件、核函数,涉及到泛函分析和识别函数的范畴。 再比如说人工神经网络的证明,万能逼近定理会用到泛函分析和识别函数的内容,用来证明 这样一个函数可以来逼近任何形式的函数。

离散数学的知识比如图论、树在机器学习里面也会用到,但是用的都是比较简单的。

所以说我们只有掌握好微积分、线性代数、概率论还有一些优化的算法,我们就能看懂所有的机器学习算法了。像刚才说的一些相对高深的微分几何、泛函分析和识别函数,它们主要 用在一些基础理论证明上面,说白了就是证明一些算法的合理性,你即使看不懂这些证明, 它也不影响你理解这些算法的推导、思想和使用。

 

机器学习需要哪些数学知识?

上一篇:pcl之filtering滤波


下一篇:get、post请求区别