最優化方法 19:近似梯度下降

前面講了梯度下降法、次梯度下降法,並分析了他們的收斂性。上一節講了近似梯度算子,我們說主要是針對非光滑問題的,這一節就要講近似梯度算子在非光滑優化問題中的應用。先回顧一下上一節最重要的一部分內容:對於指示函數 δC\delta_C 來說近似梯度算子得到的實際上就是向集合 CC 的投影。

1. 近似點梯度下降

這一部分考慮的問題主要是
minimize f(x)=g(x)+h(x) \text{minimize } f(x)=g(x)+h(x)
這裏面 gg 是全空間可導的凸函數,dom g=Rn\text{dom }g=R^nhh 是存在不可導部分的凸函數,並且一般需要 hh 的近似點計算較爲簡單。近似點梯度下降算法是什麼呢?
xk+1=proxth(xktkg(xk)) x_{k+1}=\text{prox}_{th}(x_k-t_k\nabla g(x_k))
這裏跟之前的梯度下降(GD)和次梯度下降(SD)的形式都不太一樣,實際上看了後面的推導會發現經過轉換他們還是很像的。不過怎麼理解這個式子呢?舉一個例子,假如 hh 是集合 CC 的指示函數,那麼這個式子實際上是先沿着 gg 的梯度走步長 tkt_k,然後再投影到集合 CC 裏面,可以看下面這張圖。而考慮原始優化問題,minf=g+h\min f=g+h 本身是一個無約束優化問題,但實際上把 hh 用一個約束函數表示,他就是一個帶約束的優化問題 ming(x), s.t. xC\min g(x),\text{ s.t. }x\in C,而近似點梯度下降方法要做的事情就是先優化 gg,然後投影到約束區域 CC 中,可以參考下圖。

在這裏插入圖片描述

根據 proxth\text{prox}_{th} 的定義,我們把上面的式子展開可以得到
x+=argminu(h(u)+12tux+tg(x)22)=argminu(h(u)+g(x)+g(x)T(ux)+12tux22) \begin{aligned} x^{+} &=\underset{u}{\operatorname{argmin}}\left(h(u)+\frac{1}{2 t}\|u-x+t \nabla g(x)\|_{2}^{2}\right) \\ &=\underset{u}{\operatorname{argmin}}\left(h(u)+g(x)+\nabla g(x)^{T}(u-x)+\frac{1}{2 t}\|u-x\|_{2}^{2}\right) \end{aligned}
可以發現括號裏面的式子實際上就是在 xx 附近對光滑的 gg 進行了二階展開,而 x+x^+ 就是對近似後函數取最小值點。再進一步地
0th(x+)+(x+x+tg(x))Gt(x):=xx+th(x+)+g(x) 0\in t\partial h(x^+) + (x^+-x+t\nabla g(x)) \\ \Longrightarrow G_t(x):=\frac{x-x^+}{t}\in \partial h(x^+)+\nabla g(x)
可以發現 Gt(x)=h(x+)+g(x)G_t(x)=\partial h(x^+)+\nabla g(x) 實際上就近似爲函數 ff 的次梯度,但並不嚴格是,因爲 f(x)=h(x)+g(x)\partial f(x)=\partial h(x)+\nabla g(x)。而此時我們也可以將 x+x^+ 寫成比較簡單的形式
x+=xtGt(x) x^+ = x-tG_t(x)
這跟之前的梯度下降法就統一了,並且也說明了 Gt(x)G_t(x) 就相當於是 ff 的梯度。

這裏還需要說明的一點是 Gt(x)=(1/t)(xproxth(xtg(x))G_t(x)=(1/t)(x-\text{prox}_{th}(x-t\nabla g(x)) 這是一個連續函數,這是因爲近似點算子是 Lipschitz 連續的(在下面一小節中會解釋說明),又由於 Gt(x)=0    x=argminf(x)G_t(x)=0\iff x=\arg\min f(x),因此 xx+ε\Vert x-x^+\Vert\le \varepsilon 就可以作爲 stopping criterion。與之成對比的是非光滑函數的次梯度下降,xx+\Vert x-x^+\Vert 就不是一個很好的 stopping criterion,因爲即使 xx+\Vert x-x^+\Vert 很小,也可能離最優解比較遠。

2. 收斂速度分析

在分析收斂速度之前,我們需要首先分析一下 g(x)g(x)h(x)h(x) 這兩部分函數的性質。

首先是 hh,如果 hh 爲閉的凸函數,那麼 proxh(x)=argminu(h(u)+(1/2)ux2)\text{prox}_h(x)=\arg\min_u\left(h(u)+(1/2)\Vert u-x\Vert^2\right) 對每個 xx 一定存在唯一的解。並且 u=proxh(x)    xuh(u)u=\text{prox}_h(x) \iff x-u\in \partial h(u),那麼我們就可以得到 firmly nonexpansive(co-coercivite) 性質:
(proxh(x)proxh(y))T(xy)proxh(x)proxh(y)22 \left(\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right)^{T}(x-y) \geq\left\|\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right\|_{2}^{2}
證明過程可以取 u=proxh(x),v=proxh(y)u=\text{prox}_h(x),v=\text{prox}_h(y),然後根據 xuh(u),yvh(v)x-u\in \partial h(u),y-v\in \partial h(v),再利用次梯度算子的單調性質就可以得到。之前在梯度下降法中第一次講到 co-coercive 性質的時候也提到,他跟 Lipschitz continuous 性質實際上是等價的,因此我們也有(nonexpansiveness性質)
proxh(x)proxh(y)2xy2 \left\|\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right\|_2 \le \left\|x-y\right\|_2
然後我們再來看函數 gg 的性質,類似前面梯度下降法中的兩個重要性質:

  1. L-smoothL2xTxg(x)\frac{L}{2}x^Tx-g(x) convex
  2. m-strongly convexg(x)m2xTxg(x)-\frac{m}{2}x^Tx convex

然後就可以得到兩個二次的界
mt22Gt(x)22g(xtGt(x))g(x)+tg(x)TGt(x)Lt22Gt(x)22 \frac{m t^{2}}{2}\left\|G_{t}(x)\right\|_{2}^{2} \leq g\left(x-t G_{t}(x)\right)-g(x)+t \nabla g(x)^{T} G_{t}(x) \leq \frac{L t^{2}}{2}\left\|G_{t}(x)\right\|_{2}^{2}
如果取 0<t1/L0< t\le 1/L,那麼就有 Lt1,mt1Lt\le1,mt\le 1

結合上面對 gghh 性質的分析,就能得到下面這個非常重要的式子:

f(xtGt(x))f(z)+Gt(x)T(xz)t2Gt(x)22m2xz22() f\left(x-t G_{t}(x)\right) \leq f(z)+G_{t}(x)^{T}(x-z)-\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}-\frac{m}{2}\|x-z\|_{2}^{2} \qquad (\bigstar)

證明
f(xtGt(x))g(x)tg(x)TGt(x)+t2Gt(x)22+h(xtGt(x))g(z)g(x)T(zx)m2zx22tg(x)TGt(x)+t2Gt(x)22+h(xtGt(x))g(z)g(x)T(zx)m2zx22tg(x)TGt(x)+t2Gt(x)22+h(z)(Gt(x)g(x))T(zx+tGt(x))=g(z)+h(z)+Gt(x)T(xz)t2Gt(x)22m2xz22 \begin{aligned} f\left(x-t G_{t}(x)\right) & \\ \leq & g(x)-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}+h\left(x-t G_{t}(x)\right) \\ \leq & g(z)-\nabla g(x)^{T}(z-x)-\frac{m}{2}\|z-x\|_{2}^{2}-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2} \\ &+h\left(x-t G_{t}(x)\right) \\ \leq & g(z)-\nabla g(x)^{T}(z-x)-\frac{m}{2}\|z-x\|_{2}^{2}-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2} \\ &+h(z)-\left(G_{t}(x)-\nabla g(x)\right)^{T}\left(z-x+t G_{t}(x)\right) \\ =& g(z)+h(z)+G_{t}(x)^{T}(x-z)-\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}-\frac{m}{2}\|x-z\|_{2}^{2} \end{aligned}
其中第一個不等號用到了 g(x)g(x) 凸函數以及 Lipschitz 連續的性質,第二個不等號用到了 g(x)g(x) 凸函數的性質,第三個不等號用到了 h(x)h(x) 凸函數的性質。

有了上面這個式子就可以分析收斂性了。

如果我們取 z=xz=x,那麼就有下面的式子,說明序列 {f(xk}\{f(x_k\} 總是在減小的,如果 f(x)f(x) 存在下界,那麼 f(xk)f(x_k) 將趨向於這個下界。
f(x+)f(x)t2Gt(x)2 f(x^+)\le f(x)-\frac{t}{2}\Vert G_t(x)\Vert^2
如果我們取 z=xz=x^\star,那麼就有
f(x+)fGt(x)T(xx)t2Gt(x)22m2xx22=12t(xx22xxtGt(x)22)m2xx22=12t((1mt)xx22x+x22)12t(xx22x+x22) \begin{aligned} f\left(x^{+}\right)-f^{\star} & \leq G_{t}(x)^{T}\left(x-x^{\star}\right)-\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}-\frac{m}{2}\left\|x-x^{\star}\right\|_{2}^{2} \\ &=\frac{1}{2 t}\left(\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x-x^{\star}-t G_{t}(x)\right\|_{2}^{2}\right)-\frac{m}{2}\left\|x-x^{\star}\right\|_{2}^{2} \\ &=\frac{1}{2 t}\left((1-m t)\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x^{+}-x^{\star}\right\|_{2}^{2}\right) \\ & \leq \frac{1}{2 t}\left(\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x^{+}-x^{\star}\right\|_{2}^{2}\right) \end{aligned}
從這個式子就可以看出來很多有用的性質了:

  1. x+x22(1mt)xx22\left\|x^{+}-x^{\star}\right\|_{2}^{2}\le (1-m t)\left\|x-x^{\star}\right\|_{2}^{2},如果滿足強凸性質的話,也即 m>0m>0,就有 x+x22ckxx22,c=1m/L\left\|x^{+}-x^{\star}\right\|_{2}^{2}\le c^k\left\|x-x^{\star}\right\|_{2}^{2},c=1-m/L
  2. ik(f(xi)f)12tx+x22\sum_i^k (f(x_i)-f^\star) \le \frac{1}{2t}\left\|x^{+}-x^{\star}\right\|_{2}^{2},由於 f(xi)f(x_i) 不增,因此 f(xk)f12ktx+x22f(x_k)-f^\star \le \frac{1}{2kt}\left\|x^{+}-x^{\star}\right\|_{2}^{2},因此收斂速度也是 O(1/k)O(1/k)

注意到前面的分析是針對固定步長 t(0,1/L]t\in(0,1/L] 的,如果我們想走的更遠一點,下降的快一點呢?就可以用前幾節提到的線搜索方法。也就是說每次選擇步長 tkt_k 的時候需要迭代 t:=βtt:=\beta t 來進行搜索,使得滿足下面的式子
g(xtGt(x))g(x)tg(x)TGt(x)+t2Gt(x)22 g\left(x-t G_{t}(x)\right) \leq g(x)-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}
這個式子就是 Lipschitz 連續導出的二次上界,注意應用線搜索的時候,每次迭代我們都要額外計算一次 ggproxth\text{prox}_{th},這個計算可能並不簡單,因此不一定會使算法收斂更快,需要慎重考慮。另外爲了保證能在有限步停止搜索 tkt_k,還需要加入最小步長的約束 ttmin=min{t^,β/L}t\ge t_{\min}=\min \{\hat{t},\beta/L\}。線搜索直觀理解可以如下圖所示

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ZkJVmrlK-1587117296421)(E:\Study\凸優化\img\19-line-search.PNG)]

我們再來分析一下收斂性,跟前面固定步長很像,只需要將原來的式子中 tt 替換爲 tit_i,就可以得到
ti(f(xi+1)f)12(xix22xi+1x22) t_{i}\left(f\left(x_{i+1}\right)-f^{\star}\right) \leq \frac{1}{2}\left(\left\|x_{i}-x^{\star}\right\|_{2}^{2}-\left\|x_{i+1}-x^{\star}\right\|_{2}^{2}\right)
於是有

  1. x+x22(1mti)xx22(1mtmin)xx22\left\|x^{+}-x^{\star}\right\|_{2}^{2}\le (1-m t_i)\left\|x-x^{\star}\right\|_{2}^{2}\le (1-m t_{\min})\left\|x-x^{\star}\right\|_{2}^{2},如果滿足強凸性質的話,也即 m>0m>0,就有 x+x22ckxx22,c=1mtmin=max{1βm/L,1mt^}\left\|x^{+}-x^{\star}\right\|_{2}^{2}\le c^k\left\|x-x^{\star}\right\|_{2}^{2},c=1-mt_{\min}=\max \{1-\beta m/L,1-m\hat{t}\}
  2. ikti(f(xi)f)12x+x22\sum_i^k t_i(f(x_i)-f^\star) \le \frac{1}{2}\left\|x^{+}-x^{\star}\right\|_{2}^{2},由於 f(xi)f(x_i) 不增,因此 f(xk)f12ktminx+x22f(x_k)-f^\star \le \frac{1}{2kt_{\min}}\left\|x^{+}-x^{\star}\right\|_{2}^{2},因此收斂速度也是 O(1/k)O(1/k)

最後給我的博客打個廣告,歡迎光臨
https://glooow1024.github.io/
https://glooow.gitee.io/

前面的一些博客鏈接如下
凸優化專欄
凸優化學習筆記 1:Convex Sets
凸優化學習筆記 2:超平面分離定理
凸優化學習筆記 3:廣義不等式
凸優化學習筆記 4:Convex Function
凸優化學習筆記 5:保凸變換
凸優化學習筆記 6:共軛函數
凸優化學習筆記 7:擬凸函數 Quasiconvex Function
凸優化學習筆記 8:對數凸函數
凸優化學習筆記 9:廣義凸函數
凸優化學習筆記 10:凸優化問題
凸優化學習筆記 11:對偶原理
凸優化學習筆記 12:KKT條件
凸優化學習筆記 13:KKT條件 & 互補性條件 & 強對偶性
凸優化學習筆記 14:SDP Representablity
最優化方法 15:梯度方法
最優化方法 16:次梯度
最優化方法 17:次梯度下降法
最優化方法 18:近似點算子 Proximal Mapping
最優化方法 19:近似梯度下降
最優化方法 20:對偶近似點梯度下降法
最優化方法 21:加速近似梯度下降方法
最優化方法 22:近似點算法 PPA
最優化方法 23:算子分裂法 & ADMM
最優化方法 24:ADMM

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章