方向导数
在一维空间的变化率就是
d
x
d
y
\frac{dx}{dy}
dydx,也就是
f
′
(
x
)
f'(x)
f′(x)。在二维空间中,同样有导数,梯度是二维空间的导数,是某一点的变化情况。一维空间的导数只有大小,而二维空间有
x
,
y
x,y
x,y两个维度,所以在二维平面上就会形成一个方向。函数
z
=
f
(
x
,
y
)
z = f(x, y)
z=f(x,y) 在点
(
x
0
,
y
0
)
(x_0, y_0)
(x0,y0)的方向导数表示为:
∂
f
∂
l
=
∂
f
∂
x
i
→
+
∂
f
∂
y
j
→
\frac{\partial f}{\partial l} = \frac{\partial f}{\partial x}\overrightarrow{i} + \frac{\partial f}{\partial y}\overrightarrow{j}
∂l∂f=∂x∂fi+∂y∂fj
梯度
函数
z
=
f
(
x
,
y
)
z = f(x, y)
z=f(x,y) 在点
(
x
0
,
y
0
)
(x_0, y_0)
(x0,y0)的梯度表示为:
∇
f
(
x
0
,
y
0
)
=
(
∂
f
∂
x
)
2
+
(
∂
f
∂
y
)
2
\nabla f(x_0, y_0) = \sqrt{(\frac{\partial f}{\partial x})^2 + (\frac{\partial f}{\partial y})^2}
∇f(x0,y0)=(∂x∂f)2+(∂y∂f)2
示例
举例来说,设函数
y
=
f
(
x
,
y
)
=
e
−
x
2
−
y
2
y=f(x,y) =e^{-x^2 - y^2}
y=f(x,y)=e−x2−y2,其在点
P
(
x
0
,
y
0
)
P(x_0, y_0)
P(x0,y0) 方向导数可以表示如下:
∂
f
∂
l
=
−
2
x
0
e
−
x
0
2
−
y
0
2
i
→
−
2
y
0
e
−
x
0
2
−
y
0
2
j
→
\frac{\partial f}{\partial l}= -2x_0e^{-x_0^2 - y_0^2}\overrightarrow{i} -2y_0e^{-x_0^2 - y_0^2}\overrightarrow{j}
∂l∂f=−2x0e−x02−y02i−2y0e−x02−y02j
其中 i → \overrightarrow{i} i 方向的系数由 f f f 对 x x x 的偏导数决定。类似的, j → \overrightarrow{j} j 方向的系数由 f f f 对 y y y 的偏导数决定。这样我们就可以求得点P在任意方向上的方向导数。其几何含义就是 f f f 在点P所有方向的变化速率。
几何意义
梯度的几何意义如如下图所示。
比如,当
x
=
0
,
y
=
0
x=0, y=0
x=0,y=0 时,其方向导数为
0
j
→
+
0
j
→
0\overrightarrow{j}+0\overrightarrow{j}
0j+0j;而当
x
=
1
,
y
=
1
x=1,y=1
x=1,y=1 时,
−
2
e
−
2
j
→
+
−
2
e
−
2
j
→
-2e^{-2}\overrightarrow{j}+-2e^{-2}\overrightarrow{j}
−2e−2j+−2e−2j。
当曲面不是平面的时候,每个方向上的变化率是不一样的。如下图所示,在点P,其梯度就是在各个方向的变化。
再看另外的一个示例[2,3],在这个示例中,如果要到达两个最低点(如下图所示),可以有两条不同的路径。这两条路径是最短路径,条件就是路径上的每点都是方向导数最小的点。
参考文献
[1] 西安建筑科技大学、第七节 方向导数与梯度,http://netedu.xauat.edu.cn/jpkc/netedu/jpkc/gdsx/homepage/5jxsd/51/513/5308/530807.htm
[2] Pablo J. Villacorta,Introduction to Deep Learning Part 1: Neural Networks,https://www.stratio.com/blog/deep-learning-neural-networks-1,2017/09.
[3] 没名字的蓝猫,深度解读机器学习“梯度下降”,https://www.jianshu.com/p/17191c57d7e9,2018/02.