数学是机器学习的内功。作为机器学习的基石,数学知识无论如何是绕不开的,机器学习中大量的问题最终都可以归结为求解最优化问题,微积分、线性代数是最优化方法和理论的基础,很多机器学习算法的建模涉及到概率论,由此可见学好数学知识多么必要。不少准备或刚刚迈入机器学习的同学,在面临数学基础的学习时,会遇到两个问题:
不知道机器学习和深度学习到底要用到哪些数学知识
无法真正理解这些数学知识,并用于机器学习的推导证明
对此,SIGAI在本文中专门为大家解决这两个问题。
首先,在庞杂的数学系统内,哪些知识是在机器学习中真正有用的,对这些知识掌握到什么程度就足够了?
其次,掌握了的数学知识怎么在机器学习领域内运用,即怎么从机器学习的角度去理解数学知识?
一、机器学习所需要的数学知识
很多人对于机器学习中的数学知识,谈之色变,一想到实变函数、随机过程、泛函分析等等就不寒而栗。事实上,要理解和掌握绝大部分机器学习算法和理论,尤其是对做工程应用的人而言,真正所需要的数学知识不过尔尔,主要包括了:
微积分
线性代数
概率论
最优化方法
下面我们来一一简要介绍一下:
微积分
先说微积分/高等数学。在机器学习中,微积分主要用到了微分部分,作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。在机器学习里会用到微积分中的以下知识点:
导数和偏导数的定义与计算方法
梯度向量的定义
极值定理,可导函数在极值点处导数或梯度必须为0
雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到
Hessian矩阵,这是2阶导数对多元函数的推广,与函数的极值有密切的联系
凸函数的定义与判断方法
泰勒展开公式
拉格朗日乘数法,用于求解带等式约束的极值问题
相比之下,积分、无穷级数、常微分方程、偏微分方程等在机器学习和深度学习中使用的相对较少。
线性代数
相比之下,线性代数用的更多。在机器学习的几乎所有地方都有使用,具体用到的知识点有:
向量和它的各种运算,包括加法,减法,数乘,转置,内积
向量和矩阵的范数,L1范数和L2范数
矩阵和它的各种运算,包括加法,减法,乘法,数乘
逆矩阵的定义与性质
行列式的定义与计算方法
二次型的定义
矩阵的正定性
矩阵的特征值与特征向量
矩阵的奇异值分解
机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是样本的特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。掌握这些知识会使你游刃有余。
概率论
如果把机器学习所处理的样本数据看作随机变量/向量,我们就可以用概率论的观点对问题进行建模,这代表了机器学习中很大一类方法。在机器学习里用到的概率论知识点有:
随机事件的概念,概率的定义与计算方法
随机变量与概率分布,尤其是连续型随机变量的概率密度函数和分布函数
条件概率与贝叶斯公式
常用的概率分布,包括正态分布,伯努利二项分布,均匀分布
随机变量的均值与方差,协方差
随机变量的独立性
最大似然估计
最优化方法
最后要说的是最优化,因为几乎所有机器学习算法归根到底都是在求解最优化问题。求解最优化问题的指导思想是在极值点出函数的导数/梯度必须为0。因此你必须理解梯度下降法,牛顿法这两种常用的算法,它们的迭代公式都可以从泰勒展开公式中得到。如果能知道坐标下降法、拟牛顿法就更好了。
拉格朗日乘数法在机器学习中用的非常多,用于求解代等式约束的最优化问题,因此熟练的使用它是非常有必要的。
凸优化是机器学习中经常会提及的一个概念,这是一类特殊的优化问题,它的优化变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的所有局部最优解就是全局最优解,因此求解时不会陷入局部最优解。如果一个问题被证明为是凸优化问题,基本上已经宣告此问题得到了解决。在机器学习中,线性回归、岭回归、支持向量机、logistic回归等很多算法求解的都是凸优化问题。
拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为原问题,这两个问题是等价的。通过这一步变换,将带约束条件的问题转换成不带约束条件的问题。通过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原问题转换为对偶问题,如果满足某种条件,原问题和对偶问题是等价的。这种方法的意义在于可以将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。
KKT条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。
看完这些,不少同学会安心不少,原来机器学习的数学基础知识大多已经学习过。除流形学习需要简单的微分几何概念之外,深层次的数学知识如实变函数,泛函分析等主要用在一些基础理论结果的证明上,即使不能看懂证明过程,也不影响我们使用具体的机器学习算法。概率图模型、流形学习中基于图的模型会用到图论的一些基本知识,如果学习过离散数学或者数据结构,这些概念很容易理解。
从机器学习的角度学习数学知识
不少同学对数学知识的掌握比较扎实,但是一转入机器学习中,就不知道从何下手应用。这就是缺乏了从机器学习的角度看待数学知识的素质。如何把数学知识运用到机器学习的算法中去呢?首先就是要熟知机器学习的算法和理论中对应着哪些数学知识?
我们来看看典型算法和理论结论所用到的数学知识:
机器学习算法与数学知识对照表
只有明白自己所学的数学知识可以应用到哪一块机器学习的算法或者理论中,才能更有针对的掌握对应的数学知识。另外无论是哪一门学问,都不是一蹴而就的,反反复复地去复习和运用知识,才能牢记掌握,机器学习中的数学知识也不例外。
SIGAI推荐
这里,SIGAI为满足同学们对数学知识的学习需求,特别推出了一套数学课程:
限时特惠399元(原价599元)
本课程将带你全面系统地回顾机器学习所需的数学知识,包括高等数学,线性代数,概率论与数理统计,最优化方法。另外本课程面对的是学习机器学习、深度学习的人群,所以会在机器学习的视角去讲解数学知识,每一个数学知识点都会放入机器学习中去讲解。这将确保数学不会成为你学好机器学习和深度学习的障碍。有针对性的系统学习机器学习中的数学知识,为学习人工智能技术打下坚实基础。
课程主讲——王老师
本科毕业于北大数学科学学院,曾入选IMO国家集训队,中国科学院数学院统计学硕士,普渡大学统计系在读博士生。在应用数学、机器学习方向有深厚的造诣,擅长理论与应用的结合,曾在知名AI公司从事核心算法的研发。
王老师专门针对机器学习中所需的数学知识,重点讲解人工智能中用得到的基础数学,避免同学们少走弯路,夯实基础。相信在系统认真的跟课学习后,数学老大难,一定变得不再难!
课程大纲
第 1 集 微分上
1.1 课程介绍
1.2 O(n)
1.3 极限
1.4 导数
1.5 求导方法
1.6 费马定理
1.7 函数逼近
1.8 泰勒展开
1.9 凸函数
1.10 本集总结
第 2 集 微分下
2.1 本集介绍
2.2 多元函数
2.3 偏导数
2.4 方向导数
2.5 可微
2.6 梯度
2.7 链式法则
2.8 Hessian矩阵
2.9 拉格朗日乘数法
2.10 本集总结
第 3 集 线性代数
3.1 本集介绍
3.2 向量矩阵张量
3.3 向量与矩阵运算
3.4 张量的运算
3.5 矩阵的逆与伪逆
3.6 行列式
3.7 线性方程组
3.8 二次型与正定性
3.9 矩阵分解
3.10 课程总结
第 4 集 概率统计
4.1 本集介绍
4.2 随机变量与概率分布
4.3 贝叶斯定理
4.4 期望、方差与条件数学期望
4.5 大数定律
4.6 特征函数与中心极限定理
4.7 统计学基本概念
4.8 logistic回归
4.9 极大似然估计
4.10 最大后验估计
4.11 蒙特卡洛方法
4.12 Bootstrap方法
4.13 EM算法
4.14 本集总结
第 5 集 最优化方法
5.1 本集内容简介
5.2 优化问题简介
5.3 最速下降法
5.4 共轭梯度法
5.5 牛顿法
5.6 拟牛顿法
5.7 约束非线性优化
5.8 KKT条件
5.9 课程总结
领取专属 10元无门槛券
私享最新 技术干货