为什么说,沿着梯度相反的方向函数值下降最快
我们假设损失函数是
f
(
x
)
f(x)
f
(
x
)
,
x
x
x
就是神经网络的参数,我们的目的是最小化损失函数,也就是不断让
f
(
x
)
f(x)
f
(
x
)
减小。
那么根据高等数学中的泰勒公式,我们知道函数
f
(
x
)
f(x)
f
(
x
)
的一阶泰勒公式如下
f
(
x
+
Δ
x
)
=
f
(
x
)
+
f
′
(
x
)
Δ
x
+
o
(
Δ
x
)
f(x+\Delta x)=f(x)+f'(x)\Delta x+o(\Delta x)
f
(
x
+
Δ
x
)
=
f
(
x
)
+
f
′
(
x
)
Δ
x
+
o
(
Δ
x
)
其中
f
′
(
x
)
f'(x)
f
′
(
x
)
我们都知道是导数,在神经网络中,它就是梯度,因为
x
x
x
是很多的参数,
所以
x
x
x
和
f
′
(
x
)
f'(x)
f
′
(
x
)
都是向量
。
我们的目的是让函数值减小,所以
f
(
x
+
Δ
x
)
f(x+\Delta x)
f
(
x
+
Δ
x
)
要小于
f
(
x
)
f(x)
f
(
x
)
。
那么根据上式我们知道,想要
f
(
x
+
Δ
x
)
<
f
(
x
)
f(x+\Delta x)<f(x)
f
(
x
+
Δ
x
)
<
f
(
x
)
只能有
f
′
(
x
)
Δ
x
f'(x)\Delta x
f
′
(
x
)
Δ
x
小于0。
而
f
′
(
x
)
Δ
x
f'(x)\Delta x
f
′
(
x
)
Δ
x
是两个向量在做内积相乘,我们又知道两个向量的内积公式如下:
f
′
(
x
)
Δ
x
=
∥
f
′
(
x
)
∥
∥
Δ
x
∥
cos
θ
f'(x)\Delta x=\left\|f'(x)\right\|\left\| \Delta x\right\|\cos\theta
f
′
(
x
)
Δ
x
=
∥
f
′
(
x
)
∥
∥
Δ
x
∥
cos
θ
显然
f
′
(
x
)
Δ
x
f'(x)\Delta x
f
′
(
x
)
Δ
x
的取值范围是
[
−
∥
f
′
(
x
)
∥
2
,
∥
f
′
(
x
)
∥
2
]
[-\left\|f'(x)\right\|^2,\left\|f'(x)\right\|^2]
[
−
∥
f
′
(
x
)
∥
2
,
∥
f
′
(
x
)
∥
2
]
。(
注意我这里说的不严谨,因为
Δ
x
\Delta x
Δ
x
的取值是任意的,我们姑且认为它不会大于
f
′
(
x
)
f'(x)
f
′
(
x
)
)
也就是说当
Δ
x
=
f
′
(
x
)
\Delta x=f'(x)
Δ
x
=
f
′
(
x
)
时,与梯度同方向,此时
cos
θ
=
1
\cos\theta=1
cos
θ
=
1
所以
f
′
(
x
)
Δ
x
=
∥
f
′
(
x
)
∥
2
f'(x)\Delta x=\left\|f'(x)\right\|^2
f
′
(
x
)
Δ
x
=
∥
f
′
(
x
)
∥
2
那么我们也就知道了当
Δ
x
=
−
f
′
(
x
)
\Delta x=-f'(x)
Δ
x
=
−
f
′
(
x
)
,与梯度相反方向的时候(因为都是向量,所以这个负号表示的就是反方向。),此时
cos
θ
=
−
1
\cos\theta=-1
cos
θ
=
−
1
,所以
f
′
(
x
)
Δ
x
=
−
∥
f
′
(
x
)
∥
2
f'(x)\Delta x=-\left\|f'(x)\right\|^2
f
′
(
x
)
Δ
x
=
−
∥
f
′
(
x
)
∥
2
那么显然
f
(
x
+
Δ
x
)
=
f
(
x
)
−
∥
f
′
(
x
)
∥
2
f(x+\Delta x)=f(x)-\left\|f'(x)\right\|^2
f
(
x
+
Δ
x
)
=
f
(
x
)
−
∥
f
′
(
x
)
∥
2
函数值下降的最多。
f
(
x
+
Δ
x
)
=
f
(
x
)
+
∥
f
′
(
x
)
∥
2
f(x+\Delta x)=f(x)+\left\|f'(x)\right\|^2
f
(
x
+
Δ
x
)
=
f
(
x
)
+
∥
f
′
(
x
)
∥
2
函数值上升的最多。
所以说沿着梯度的方向,函数值变化最快
。
需要注意是,我们要引入步长,也就是
Δ
x
=
−
α
f
′
(
x
)
\Delta x=-\alpha f'(x)
Δ
x
=
−
α
f
′
(
x
)
,也就是学习率,因为不能让函数值一下子变化太大。