偏导数
多变量函数指的是具有多个参数的函数,例如:
f(x,y)=e2ysin(x)
f
相对于
x
的偏导数表示如下:
∂f∂x
是
f(x)
的导数。要计算以下值:
∂f∂x
您必须使
y
保持固定不变(因此
f
现在是只有一个变量
x
的函数),然后取
f
相对于
x
的常规导数。例如,当
y
固定为 1 时,前面的函数变为:
f(x)=e2sin(x)
这只是一个变量
x
的函数,其导数为:
e2cos(x)
一般来说,假设
y
保持不变,
f
对
x
的偏导数的计算公式如下:
∂f∂x(x,y)=e2ycos(x)
同样,如果我们使
x
保持不变,
f
对
y
的偏导数为:
∂f∂y(x,y)=2e2ysin(x)
直观而言,偏导数可以让您了解到,当您略微改动一个变量时,函数会发生多大的变化。在前面的示例中:
∂f∂x(0,1)=e2≈7.4
因此,如果您将起点设为 (0,1),使
y
保持固定不变并将
x
移动一点,
f
的变化量将是
x
变化量的 7.4 倍左右。
在机器学习中,偏导数主要与函数的梯度一起使用。
梯度
函数的梯度是偏导数相对于所有自变量的矢量,表示如下:
∇f
例如,如果:
f(x,y)=e2ysin(x)
则:
∇f(x,y)=(∂f∂x(x,y),∂f∂y(x,y))=(e2ycos(x),2e2ysin(x))
请注意以下几点:
-
∇f
指向函数增长速度最快的方向。
-
−∇f
指向函数下降速度最快的方向。
该矢量中的维度个数等于
f
公式中的变量个数;换言之,该矢量位于该函数的域空间内。例如,在三维空间中查看下面的函数
f(x,y)
时:
f(x,y)=4+(x−2)2+2y2
z=f(x,y)
就像一个山谷,最低点为 (2,0,4):
f(x,y)
的梯度是一个二维矢量,可让您了解向哪个
(x,y)
方向移动时高度下降得最快。也就是说,梯度矢量指向山谷。
在机器学习中,梯度用于梯度下降法。我们的损失函数通常具有很多变量,而我们尝试通过跟随函数梯度的负方向来尽量降低损失函数。
本人博客:寸山河
本人GitHub:王顺
欢迎大家一起交流学习。