大学时期学的数学现在可能派上用场了,机器学习背后的原理涉及许多数学知识。深入挖掘一下,你会发现,线性代数、微积分和概率论等都和机器学习背后的算法息息相关。
机器学习算法背后的数学知识你了解吗?在构建模型的过程中,如果想超越其基准性能,那么熟悉基本细节可能会大有帮助,尤其是在想要打破 SOTA 性能时,尤其如此。
机器学习背后的原理往往涉及高等数学。例如,随机梯度下降算法建立在多变量微积分和概率论的基础上。因此掌握基础的数学理论对于理解机器学习模型很重要。但如果你是没有数学基础的初学者,这里有一份学习路线图,带你从零开始深入理解神经网络的数学原理。
大多数机器学习都建立在三种数学理论的基础上:线性代数、微积分和概率论,其中概率论的理论又基于线性代数和微积分。
微积分
微积分包括函数的微分和积分。神经网络本质上是一个可微函数,因此微积分是训练神经网络的基本工具。
首先,函数的导数定义如下
在极限定理中,这也是点 x 处切线的斜率。下图说明了这个概念:
将函数的导数可视化。
微分可以用来优化函数:导数在局部极大值和极小值处为零。(也有例外,例如:f(x) = x³,x=0),导数为零的点称为临界点。临界点是最小值还是最大值可以通过查看二阶导数来确定:
求导存在一些基本法则,其中最重要的可能是链式求导法则:
上式告诉我们如何计算复合函数的导数。
微分和积分互为逆运算,这是因为:
它适用于任何可积函数 f(x)。函数的积分也可以看作是曲线下的有符号面积。例如:
因为当函数是负的时候,这里的面积也有一个负号:
在 -π到π的区间内,正弦函数曲线下的有符号面积。
推荐一些比较好的学习资源,麻省理工学院的单变量微积分课程和 Gilbert Strang 的教科书。
-
MIT 课程链接:https://www.youtube.com/playlist?list=PL590CCC2BC5AF3BC1
-
教科书链接:https://ocw.mit.edu/resources/res-18-001-calculus-online-textbook-spring-2005/textbook/
线性代数
神经网络本质上是函数,它是用微积分工具训练的。然而,又涉及线性代数,如矩阵乘法。线性代数是一门涉及机器学习许多方面的庞大学科,因此这将是一个重要的部分。
向量空间
为了更好地理解线性代数,建议从向量空间开始。首先介绍一个特例,把平面上的每个点看作一个元组:
这些本质上是从零指向(x₁,x2)的向量。向量之间可以相加,向量也可与标量相乘:
这是向量空间的原型模型。一般来说,如果可以将向量相加并将向量与实数相乘,那么这组向量 V 就是实数上的向量空间,那么以下属性成立:
这些保证了向量可以相加和缩放。当考虑向量空间时,如果你在心里把它们建模为 R^2 会很有帮助。
范数空间
如果你很了解向量空间,下一步就是理解怎样测量向量的大小。在默认情况下,向量空间本身并没有提供这样的工具。但我们有:
这是一种特殊的范数,通常,如果存在函数,则向量空间 V 是范数的:
范数为:
但这是一个简单而基本的概念,有很多范数存在,但最重要的是 p 范数家族:
当 p=2 时,我们得到上述特例以及最高范数。