从导数到偏导数
导数
我们在高中了解过 表示 的导数。导数是函数在某一点的切线斜率,也可以理解为函数的变化率。
对于导数 我们也可以认为其是函数 相对于自变量 的变化率,因此可以写成:
偏导数
但是如果我们的函数拥有多个自变量会怎么样呢?例如:
在此情况,如果我们需要考虑 的变化率,我们需要将 和 视为常数,然后对 求导。因此我们引入了偏导数的概念。
偏导数是多元函数在其他自变量固定的情况下,一个自变量的变化率。因此偏导数的计算方法与导数类似,只是需要将其它变量视为常数。
我们假设需要求解上文中的 相对于 的偏导数,我们可以将 和 视为常数,然后对 求导:
某点的偏导数可以解释为该点处函数图像的切线斜率在对应方向的分量,如对于三元函数 关于自变量 的偏导数记作 ,简记为 。对于一元函数,其偏导数 就是导数 。
在关于自变量 偏导数的计算中,我们只需将其它变量视为常数,然后按照一元函数求导方法进行求导即可。此外,一元函数求导的一些规则(如链式法则)同样适用于偏导数。
算子(梯度)
Nabla 算子 (又叫倒三角算符,三角算子等)是我们在机器学习中常用的运算符。其是一个包含关于所有自变量偏导数的向量。
Nabla 算子听上去很抽象,实际上也很抽象。我们还是考虑上文中的函数 ,其拥有三个自变量 ,我们可以将其 表示为:
这里使用了转置符号 ,表示将行向量转换为列向量。
由于机器学习经常将多个变量表现为向量 。如果考虑函数 为多变量函数,我们希望其对于向量 的偏导数,我们可以得到:
由于其包含了相对于所有自变量的偏导数,因此我们也称其为梯度(与一元情况的斜率类似)。