作者:SIGAI人工智能平台,出处:SIGAI人工智能平台,公众号:SIGAI

-----------------------------------------

很多同学谈数学色变,但数学是机器学习绕不开的基础知识。今天我们来谈谈这个话题:学好机器学习究竟需要哪些数学知识?

先看某乎上的回答:

随机过程,实分析。机器学习往深里做肯定需要用这种,高级的数学语言去对问题进行描述。我本人对随机和实分析,其实目前也还只是略懂,很难说,真正的彻底掌握这两门十分强大的数学工具。

我本科没好好学泛函,到学到一些ML的方法比如kernel相关的方法的时候就凸显出来对泛函不熟,对函数空间理解不够的话会比较吃力。但重要性上比如前面几个方面。

(以上为原文引用,错别字没有校正)

大部分读者看到这样的答案之后内心是凄凉的。实变函数,拓扑学,泛函分析,除了数学系之外,很少有其他专业会学这些课程。

我们先用不少大学流传的顺口溜压压惊

真的需要学习这些令人不寒而栗的课程吗?事实上,要理解和掌握绝大部分机器学习算法和理论,尤其是对做工程应用的人而言,所需要的数学知识大学数学老师已经给你了:

  • 微积分
  • 线性代数
  • 概率论
  • 最优化方法

关键知识点

1.  微积分

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

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

  • 梯度向量的定义

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

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

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

  • 凸函数的定义与判断方法

  • 泰勒展开公式

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

其中最核心的是记住多元函数的泰勒展开公式,根据它我们可以推导出机器学习中常用的梯度下降法,牛顿法,拟牛顿法等一系列最优化方法:

参考书目:

微积分用经典的同济7版就可以了,这是国内很多高校工科专业的微积分教材。如果想深入学习,可以看数学分析的教材,这是数学系的微积分。北大张筑生先生所著的数学分析可谓是国内这方面教材的精品。

2.  线性代数

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

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

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

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

  • 逆矩阵的定义与性质

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

  • 二次型的定义

  • 矩阵的正定性

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

  • 矩阵的奇异值分解

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

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

3.  概率论

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

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

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

  • 条件概率与贝叶斯公式

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

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

  • 随机变量的独立性

  • 最大似然估计

    这些知识不超出普通理工科概率论教材的范围。

4.  最优化方法

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

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

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

KKT条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。

如果你没有学过最优化方法这门课也不用担心,这些方法根据微积分和线性代数的基础知识可以很容易推导出来。如果需要系统的学习这方面的知识,可以阅读《凸优化》,《非线性规划》两本经典教材。

各种算法和理论用到的数学知识

下面我们来看典型算法和理论结论所用到的数学知识:

除流形学习需要简单的微分几何概念之外,深层次的数学知识如实变函数,泛函分析等主要用在一些基础理论结果的证明上,即使不能看懂证明过程,也不影响我们使用具体的机器学习算法。概率图模型、流形学习中基于图的模型会用到图论的一些基本知识,如果学习过离散数学或者数据结构,这些概念很容易理解。

看完这些,你心里的底气应该更足,如果你大学数学知识还没有还给老师,为什么还担心因为数学而学不好机器学习呢?

学好机器学习需要哪些数学知识?相关推荐

  1. 机器学习中的数学知识(part4)--拟牛顿法

    学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 拟牛顿法 面临的问题(局部极小/鞍点) 机器学习中的数学知识 拟牛顿法

  2. 机器学习中的数学知识(part3)--凸优化

    学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 凸优化 非凸优化 机器学习中的数学知识 凸优化 下面是实际问题中常见的凸集,记住它们对理解后面的算法非常有帮助. n n

  3. 机器学习中的数学知识(part2)

    学习笔记,仅供参考,有错必纠 参考自:<机器学习与应用>–雷明 文章目录 机器学习中的数学知识 泰勒展开 梯度下降法 牛顿法 机器学习中的数学知识 泰勒展开 梯度下降法

  4. 机器学习中的数学知识(part1)

    学习笔记,仅供参考,有错必纠 参考自:<机器学习与应用>–雷明 文章目录 机器学习中的数学知识 偏导数与梯度 雅克比矩阵 Hessian矩阵 奇异值分解 向量与矩阵求导 机器学习中的数学知 ...

  5. 机器学习必备的数学知识,一次学会

    面对机器学习,初学者的阻塞点往往不在于机器学习本身,而是数学.机器学习是计算机技术,但它的底层是数学. 通常,在机器学习相关的教材中,通篇都是复杂的数学公式.初学者如果数学基础不牢固,面对满篇的数学公 ...

  6. 机器学习的基本数学知识1

    机器学习的基本数学知识(自用) 线性代数 标量.向量.矩阵和张量 标量:一个单独的数 向量:一列数 矩阵:二维数组 张量:维数超过二维的数组 转置:矩阵的行列互换 矩阵与向量相乘 单位矩阵和逆矩阵 单 ...

  7. 【机器学习】【数学】机器学习涉及的数学知识

    简单总结:机器学习涉及的数学知识有线性代数,概率论和统计学,多变量微积分,算法和复杂优化,以及其他等. 原文:https://www.ibm.com/developerworks/community/ ...

  8. 从入门到高阶,读懂机器学习需要哪些数学知识

    本篇文章是由留德华叫兽 在知乎的优秀回答改编扩展而成的, 作者留德华叫兽有着应用数学和硕士运筹学.优化理论的背景转到德国海德堡大学读博,主要从事机器学习.计算机视觉的研究,希望自己的一些经验可以对想入 ...

  9. 一文读懂机器学习需要哪些数学知识

    转: 作者: 留德华叫兽 系美国克莱姆森大学运筹学硕士,Ph.D. Candidate,师从整数规划大师W. Adams,后跳槽至欧盟玛丽居里博士项目,期间前往意大利IBM Cplex实习半年,巴黎综 ...

  10. 一些机器学习相关的数学知识

    概率论 1.频率与概率的区别 2.条件概率: P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(A∣B)=P(B)P(AB)​ P ...

最新文章

  1. 构建RESTful风格的WCF服务
  2. oracle一条sql的执行过程,请问执行一条sql的整个过程是怎样的,谢谢!
  3. 关于CLSCompliant
  4. 整合营销系统推荐乐云seo_做seo优化前需要考虑哪些
  5. 配置 SQL Server 2008 Email 发送以及 Job 的 Notification通知功能
  6. 在穷学生面前 “ 摆弄骚姿 ”,最美90后支教女老师翻车~!这TM就是所谓的 “ 支教媛 ” ~?...
  7. Visual C++ 中的ODBC编程
  8. mysql第七章课后答案_mysql核心内幕第七章-查询解析与优化器
  9. Linux学习笔记--导航(CentOS 7)
  10. mui 多文件上传至spring mvc 服务器
  11. VC 2008 Express下安装OpenCV2.3.1
  12. C语言 - setjmp与longjmp
  13. 基于java疫情防控管理系统
  14. Java解压ZIP、RAR文件
  15. 4.shell脚本中的变量
  16. java 日历转化-阴历转阳历
  17. debian7系统设置固定IP
  18. CloudDrive — 将阿里云盘变成电脑本地磁盘,网盘挂载映射为本地磁盘!
  19. AAEGan 简介与代码实战
  20. flutter 基础知识点总结

热门文章

  1. aws saa aws sap认证助理专业架构师sap考试经验
  2. 学而思初中全套网课+讲义【春季班,暑假班,秋季班,寒假班】
  3. 国际标准战争的技术真相
  4. 1038 Recover the Smallest Number (30 分)-字符串分段排序
  5. hihocoder 1251 Today Is a Rainy Day 2015北京区域赛C
  6. Helper辅助类设计技巧
  7. html5背景泡泡,HTML5 canvas梦幻圆形泡泡动画背景特效
  8. 为知笔记-艾宾浩斯遗忘曲线复习插件
  9. 疫情期间的旅行方式,谷歌街景创意玩法,全新体验来袭|MIXLAB 人工智能
  10. 闰年,闰月对应的天数快速记忆法