1 单变量函数
导数定义:
变换一下有:
f
′
(
x
)
h
=
f
(
x
0
+
h
)
−
f
(
x
0
)
f^{'}(x)h=f(x_0+h)-f(x_0)
f′(x)h=f(x0+h)−f(x0)
可以理解为:当自变量 x 有一个微小的增量变化 h 时, 函数的增量变化为 f ′ ( x ) h f^{'}(x)h f′(x)h。也可以将导数理解为一个控制因子,当 x 变化 h 时, 函 数 值 变 化 = 该 点 导 数 值 ∗ h 函数值变化=该点导数值*h 函数值变化=该点导数值∗h
函数值增量以 Δh 表示: Δ h = f ′ ( x ) h = f ( x 0 + h ) − f ( x 0 ) Δh = f^{'}(x)h=f(x_0+h)-f(x_0) Δh=f′(x)h=f(x0+h)−f(x0)
以
f
(
x
)
=
(
x
−
1
)
2
f(x)=(x-1)^2
f(x)=(x−1)2 为例,计算导数及了解其含义
计算函数在 x=3 和 x=-1 处的导数值,这里我们使用定义进行计算,而不直接使用导数公式,因为导数公式也是根据定义而来的,我们直接从源头出发
函数 f 在 x = 1 处的导数 4; 在 x = -1 处的导数为 -2
通常求函数的最小值时候,我们会用到函数的导数
当我们想求 f(x) 的最小值时,假设初始点为 x 0 x_0 x0,当使用迭代计算的话,就需要分两种情况去更新 x 的值,一是导数值大于 0,另一种是导数值小于 0
若 x 点导数为正,即 f ′ ( x ) f^{'}(x) f′(x)为正,那么 Δh = f ′ ( x ) h f^{'}(x)h f′(x)h 也为正,即当给自变量 x 增加一个微小的变量 h 时,函数值是在增加的,所以要使 f 取得最小值,就需要减小 x 值 所以 x_new = x_old -λ f ′ ( x ) f^{'}(x) f′(x)
若 x 点导数为负, f ′ ( x ) h f^{'}(x)h f′(x)h 为负数 ( 注 : − f ′ ( x ) ) (注:-f^{'}(x)) (注:−f′(x))为正,当给自变量增加一个微小的变量时,函数值在减少,要取得最小值,就需要继续增大 x 值 x n e w = x o l d + λ ( − f ′ ( x ) ) = x o l d + λ ( − f ′ ( x ) ) = x o l d − λ f ′ ( x ) x_{new} = x_{old}+ λ (-f^{'}(x)) = x_{old}+λ(-f^{'}(x))=x_{old} -λf^{'}(x) xnew=xold+λ(−f′(x))=xold+λ(−f′(x))=xold−λf′(x)
可以看出不管导数为正还是为负,最后更新 x 时计算形式是一样的,这也就是为什么在求极小值时需要 x 加上导数的相反数,通常在导数之前需要乘一个很小的变化因子,称为学习率(learning rate) λ ,所以我们实际上并不关心梯度的绝对值大小
2 多变量函数
与单变量类似,多变量函数也可以表示为(以二元函数为例):
Δ h = f ′ ( x ) Δ x + f ′ ( y ) Δ y = f ( x + Δ x , y + Δ y ) − f ( x , y ) Δh = f^{'}(x)Δx+ f^{'}(y)Δy=f(x+Δx,y+Δy)-f(x,y) Δh=f′(x)Δx+f′(y)Δy=f(x+Δx,y+Δy)−f(x,y)
可以理解为: 当自变量 x,y 变化微小量时,函数值的变化情况
上式也可以表示为 ▽ f = ( ∂ f ∂ x , ∂ f ∂ y ) ▽f=(\frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}}) ▽f=(∂x∂f,∂y∂f) 与 ( Δ x , Δ y ) (Δx,Δy) (Δx,Δy)的内积(标量)
三元函数可以表示为:
Δ h = f ′ ( x ) Δ x + f ′ ( y ) Δ y + f ′ ( z ) Δ z = f ( x + Δ x , y + Δ y , z + Δ z ) − f ( x , y , z ) Δh = f^{'}(x)Δx+ f^{'}(y)Δy+ f^{'}(z)Δz=f(x+Δx,y+Δy,z+Δz)-f(x,y,z) Δh=f′(x)Δx+f′(y)Δy+f′(z)Δz=f(x+Δx,y+Δy,z+Δz)−f(x,y,z)
类似地可以表示其它多变量的计算公式
关于二元函数的内积: ▽ f = ( ∂ f ∂ x , ∂ f ∂ y ) ▽f=(\frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}}) ▽f=(∂x∂f,∂y∂f) 与 ( Δ x , Δ y ) (Δx,Δy) (Δx,Δy) 内积表示为 Δ h = ∂ f ∂ x Δ x + ∂ f ∂ y Δ y Δh =\frac{\partial{f}}{\partial{x}}Δx+\frac{\partial{f}}{\partial{y}}Δy Δh=∂x∂fΔx+∂y∂fΔy
当两向量做内积时,向量方向相反时,函数取得最小值[^1],当求函数 f 的最小值时,我们给自变量微小的改变,我们希望函数值沿值衰减最大的方向减小,所以自变量增加方向
(
Δ
x
,
Δ
y
)
(Δx,Δy)
(Δx,Δy)应该与梯度向量方向相反,也即
(
Δ
x
,
Δ
y
)
=
−
λ
(
∂
f
∂
x
,
∂
f
∂
y
)
(Δx,Δy)= -λ(\frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}})
(Δx,Δy)=−λ(∂x∂f,∂y∂f)
当(x,y) 向点(x+Δx,y+Δy) 移动时,函数值就会沿下降最快方向下降, 向量 ( ∂ f ∂ x , ∂ f ∂ y ) (\frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}}) (∂x∂f,∂y∂f) 称为函数 f(x,y) 在点 (x,y) 处的梯度,意为最陡的坡度方向
注:[^1] 向量内积: a ⃗ b ⃗ = ∣ a ∣ ∣ b ∣ c o n θ \vec{a}\vec{b} = |a| |b|conθ ab=∣a∣∣b∣conθ (θ为两个向量的夹角),当 θ 为180° 时(即) a ⃗ \vec{a} a, b ⃗ \vec{b} b向量相反时,内积的值最小