如今机器学习行业持续加温,应届毕业生年薪持续走高,2019年毕业生算法岗年薪40万起,上不封顶,吸引着愈来愈多的人想往机器学习方向转。可是刚接触到算法时,看到那些数学公式都望而生畏,特别是公式的推导。今天本文就介绍机器学习会用到哪些数学知识,让那些想往机器学习方向转的同窗内心有底,知道学习的方向。算法
数学是机器学习的内功。做为机器学习的基石,数学知识不管如何是绕不开的,机器学习中大量的问题最终均可以归结为求解最优化问题,微积分、线性代数是最优化方法和理论的基础,不少机器学习算法的建模涉及到几率论,因而可知学好数学知识多么必要。很多准备或刚刚迈入机器学习的同窗,在面临数学基础的学习时,会遇到两个问题:数据结构
对此,Summer哥在本文中专门为你们解决这两个问题。机器学习
不少人对于机器学习中的数学知识,谈之色变,一想到实变函数、随机过程、泛函分析等等就毛骨悚然。事实上,要理解和掌握绝大部分机器学习算法和理论,尤为是对作工程应用的人而言,真正所须要的数学知识不过尔尔,主要包括了:<font color="red">微积分、线性代数、几率论、最优化方法</font>
下面咱们来一一介绍一下:函数
<font color="blue">微积分</font>
先说微积分/高等数学。在机器学习中,微积分主要用到了微分部分,做用是求函数的极值,就是不少机器学习库中的求解器(solver)所实现的功能。在机器学习里会用到微积分中的如下知识点:学习
相比之下,积分、无穷级数、常微分方程、偏微分方程等在机器学习和深度学习中使用的相对较少。优化
<font color='blue'>线性代数</font>
相比之下,线性代数用的更多。在机器学习的几乎全部地方都有使用,具体用到的知识点有:spa
机器学习算法处理的数据通常都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是样本的特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。掌握这些知识会使你游刃有余。3d
<font color="blue">几率论</font>
若是把机器学习所处理的样本数据看做随机变量/向量,咱们就能够用几率论的观点对问题进行建模,这表明了机器学习中很大一类方法。在机器学习里用到的几率论知识点有:blog
<font color="blue">最优化方法</font>
最后要说的是最优化,由于几乎全部机器学习算法归根到底都是在求解最优化问题。求解最优化问题的指导思想是在极值点出函数的导数/梯度必须为0。所以你必须理解梯度降低法,牛顿法这两种经常使用的算法,它们的迭代公式均可以从泰勒展开公式中获得。若是能知道坐标降低法、拟牛顿法就更好了。事件
拉格朗日乘数法在机器学习中用的很是多,用于求解代等式约束的最优化问题,所以熟练的使用它是很是有必要的。
凸优化是机器学习中常常会说起的一个概念,这是一类特殊的优化问题,它的优化变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的全部局部最优解就是全局最优解,所以求解时不会陷入局部最优解。若是一个问题被证实为是凸优化问题,基本上已经宣告此问题获得了解决。在机器学习中,线性回归、岭回归、支持向量机、logistic回归等不少算法求解的都是凸优化问题。
拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为原问题,这两个问题是等价的。经过这一步变换,将带约束条件的问题转换成不带约束条件的问题。经过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原问题转换为对偶问题,若是知足某种条件,原问题和对偶问题是等价的。这种方法的意义在于能够将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。
KKT条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须知足的条件。在支持向量机中也有它的应用。
看完这些,很多同窗会安心很多,原来机器学习的数学基础知识大多已经学习过。除流形学习须要简单的微分几何概念以外,深层次的数学知识如实变函数,泛函分析等主要用在一些基础理论结果的证实上,即便不能看懂证实过程,也不影响咱们使用具体的机器学习算法。几率图模型、流形学习中基于图的模型会用到图论的一些基本知识,若是学习过离散数学或者数据结构,这些概念很容易理解。
很多同窗对数学知识的掌握比较扎实,可是一转入机器学习中,就不知道从何下手应用。这就是缺少了从机器学习的角度看待数学知识的素质。如何把数学知识运用到机器学习的算法中去呢?首先就是要熟知机器学习的算法和理论中对应着哪些数学知识?
咱们来看看典型算法和理论结论所用到的数学知识:
只有明白本身所学的数学知识能够应用到哪一块机器学习的算法或者理论中,才能更有针对的掌握对应的数学知识。另外不管是哪一门学问,都不是一蹴而就的,反反复复地去复习和运用知识,才能牢记掌握,机器学习中的数学知识也不例外。