第四章 无约束优化方法
4.2 最速下降法
最速下降法的基本思想:当当前点 x k x_k xk处的梯度不为0时(或不满足精度要求时),从当前点 x k x_k xk出发,沿负梯度方向 − ∇ f ( x k ) -\nabla f(x_{k}) −∇f(xk)前进到下一个点 x ( k + 1 ) x_{(k+1)} x(k+1)。
4.2.1 算法实现
考虑无约束优化问题:
m i n f ( x ) min f(x) minf(x)
其中 f f f 具有一阶连续偏导数。
最速下降算法:
输入:函数
f
f
f :
R
n
R^n
Rn :
→
\rightarrow
→
R
R
R,具有一阶连续偏导数,初始点
x
(
0
)
x^{(0)}
x(0) 允许误差
ϵ
\epsilon
ϵ 。
输出:满足精度要求的点
x
‾
\overline{x}
x。
1
k
←
1
k\gets 1
k←1
2
w
h
i
l
e
∣
∣
∇
f
(
x
(
k
)
)
∣
∣
>
ϵ
while ||\nabla f(x^{(k)})|| > \epsilon
while∣∣∇f(x(k))∣∣>ϵ
d
o
do
do
3 下降方向
d
k
←
−
∇
f
(
x
(
k
)
)
d^{k}\gets −\nabla f(x^{(k)})
dk←−∇f(x(k))。
4 计算步长因子
α
k
\alpha_{k}
αk。
5
x
(
k
+
1
)
←
d
(
k
)
+
α
k
d
(
k
)
x^{(k+1)} \gets d^{(k)}+\alpha_{k}d^{(k)}
x(k+1)←d(k)+αkd(k)。
4
k
←
k
+
1
k\gets k+1
k←k+1
5
e
n
d
w
h
i
l
e
endwhile
endwhile
6
r
e
t
u
r
n
return
return
x
ˉ
←
x
(
k
)
\bar{x}\gets x^{(k)}
xˉ←x(k)
4.2.2 例题讲解
Example :用最速下降法解
m
i
n
f
(
x
)
=
2
x
1
2
+
x
2
2
min f(x)=2x^{2}_{1}+x^{2}_{2}
minf(x)=2x12+x22,初始点
x
(
1
)
=
(
1
1
)
x^{(1)}=\begin{pmatrix}1 \\ 1\end{pmatrix}
x(1)=(11),
ϵ
=
0.1
\epsilon=0.1
ϵ=0.1。
解:目标函数在
x
x
x处的梯度为:
∇ f ( x ) = ( 4 x 1 2 x 2 ) \nabla f(x)=\begin{pmatrix}4x_{1}\\ 2x_{2}\end{pmatrix} ∇f(x)=(4x12x2)
第1次迭代:
∇ f ( x ( 1 ) ) = ( 4 2 ) \nabla f(x^{(1)})=\begin{pmatrix}4\\ 2\end{pmatrix} ∇f(x(1))=(42),其模为 4 2 + 2 2 > 0.1 \sqrt{4^{2}+2^{2}}>0.1 42+22>0.1
令搜索方向 d ( 1 ) = − ( ∇ f ( x ( 1 ) ) ) = ( − 4 − 2 ) d^{(1)}=-(\nabla^{}f(x^{(1)}))=\begin{pmatrix}-4\\ -2\end{pmatrix} d(1)=−(∇f(x(1)))=(−4−2)
从 x ( 1 ) x^{(1)} x(1)出发,沿方向 d ( 1 ) d^{(1)} d(1)进行一维搜索,求步长 α 1 \alpha_{1} α1,即求解 m i n α > 0 f ( x ( 1 ) + α d ( 1 ) ) min_{\alpha>0}f(x^{(1)}+\alpha d^{(1)}) minα>0f(x(1)+αd(1)) ,其中,
f ( x ( 1 ) + α d ( 1 ) ) f(x^{(1)}+\alpha d^{(1)}) f(x(1)+αd(1))= f ( ( 1 1 ) + α ( − 4 − 2 ) ) = 2 ( 1 − 4 α ) 2 + ( 1 − 2 α ) 2 f(\begin{pmatrix}1\\ 1\end{pmatrix}+\alpha \begin{pmatrix}-4\\ -2\end{pmatrix}) = 2(1-4\alpha)^{2}+(1-2\alpha)^{2} f((11)+α(−4−2))=2(1−4α)2+(1−2α)2
求导解出最小值点为 α 1 = 5 18 \alpha_1=\frac{5}{18} α1=185
因此,在方向 d ( 1 ) d^{(1)} d(1)处问题的极小点为 x ( 2 ) = d ( 1 ) + α 1 d ( 1 ) = ( − 1 / 9 4 / 9 ) x^{(2)}=d^{(1)}+\alpha_{1}d^{(1)}=\begin{pmatrix}-1/9\\ 4/9\end{pmatrix} x(2)=d(1)+α1d(1)=(−1/94/9)
第2次迭代:
∇ f ( x ( 2 ) ) = ( − 4 / 9 8 / 9 ) \nabla f(x^{(2)})=\begin{pmatrix}-4/9\\ 8/9\end{pmatrix} ∇f(x(2))=(−4/98/9),其模为 ( − 4 / 9 ) 2 + ( 8 / 9 ) 2 > 0.1 \sqrt{(-4/9)^{2}+(8/9)^{2}}>0.1 (−4/9)2+(8/9)2>0.1
令搜索方向 d ( 2 ) = − ( ∇ f ( x ( 2 ) ) ) = ( 4 / 9 − 8 / 9 ) d^{(2)}=-(\nabla^{}f(x^{(2)}))=\begin{pmatrix}4/9\\ -8/9\end{pmatrix} d(2)=−(∇f(x(2)))=(4/9−8/9)
从 x ( 2 ) x^{(2)} x(2)出发,沿方向 d ( 2 ) d^{(2)} d(2)进行一维搜索,求步长 α 2 \alpha_{2} α2,即求解 m i n α > 0 f ( x ( 2 ) + α d ( 2 ) min_{\alpha>0}f(x^{(2)}+\alpha d^{(2}) minα>0f(x(2)+αd(2) ,其中,
f ( x ( 2 ) + α d ( 2 ) ) f(x^{(2)}+\alpha d^{(2)}) f(x(2)+αd(2))= f ( ( − 1 / 9 4 / 9 ) + α ( 4 / 9 − 8 / 9 ) ) f(\begin{pmatrix}-1/9\\ 4/9\end{pmatrix}+\alpha \begin{pmatrix}4/9\\ -8/9\end{pmatrix}) f((−1/94/9)+α(4/9−8/9))
求导解出最小值点为 α 1 = 5 12 \alpha_1=\frac{5}{12} α1=125
因此,在方向 d ( 2 ) d^{(2)} d(2)处问题的极小点为 x ( 3 ) = d ( 2 ) + α 2 d ( 2 ) = ( 2 / 27 2 / 27 ) x^{(3)}=d^{(2)}+\alpha_{2}d^{(2)}=\begin{pmatrix}2/27\\ 2/27\end{pmatrix} x(3)=d(2)+α2d(2)=(2/272/27)
以此类推,共四次迭代,最终得到近似解 x ˉ = 2 243 ( − 1 4 ) \bar{x}=\frac{2}{243}\begin{pmatrix}-1\\ 4\end{pmatrix} xˉ=2432(−14)
实际上,问题的最优解为 x ⋆ = ( 0 0 ) x^{\star}=\begin{pmatrix}0\\ 0\end{pmatrix} x⋆=(00)
4.2.3 最速下降法的锯齿现象
在最速下降法中,相邻的搜索方向垂直或近似垂直,这成为“锯齿现象”。