机器学习笔记之优化算法——凸函数铺垫:梯度与方向导数
引言
本节作为介绍凸函数的铺垫,简单介绍方向导数与梯度。
回顾:偏导数
以二元函数
f
(
x
,
y
)
f(x,y)
f(x,y)为例,其关于变量的偏导数表示:三维空间中,曲面上某一点沿着
x
x
x轴方向或
y
y
y轴方向变化的速率。也就是说:
在
梯度下降法——铺垫中解释过,下图中描述斜率的红色切线
不是方向;真正描述方向的是红色箭头。
-
∂
f
(
x
,
y
)
∂
x
=
f
x
(
x
,
y
)
∂f(x,y)∂x=fx(x,y)
∂x∂f(x,y)=fx(x,y)表示函数
f
(
x
,
y
)
f(x,y)
f(x,y)沿着
x
x
x轴方向的斜率;
下图中
P mathcal P P点
沿着 x x x轴方向的红色直线所描述的斜率
; - 同理,
∂
f
(
x
,
y
)
∂
y
=
f
y
(
x
,
y
)
∂f(x,y)∂y=fy(x,y)
∂y∂f(x,y)=fy(x,y)表示函数
f
(
x
,
y
)
f(x,y)
f(x,y)沿着
y
y
y轴方向的斜率。
下图中
P mathcal P P点
沿着 y y y轴方向的红色直线所描述的斜率
。
f
(
x
,
y
)
f(x,y)
f(x,y)在点
P
(
x
0
,
y
0
)
mathcal P(x_0,y_0)
P(x0,y0)关于
x
,
y
x,y
x,y的偏导数分别表示如下:
第一个公式即:
y
=
y
0
y=y_0
y=y0不变,观察变量
x
x
x的斜率;
x
x
x同理。
{
f
x
(
x
0
,
y
0
)
=
lim
Δ
x
⇒
0
f
(
x
0
+
Δ
x
,
y
0
)
−
f
(
x
0
,
y
0
)
Δ
x
f
y
(
x
0
,
y
0
)
=
lim
Δ
y
⇒
0
f
(
x
0
,
y
+
Δ
y
)
−
f
(
x
0
,
y
0
)
Δ
y
{fx(x0,y0)=limΔx⇒0f(x0+Δx,y0)−f(x0,y0)Δxfy(x0,y0)=limΔy⇒0f(x0,y+Δy)−f(x0,y0)Δy
⎩
⎨
⎧fx(x0,y0)=Δx⇒0limΔxf(x0+Δx,y0)−f(x0,y0)fy(x0,y0)=Δy⇒0limΔyf(x0,y+Δy)−f(x0,y0)
观察上图中的
P
mathcal P
P点,它仅仅在
x
,
y
x,y
x,y两个方向(红色箭头)上有导数吗
?
?
?并不是,在其他方向同样可以存在导数。由此,引出方向导数
(
Directional Derivative
)
( ext{Directional Derivative})
(Directional Derivative)的概念。
例如下图中
P
mathcal P
P点,其导数方向可以有很多。例如
黄色箭头描述的方向。
方向余弦
关于某向量
l
⃗
vec l
l在坐标系中表示如下:
在坐标系中记作
l
⃗
=
(
a
,
b
)
vec l =(a,b)
l=(a,b);如果要将
l
⃗
vec l
l单位化,得到单位向量
l
⃗
o
vec l^{o}
lo,则执行:
l
⃗
o
=
1
a
2
+
b
2
(
a
,
b
)
=
(
a
a
2
+
b
2
,
b
a
2
+
b
2
)
→lo=1√a2+b2(a,b)=(a√a2+b2,b√a2+b2)
lo=a2+b21(a,b)=(a2+b2a,a2+b2b)
观察上图,可以将
a
a
2
+
b
2
=
cos
α
,
b
a
2
+
b
2
=
sin
α
=
cos
β
a√a2+b2=cosα,b√a2+b2=sinα=cosβ
a2+b2a=cosα,a2+b2b=sinα=cosβ,最终
l
⃗
o
vec l^{o}
lo可表示为:
(
cos
α
,
cos
β
)
(cos alpha,cos eta)
(cosα,cosβ)
也就是说,单位向量可以表示成这种
方向余弦的形式。
方向导数
方向导数的几何意义
依然以上述图形示例:可能存在各种各样(黄色箭头)的方向,这里以黄色直线箭头为例,该方向的在函数图像中的投影会呈现一条轨迹(黄色实线):
实际上这条轨迹就是
过
P
mathcal P
P点,在该方向朝向的、与坐标平面
X
O
Y
mathcal Xmathcal Omathcal Y
XOY垂直的平面把
f
(
x
,
y
)
f(x,y)
f(x,y)截断产生的图像
去掉其他多余的箭头,过
P
(
x
0
,
y
0
)
mathcal P(x_0,y_0)
P(x0,y0)对应的函数结果位置做一条切线,而切线的斜率即函数在
P
mathcal P
P点处的斜率(黑色直线):
其中黄色菱形表示
截断平面中间由实线与虚线组成的类似梯形的区域表示截面,只不过虚线部分的
轨迹并不是当前方向对应的轨迹,不是我们我们关注的对象。
由此可见:在
P
mathcal P
P点的
36
0
o
360^o
360o方向上,每一个方向都存在一个截面,随着方向的变化,对应的函数结果
f
(
x
0
,
y
0
)
f(x_0,y_0)
f(x0,y0)在截面上的位置得到不同的切线(斜率)结果。
准确来说是
截线而不是截面,因为函数
f
(
⋅
)
f(cdot)
f(⋅)是
空心的
。
方向导数的定义
如何定义方向导数
?
?
?见下图:
上述图像描述
X
O
Y
mathcal Xmathcal Omathcal Y
XOY平面上,
P
(
x
0
,
y
0
)
mathcal P(x_0,y_0)
P(x0,y0)点沿着
l
⃗
vec l
l方向前进了一个极小的长度
t
t
t并到达
A
mathcal A
A点,对应
P
mathcal P
P在函数上的映射结果
z
0
=
f
(
x
0
,
y
0
)
z_0= f(x_0,y_0)
z0=f(x0,y0)也会沿着对应的轨迹移动一个距离,并达到新的位置
z
0
′
z_0'
z0′;假设
Δ
Z
=
∣
z
0
−
z
0
′
∣
Delta mathcal Z = |z_0 - z_0'|
ΔZ=∣z0−z0′∣,对应的方向导数可表示为:
lim
t
⇒
0
Δ
Z
t
mathop{lim}limits_{t Rightarrow 0} frac{Delta mathcal Z}{t}
t⇒0limtΔZ
已知
P
mathcal P
P点坐标是
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0),并且已知距离
t
t
t以及对应的
α
,
β
alpha,eta
α,β夹角,因而可以得到
A
mathcal A
A的坐标:
A
(
x
0
+
t
⋅
cos
α
,
y
0
+
t
⋅
cos
β
)
mathcal A (x_0 + t cdot cos alpha,y_0 + t cdot cos eta)
A(x0+t⋅cosα,y0+t⋅cosβ)。最终可以将
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)处关于向量
l
⃗
vec l
l的方向导数
∂
Z
∂
l
⃗
∣
(
x
0
,
y
0
)
∂Z∂→l|(x0,y0)
∂l∂Z∣(x0,y0)表达为如下形式:
∂
Z
∂
l
⃗
∣
(
x
0
,
y
0
)
=
lim
t
⇒
0
f
(
x
0
+
t
⋅
cos
α
,
y
0
+
t
⋅
cos
β
)
−
f
(
x
0
,
y
0
)
t
frac{partial mathcal Z}{partial {vec l}}|_{(x_0,y_0)} = mathop{lim}limits_{t Rightarrow 0} frac{f(x_0 + t cdot cos alpha,y_0 + t cdot cos eta) - f(x_0,y_0)}{t}
∂l∂Z∣(x0,y0)=t⇒0limtf(x0+t⋅cosα,y0+t⋅cosβ)−f(x0,y0)
基于方向导数重新观察偏导数,可以发现:方向导数就是偏导数的一种特例。以
∂
f
(
x
,
y
)
∂
x
∂f(x,y)∂x
∂x∂f(x,y)为例。它等价于:
l
⃗
vec l
l的方向是
x
x
x轴的正方向:
此时:
α
=
0
,
β
=
π
2
⇒
cos
α
=
1
,
cos
β
=
0
α=0,β=π2⇒cosα=1,cosβ=0
α=0,β=2π⇒cosα=1,cosβ=0从而有:
此时的方向导数退化成了偏导数,
∂
f
(
x
,
y
)
∂
y
∂f(x,y)∂y
∂y∂f(x,y)同理,这里不再赘述。
∂
Z
∂
l
⃗
=
lim
t
⇒
0
f
(
x
0
+
t
,
y
0
)
−
f
(
x
0
,
y
0
)
t
=
f
x
(
x
0
,
y
0
)
=
∂
f
(
x
,
y
)
∂
x
∣
(
x
0
,
y
0
)
∂Z∂→l=limt⇒0f(x0+t,y0)−f(x0,y0)t=fx(x0,y0)=∂f(x,y)∂x|(x0,y0)
∂l∂Z=t⇒0limtf(x0+t,y0)−f(x0,y0)=fx(x0,y0)=∂x∂f(x,y)∣(x0,y0)
方向导数与偏导数之间的关联关系
在函数
f
(
⋅
)
f(cdot)
f(⋅)在其定义域内可微的条件下,该函数在
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)处关于方向向量
l
⃗
vec l
l的方向导数
∂
Z
∂
l
⃗
∣
(
x
0
,
y
0
)
∂l∂Z∣(x0,y0)与该函数在
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)处的偏导数
f
x
(
x
0
,
y
0
)
,
f
y
(
x
0
,
y
0
)
f_x(x_0,y_0),f_y(x_0,y_0)
fx(x0,y0),fy(x0,y0)之间的关联关系表示如下:
∂
Z
∂
l
⃗
∣
(
x
0
,
y
0
)
=
f
x
(
x
0
,
y
0
)
⋅
cos
α
+
f
y
(
x
0
,
y
0
)
⋅
cos
β
∂l∂Z∣(x0,y0)=fx(x0,y0)⋅cosα+fy(x0,y0)⋅cosβ
证明过程
- 在函数
f
(
⋅
)
f(cdot)
f(⋅)可微的条件下,在
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)点关于
Z
mathcal Z
Z的变化量
Δ
Z
Delta mathcal Z
ΔZ可表示为:
其中
O [ ( Δ x ) 2 + ( Δ y ) 2 ] mathcal Oleft[sqrt{({Delta x})^2 + (Delta y)^2} ight] O[(Δx)2+(Δy)2]表示关于
( Δ x ) 2 + ( Δ y ) 2 sqrt{({Delta x})^2 + (Delta y)^2} (Δx)2+(Δy)2的高阶无穷小。
Δ Z = f x ( x 0 , y 0 ) ⋅ Δ x + f y ( x 0 , y 0 ) ⋅ Δ y + O [ ( Δ x ) 2 + ( Δ y ) 2 ] Delta mathcal Z = f_x(x_0,y_0) cdot Delta x + f_y(x_0,y_0) cdot Delta y + mathcal Oleft[sqrt{({Delta x})^2 + (Delta y)^2} ight] ΔZ=fx(x0,y0)⋅Δx+fy(x0,y0)⋅Δy+O[(Δx)2+(Δy)2] - 由于全微分在任意方向上均成立。
因而有:
{ Δ x = t ⋅ cos α Δ y = t ⋅ cos β ( Δ x ) 2 + ( Δ y ) 2 = t 2 ⋅ ( cos 2 α + cos 2 β ) = t 2 α + β = π 2 ⎩ ⎨ ⎧Δx=t⋅cosαΔy=t⋅cosβ(Δx)2+(Δy)2=t2⋅(cos2α+cos2β)=t2α+β=2π - 观察等式左侧:
Δ Z Delta mathcal Z ΔZ表示
P ( x 0 , y 0 ) mathcal P(x_0,y_0) P(x0,y0)沿着
l ⃗ vec l l移动
t t t到达
A mathcal A A点前后函数结果的变化量。
I left = Δ Z = f ( x 0 + t ⋅ cos α , y 0 + t ⋅ cos β ) − f ( x 0 , y 0 ) mathcal I_{ ext{left}} = Delta mathcal Z = f(x_0 + t cdot cos alpha,y_0 + t cdot cos eta) - f(x_0,y_0) Ileft=ΔZ=f(x0+t⋅cosα,y0+t⋅cosβ)−f(x0,y0)
观察等式右侧:
将上述公式代入。
I right = f x ( x 0 , y 0 ) ⋅ t ⋅ cos α + f y ( x 0 , y 0 ) ⋅ t ⋅ cos β + O ( t ) mathcal I_{ ext{right}} = f_x(x_0,y_0) cdot t cdot cos alpha + f_y(x_0,y_0) cdot t cdot cos eta + mathcal O(t) Iright=fx(x0,y0)⋅t⋅cosα+fy(x0,y0)⋅t⋅cosβ+O(t) - 将
I
left
,
I
right
mathcal I_{ ext{left}},mathcal I_{ ext{right}}
Ileft,Iright同时除以
t
t
t,等式两端依然相等:
并令
I left mathcal I_{ ext{left}} Ileft中
t ⇒ 0 t Rightarrow 0 t⇒0,因为
I Right mathcal I_{ ext{Right}} IRight中不含
t ( O ( t ) t = 0 ) t left( ight) t(tO(t)=0),因此不产生影响。
{ I right t = f x ( x 0 , y 0 ) ⋅ cos α ⋅ t + f y ( x 0 , y 0 ) ⋅ cos β ⋅ t + O ( t ) t = f x ( x 0 , y 0 ) ⋅ cos α + f y ( x 0 , y 0 ) ⋅ cos β lim t ⇒ 0 I l e f t t = lim t ⇒ 0 f ( x 0 + t ⋅ cos α , y 0 + t ⋅ cos β ) − f ( x 0 , y 0 ) t = ∂ Z ∂ l ⃗ ∣ ( x 0 , y 0 ) ⎩ ⎨ ⎧tIrightt⇒0limtIleft=tfx(x0,y0)⋅cosα⋅t+fy(x0,y0)⋅cosβ⋅t+O(t)=fx(x0,y0)⋅cosα+fy(x0,y0)⋅cosβ=t⇒0limtf(x0+t⋅cosα,y0+t⋅cosβ)−f(x0,y0)=∂l∂Z∣(x0,y0) - 最终有:
∂ Z ∂ l ⃗ ∣ ( x 0 , y 0 ) = f x ( x 0 , y 0 ) ⋅ cos α + f y ( x 0 , y 0 ) ⋅ cos β frac{partial mathcal Z}{partial vec l}|_{(x_0,y_0)} = f_x(x_0,y_0) cdot cos alpha + f_y(x_0,y_0) cdot cos eta ∂l∂Z∣(x0,y0)=fx(x0,y0)⋅cosα+fy(x0,y0)⋅cosβ
证毕。
梯度 ( Gradient ) ( ext{Gradient}) (Gradient)
关于梯度,它的返回结果是一个向量形式。关于函数
f
(
x
,
y
)
f(x,y)
f(x,y),其梯度向量通常记作:
grad
f
(
x
,
y
)
ext{grad } f(x,y)
grad f(x,y)或者
∇
f
(
x
,
y
)
abla f(x,y)
∇f(x,y)。
其具体表示为:
∇
f
(
x
,
y
)
=
[
f
x
(
x
,
y
)
,
f
y
(
x
,
y
)
]
abla f(x,y) = left[f_x(x,y),f_y(x,y)
ight]
∇f(x,y)=[fx(x,y),fy(x,y)]
很明显:梯度向量中的元素就是
f
(
x
,
y
)
f(x,y)
f(x,y)针对不同自变量
x
,
y
x,y
x,y的偏导数。因此它的计算并不麻烦,如何理解梯度向量
?
?
?具体从方向和大小两个角度对梯度向量进行认知。
回顾上面的方向导数 ∂ Z ∂ l ⃗ ∂l∂Z,它可以表示成如下形式:
两向量之间的内积形式。
-
l
⃗
o
vec l^{o}
lo
是
l ⃗ vec l l的单位向量结果。
∂ Z ∂ l ⃗ = f x ( x , y ) ⋅ cos α + f y ( x , y ) ⋅ cos β = [ f x ( x , y ) , f y ( x , y ) ] ( cos α cos β ) = ∇ f ( x , y ) ⋅ l ⃗ o ∂l∂Z=fx(x,y)⋅cosα+fy(x,y)⋅cosβ=[fx(x,y),fy(x,y)](cosαcosβ)=∇f(x,y)⋅lo
首先,由于
x
,
y
x,y
x,y轴描述的方向是确定的,因而在某点
(
x
,
y
)
(x,y)
(x,y)处的梯度向量也同样是固定的;但
l
⃗
o
vec l^{o}
lo却不固定。由于是内积结果,我们可以将其展开:
∂
Z
∂
l
⃗
=
∇
f
(
x
,
y
)
⋅
l
⃗
o
=
∣
∣
∇
f
(
x
,
y
)
∣
∣
⋅
∣
∣
l
⃗
o
∣
∣
⋅
cos
θ
∂l∂Z=∇f(x,y)⋅lo=∣∣∇f(x,y)∣∣⋅∣∣lo∣∣⋅cosθ
观察:由于
∣
∣
∇
f
(
x
,
y
)
∣
∣
=
[
f
x
(
x
,
y
)
]
2
+
[
f
y
(
x
,
y
)
]
2
||
abla f(x,y)|| = [f_x(x,y)]^2 + [f_y(x,y)]^2
∣∣∇f(x,y)∣∣=[fx(x,y)]2+[fy(x,y)]2,因而在函数
f
(
⋅
)
f(cdot)
f(⋅)某一点
(
x
,
y
)
(x,y)
(x,y)确定的条件下,其值也是固定的;并且
∣
∣
l
⃗
o
∣
∣
=
1
||vec l^{o}|| = 1
∣∣lo∣∣=1。因此:影响
∂
Z
∂
l
⃗
∂l∂Z大小的因素只有向量
∇
f
(
x
,
y
)
abla f(x,y)
∇f(x,y)与向量
l
⃗
o
vec l^{o}
lo之间的夹角
cos
θ
cos heta
cosθ。
由于
cos
θ
∈
[
−
1
,
1
]
cos heta in [-1,1]
cosθ∈[−1,1],因此当
θ
=
0
heta = 0
θ=0时,也就是
l
⃗
o
vec l^{o}
lo与
∇
f
(
x
,
y
)
abla f(x,y)
∇f(x,y)方向重合时,方向导数取得最大值,最大值即:
∂
Z
∂
l
⃗
=
∣
∣
∇
f
(
x
,
y
)
∣
∣
frac{partial mathcal Z}{partial vec l} = ||
abla f(x,y)||
∂l∂Z=∣∣∇f(x,y)∣∣
也就是说:当前点
(
x
,
y
)
(x,y)
(x,y),选择梯度方向时,它的斜率(变化量)最大。
相关参考:
【多元微分专题】第六期:方向导数和梯度的直观理解
评论记录:
回复评论: