连续函数的最优化方法-梯度下降法
1、介绍
梯度下降法在机器学习中应用十分的广泛,它的主要目的是通过迭代搜索到目标函数的最小值;梯度下降法可以类比为一个下山的过程。假设,山上的雾非常大、可视度非常低、下山路径无法确定,而有一个人需要从山顶走到山谷(寻找目标函数的最小值),这个时候便可用梯度下降法来辅助下山。首先,以当前所处位置为基准寻找该位置最陡峭的方向,然后,朝着下降方向走一步。接着,又继续以当前位置为基准再寻找该位置最陡峭的方向,再朝着下降方向走一步。最后,重复该方法便可走到山谷;
2、数学原理
目标函数
F
(
X
)
F(X)
F(X)在
X
=
X
k
X=X_k
X=Xk处的不含皮亚诺余项的一阶泰勒公式如下:
F
(
X
k
+
Δ
X
k
)
≈
F
(
X
k
)
+
J
(
X
k
)
⏟
F
T
Δ
X
k
(
公
式
15
)
F(X_k+\Delta X_k)\approx F(X_k)+\underbrace{J(X_k)}_{F}{^T} \Delta X_k \qquad (公式15)
F(Xk+ΔXk)≈F(Xk)+F
J(Xk)TΔXk(公式15)
通过公式 15 可推得:
G
(
Δ
X
k
)
=
d
e
f
F
(
X
k
+
Δ
X
k
)
−
F
(
X
k
)
≈
J
(
X
k
)
⏟
F
T
Δ
X
k
(
公
式
16
)
G(\Delta X_k) \stackrel{\mathrm{def}}{=} F(X_k+\Delta X_k)-F(X_k) \approx \underbrace{J(X_k)}_{F}{^T} \Delta X_k \qquad (公式16)
G(ΔXk)=defF(Xk+ΔXk)−F(Xk)≈F
J(Xk)TΔXk(公式16)
该表达式中
F
(
X
k
+
Δ
X
k
)
F(X_k+\Delta X_k)
F(Xk+ΔXk)、
F
(
X
k
)
F(X_k)
F(Xk)是一个常数,
J
(
X
k
)
⏟
F
T
\underbrace{J(X_k)}_{F}{^T}
F
J(Xk)T是一个常数矩阵,
Δ
X
k
\Delta X_k
ΔXk是一个变量矩阵,即函数
G
(
Δ
X
k
)
G(\Delta X_k)
G(ΔXk)是以
Δ
X
k
\Delta X_k
ΔXk为自变量的的一次函数。为了使
G
(
Δ
X
k
)
<
0
G(\Delta X_k)<0
G(ΔXk)<0恒成立(即:
F
(
X
k
+
Δ
X
k
)
<
F
(
X
k
)
F(X_k+\Delta X_k)<F(X_k)
F(Xk+ΔXk)<F(Xk)),考虑到
J
(
X
k
)
⏟
F
T
\underbrace{J(X_k)}_{F}{^T}
F
J(Xk)T和
Δ
X
k
\Delta X_k
ΔXk是一个矩阵,所以可以借用向量性质来分析函数
G
(
Δ
X
k
)
G(\Delta X_k)
G(ΔXk)自变量和因变量之间的关系;
令:向量
A
⃗
=
J
(
X
k
)
⏟
F
T
\vec {A}=\underbrace{J(X_k)}_{F}{^T}
A=F
J(Xk)T,向量
B
⃗
=
Δ
X
k
T
\vec {B}=\Delta X_k{^T}
B=ΔXkT,通过公式16可推得:
G
(
Δ
X
k
)
=
d
e
f
J
(
X
k
)
⏟
F
T
Δ
X
k
=
A
⃗
⋅
B
⃗
=
∣
A
⃗
∣
×
∣
B
⃗
∣
×
cos
(
θ
)
(
公
式
17
)
\begin{aligned} G(\Delta X_k) & \stackrel{\mathrm{def}}{=}\underbrace{J(X_k)}_{F}{^T} \Delta X_k\\ &=\vec{A}\cdot\vec {B} \\ &=\lvert{\vec{A}}\rvert\times\lvert{\vec{B}}\rvert\times\cos({\theta}) \end{aligned} \qquad (公式17)
G(ΔXk)=defF
J(Xk)TΔXk=A⋅B=∣A∣×∣B∣×cos(θ)(公式17)
当向量
A
⃗
\vec {A}
A和向量
B
⃗
\vec {B}
B互为相反方向的时候公式17(
η
\eta
η为步长)
G
(
Δ
X
k
)
<
0
G(\Delta X_k)<0
G(ΔXk)<0恒成立,可推得:
B
⃗
=
−
η
×
A
⃗
,
s
.
t
.
(
η
>
0
)
(
公
式
18
)
\vec{B}=-\eta\times\vec {A} \qquad ,s.t.(\eta>0) \qquad (公式18)
B=−η×A,s.t.(η>0)(公式18)
由公式 18 可推得:
Δ
X
k
=
−
η
×
J
(
X
k
)
⏟
F
(
公
式
19
)
\Delta X_k=-\eta\times\underbrace{J(X_k)}_{F} \qquad (公式19)
ΔXk=−η×F
J(Xk)(公式19)
由公式 19 可推得目标函数
F
(
X
)
F(X)
F(X)的最优化迭代公式:
X
k
+
1
=
d
e
f
X
k
−
η
×
J
(
X
k
)
⏟
F
(
公
式
20
)
X_{k+1}\stackrel{\mathrm{def}}{=}X_{k}-\eta\times\underbrace{J(X_k)}_{F} \qquad (公式20)
Xk+1=defXk−η×F
J(Xk)(公式20)