凸优化学习-(二十四)无约束优化算法——梯度下降法

凸优化学习

梯度下降法是最经典、最简单的算法,要求目标函数一阶可微无约束,有 m,M \textbf{m,M} m,M控制凸性。

学习笔记

一、梯度下降法

形如:
d k = − ∇ f ( x k ) Repeat d k = arg ⁡ min ⁡ f ( x k + α d k ) α max ⁡ ≥ α ≥ 0 x k + 1 = x k + α k d k Until Convergence \begin{aligned} &&d^k&=-\nabla f(x^k)\\ \text{Repeat}&&d^k&=\arg\min f(x^k+\alpha d^k)\\ &&\alpha_{\max}&\ge\alpha\ge0\\ &&x^{k+1}&=x^k+\alpha^kd^k\\ \text{Until Convergence}&&& \end{aligned} RepeatUntil Convergencedkdkαmaxxk+1=f(xk)=argminf(xk+αdk)α0=xk+αkdk

二、收敛性分析

1.精确步长搜索(Exact line search)

有:
f ( x k + 1 ) ≤ f ( x k ) + ∇ f T ( x k ) ( − α ∇ f ( x k ) ) + M 2 ∥ − α ∇ f ( x 2 ) ∥ 2 2 ⇔ f ~ ( α ) ≤ f ( x k ) − α ∥ ∇ f ( x k ) ∥ 2 2 + M α 2 2 ∥ ∇ f ( x k ) ∥ 2 2 ① ⇒ min ⁡ α f ~ ( α ) ≤ f ( x k ) − 1 M ∥ ∇ f ( x k ) ∥ 2 2 + 1 2 M ∥ ∇ f ( x k ) ∥ 2 2 ⇒ min ⁡ α f ~ ( α ) ≤ f ( x k ) − 1 2 M ∥ ∇ f ( x k ) ∥ 2 2 ② \begin{aligned} &&f(x^{k+1})&\le f(x^k)+\nabla f^T(x^k)\big(-\alpha\nabla f(x^k)\big)+\frac {\textbf M}{2}\|-\alpha \nabla f(x^2)\|_2^2\\ \Leftrightarrow&&\tilde f(\alpha)&\le f(x^k)-\alpha\|\nabla f(x^k)\|_2^2+\frac{\textbf M\alpha^2}{2}\|\nabla f(x^k)\|_2^2\qquad①\\ \Rightarrow&&\min_\alpha\tilde f(\alpha)&\le f(x^k)-\frac 1{\textbf M}\|\nabla f(x^k)\|_2^2+\frac 1{2\textbf M}\|\nabla f(x^k)\|_2^2\\ \Rightarrow&&\min_\alpha\tilde f(\alpha)&\le f(x^k)-\frac 1{2\textbf M}\|\nabla f(x^k)\|_2^2\qquad ② \end{aligned} f(xk+1)f~(α)αminf~(α)αminf~(α)f(xk)+fT(xk)(αf(xk))+2Mαf(x2)22f(xk)αf(xk)22+2Mα2f(xk)22f(xk)M1f(xk)22+2M1f(xk)22f(xk)2M1f(xk)22
其中 f ~ ( α ) \tilde f(\alpha) f~(α) f f f关于 α \alpha α的函数, min ⁡ f ~ ( α ) \min\tilde f(\alpha) minf~(α)就是指精确步长搜索(即按照求得的能使函数下降最大的步长下降)。②式也可以写成:
f ( x k + 1 ) ≤ f ( x k ) − 1 2 M ∥ ∇ f ( x k ) ∥ 2 2 ② f(x^{k+1})\le f(x^k)-\frac 1{2\textbf M}\|\nabla f(x^k)\|_2^2\qquad ② f(xk+1)f(xk)2M1f(xk)22
②式表明在梯度下降法中,我们每执行一次迭代,我们就能获得一次函数值的下降,这个下降值至少为 1 2 M ∥ ∇ f ( x k ) ∥ 2 2 \frac 1{2\textbf M}\|\nabla f(x^k)\|_2^2 2M1f(xk)22
我们接下来研究每一次迭代后,我们离最优解有多远,由 m,M \textbf{m,M} m,M定义:
p ∗ ≥ f ( x k ) − 1 2 m ∥ ∇ f ( x k ) ∥ 2 2 ③ ② − p ∗ : 1 2 M ∥ ∇ f ( x k ) ∥ 2 2 + f ( x k + 1 ) − p ∗ ≤ f ( x k ) − p ∗ ④ ③ − p ∗ : − 1 2 m ∥ ∇ f ( x k ) ∥ 2 2 + f ( x k ) − p ∗ ≤ 0 ⑤ ④ ⋅ m + ⑤ ⋅ M : M ( f ( x k + 1 ) − p ∗ ) + m ( f ( x k ) − p ∗ ) ≤ M ( f ( x k ) − p ∗ ) ⇒ f ( x k + 1 ) − p ∗ ≤ ( 1 − m M ) ( f ( x k ) − p ∗ ) ⑥ ⇒ ∥ f ( x k + 1 ) − p ∗ f ( x k ) − p ∗ ∥ ≤ ∥ 1 − m M ∥ ⑦ \begin{aligned} &&p^*&\ge f(x^k)-\frac 1{2\textbf m}\|\nabla f(x^k)\|_2^2\qquad ③\\ ②-p^*:&&\frac 1{2\textbf M}\|\nabla f(x^k)\|_2^2+f(x^{k+1})-p^*&\le f(x^k)-p^*\qquad ④\\ ③-p^*:&&-\frac 1{2\textbf m}\|\nabla f(x^k)\|_2^2+f(x^{k})-p^*&\le 0\qquad ⑤\\ ④\cdot\textbf m+⑤\cdot\textbf M:&&\textbf M\big(f(x^{k+1})-p^*\big)+\textbf m\big(f(x^k)-p^*\big)&\le \textbf M \big(f(x^k)-p^*\big)\\ \Rightarrow&& f(x^{k+1})-p^*&\le (1-\frac {\textbf m}{\textbf M})\big(f(x^k)-p^*\big)\qquad ⑥\\ \Rightarrow&&\bigg\|\frac{f(x^{k+1})-p^*}{f(x^k)-p^*}\bigg\|&\le \bigg\|1-\frac {\textbf m}{\textbf M}\bigg\| \qquad ⑦ \end{aligned} p:p:m+M:p2M1f(xk)22+f(xk+1)p2m1f(xk)22+f(xk)pM(f(xk+1)p)+m(f(xk)p)f(xk+1)pf(xk)pf(xk+1)pf(xk)2m1f(xk)22f(xk)p0M(f(xk)p)(1Mm)(f(xk)p)1Mm
这是什么意思呢,这说明我们每执行一次精准步长搜索的梯度下降,我的目标函数值一定是在下降的,并且我们可以由前一步的下降算出下降了多少。可以看到,梯度下降法在精确步长搜索时是线性收敛的:
在这里插入图片描述

2.模糊步长搜索(Inexact line search)(Amijo Rule)

Amijo Rule:
满足 f 0 ( x k + α d k ) ≤ f 0 ( x k ) + γ α ∇ f 0 T ( x k ) d k f_0(x^k+\alpha d^k)\le f_0(x^k)+\gamma\alpha\nabla f_0^T(x^k)d^k f0(xk+αdk)f0(xk)+γαf0T(xk)dk时接受 α \alpha α,迭代停止。
Amijo Rule满足性质:
当 0 ≤ α ≤ 1 M 时 , 迭 代 必 然 停 止 。 当0\le\alpha\le\frac 1 {\textbf M}时,迭代必然停止。 0αM1
证明该性质:
0 ≤ α ≤ 1 M 0\le\alpha\le\frac 1 {\textbf M} 0αM1时,必有:
− α + M α 2 2 ≤ − α 2 ① -\alpha+\frac{\textbf M\alpha^2}{2}\le -\frac \alpha 2\qquad ① α+2Mα22α
根据定义有:
f ~ ( α ) = f ( x k + 1 ) ≤ f ( x k ) − α ∥ ∇ f ( x k ) ∥ 2 2 + M α 2 2 ② 由 ① ② 得 : ≤ f ( x k ) − α 2 ∥ ∇ f ( x k ) ∥ 2 2 有 γ ∈ [ 0 , 0.5 ] 得 : ≤ f ( x k ) − γ α ∥ ∇ f ( x k ) ∥ 2 2 ③ \begin{aligned} \tilde f(\alpha)=&&f(x^{k+1})&\le f(x^k)-\alpha\|\nabla f(x^k)\|_2^2+\frac{\textbf M \alpha^2}{2}\qquad ②\\ 由①②得:&&&\le f(x^k)-\frac {\alpha} 2\|\nabla f(x^k)\|_2^2\\ 有\gamma\in[0,0.5]得:&&&\le f(x^k)-\gamma\alpha\|\nabla f(x^k)\|_2^2\qquad ③ \end{aligned} f~(α)=γ[0,0.5]f(xk+1)f(xk)αf(xk)22+2Mα2f(xk)2αf(xk)22f(xk)γαf(xk)22
③等价于接受 α \alpha α的不等式,所以此时迭代必然停止,证毕。

当不精确搜索在本次迭代后将停止时,我们本次的 α ≥ 1 M \alpha\ge \frac 1 {\textbf M} αM1,得:
α inexact = α max ⁡ 或 ≥ β M β ∈ [ 0 , 1 ] \alpha_{\text{inexact}}=\alpha_{\max}或\ge \frac{\beta}{\textbf M}\quad \beta\in[0,1] αinexact=αmaxMββ[0,1]
对于精确步长有:
f ( x k + 1 ) = f ~ ( α exact ) ≤ f ( x k ) − 1 2 M ∥ ∇ f ( x k ) ∥ 2 2 f(x^{k+1})=\tilde f(\alpha_{\text{exact}})\le f(x^k)-\frac 1{2\textbf M}\|\nabla f(x^k)\|_2^2 f(xk+1)=f~(αexact)f(xk)2M1f(xk)22
得模糊步长:
f ( x k + 1 ) = f ~ ( α inexact ) ≤ f ( x k ) − γ min ⁡ { α max ⁡ , β M } ∥ ∇ f ( x k ) ∥ 2 2 f(x^{k+1})=\tilde f(\alpha_{\text{inexact}})\le f(x^k)-\gamma\min\bigg\lbrace\alpha_{\max},\frac {\beta}{\textbf M}\bigg\rbrace\|\nabla f(x^k)\|_2^2 f(xk+1)=f~(αinexact)f(xk)γmin{αmax,Mβ}f(xk)22
可得:
∥ f ( x k + 1 ) − p ∗ f ( x k ) − p ∗ ∥ ≤ ∥ 1 − γ min ⁡ { 2 m α max ⁡ , 2 m β M } ∥ \bigg\|\frac{f(x^{k+1})-p^*}{f(x^k)-p^*}\bigg\|\le \bigg\|1-\gamma\min\bigg\lbrace2\textbf m\alpha_{\max},\frac {2\textbf m\beta}{\textbf M}\bigg\rbrace\bigg\| f(xk)pf(xk+1)p1γmin{2mαmax,M2mβ}
其中 γ ∈ [ 0 , 0.5 ] , β ∈ [ 0 , 1 ] \gamma\in[0,0.5],\beta\in[0,1] γ[0,0.5],β[0,1],这个比例比较接近于1,是线性收敛的。同时,当 m,M \textbf{m,M} m,M比较接近时,收敛比较快。

三、梯度下降法的变体

f ( x ) f(x) f(x)在某些点不可微:
在这里插入图片描述
若达到 x k + 1 x^{k+1} xk+1,此点无梯度,那么就选择做梯度和右梯度中的一个。当该点左梯度右梯度构成的区间包含0,则达到最优解。

个人思考

梯度下降法作为应用最广、最简单的算法,用来入门是最好不过了。这里面的收敛性分析可以帮助我们了解在什么时候使用梯度下降法会收敛得比较快。梯度下降法也有它的一些局限性,在学习后面的算法中可以体会这一点。

纸质笔记

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值