日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数值优化:经典一阶确定性算法及其收敛性分析

發(fā)布時(shí)間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数值优化:经典一阶确定性算法及其收敛性分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

🚀 優(yōu)質(zhì)資源分享 🚀

學(xué)習(xí)路線指引(點(diǎn)擊解鎖)知識(shí)定位人群定位
🧡 Python實(shí)戰(zhàn)微信訂餐小程序 🧡進(jìn)階級(jí)本課程是python flask+微信小程序的完美結(jié)合,從項(xiàng)目搭建到騰訊云部署上線,打造一個(gè)全棧訂餐系統(tǒng)。
💛Python量化交易實(shí)戰(zhàn)💛入門級(jí)手把手帶你打造一個(gè)易擴(kuò)展、更安全、效率更高的量化交易系統(tǒng)

我們?cè)谏弦黄┛汀稊?shù)值優(yōu)化:算法分類及收斂性分析基礎(chǔ)》介紹了數(shù)值優(yōu)化算法的歷史發(fā)展、分類及其收斂性/復(fù)雜度分析基礎(chǔ)。本篇博客我們重點(diǎn)關(guān)注一階確定性優(yōu)化算法及其收斂性分析。

1 梯度下降法

1.1 算法描述

梯度下降法[1]是最古老的一階方法,由Cauchy在1847年提出。
梯度下降法的基本思想是:最小化目標(biāo)函數(shù)在當(dāng)前迭代點(diǎn)處的一階泰勒展開,從而近似地優(yōu)化目標(biāo)函數(shù)本身。具體地,對(duì)函數(shù)f:Rn→Rf:Rn→Rf:\mathbb{R}^n \rightarrow \mathbb{R},將其在第ttt輪迭代點(diǎn)wtwtw^t處求解下述問(wèn)題:

minwf(w)=minw[f(wt)+?f(wt)T(w?wt)]minwf(w)=minw[f(wt)+?f(wt)T(w?wt)]\underset{w}{\text{min}}f(w) = \underset{w}{\text{min}} \left[ f(w^t) + \nabla f(wt)T (w-w^t) \right]
上式右端關(guān)于自變量www是線性的,并且使得?f(wt)Tw?f(wt)Tw\nabla f(wt)Tw最小的方向與梯度?f(wt)?f(wt)\nabla f(w^t)的方向相反。于是梯度下降法的更新規(guī)則如下:

wt+1=wt?η?f(wt)wt+1=wt?η?f(wt)w^{t+1} = w^t - \eta \nabla f(w^t)
其中η>0η>0\eta>0是步長(zhǎng),也常被稱作學(xué)習(xí)率。

梯度下降法描述如下:

1.2 收斂性分析

針對(duì)不同性質(zhì)的目標(biāo)函數(shù),梯度下降法具有不同的收斂速率。由于梯度下降法只適用于梯度存在的函數(shù)(沒有梯度需要考慮使用次梯度的方法),這里考慮梯度下降法對(duì)于光滑凸函數(shù)和光滑強(qiáng)凸函數(shù)的收斂速率。

光滑凸函數(shù)收斂性 假設(shè)目標(biāo)函數(shù)f:Rd→Rf:Rd→Rf: \mathbb{R}^d \rightarrow \mathbb{R}是凸函數(shù),且ββ\beta-光滑,當(dāng)步長(zhǎng)η=1βη=1β\eta = \frac{1}{\beta}時(shí),梯度下降法具有O(1t)O(1t)\mathcal{O}(\frac{1}{t})的次線性收斂速率

f(wt)?f(w?)?2β∥w0?w?∥2tf(wt)?f(w?)?2β‖w0?w?‖2tf(w^t) - f(w^*) \leqslant \frac{2\beta \lVert w^0 - w*\rVert2}{t}
光滑強(qiáng)凸函數(shù)收斂性 假設(shè)目標(biāo)函數(shù)f:Rd→Rf:Rd→Rf: \mathbb{R}^d \rightarrow \mathbb{R}是αα\alpha-強(qiáng)凸函數(shù),且ββ\beta-光滑,當(dāng)步長(zhǎng)η=1βη=1β\eta = \frac{1}{\beta}時(shí),梯度下降法具有O(e?tQ)O(e?tQ)\mathcal{O}(e^{-\frac{t}{Q}})的線性收斂速率

f(wt)?f(w?)?β2e?tQ∥w0?w?∥2f(wt)?f(w?)?β2e?tQ‖w0?w?‖2f(w^t) - f(w^*) \leqslant \frac{\beta}{2}e^{-\frac{t}{Q}} \lVert w^0 - w*\rVert2
其中Q=βαQ=βαQ = \frac{\beta}{\alpha},一般被稱為條件數(shù)。

通過(guò)以上兩個(gè)定理可知,強(qiáng)凸性質(zhì)會(huì)大大提高梯度下降法的收斂速率。進(jìn)一步地,強(qiáng)凸性質(zhì)越好(即αα\alpha越大),條件數(shù)QQQ越小,收斂越快。

而光滑性質(zhì)在凸和強(qiáng)凸兩種情形下都會(huì)加快梯度下降法的收斂速率,即ββ\beta越小(強(qiáng)凸情景下,條件數(shù)QQQ越小),收斂越快。可以說(shuō)凸情形中的光滑系數(shù)和強(qiáng)凸情形中的條件數(shù)在一定程度上刻畫了優(yōu)化問(wèn)題的難易程度。

2 投影次梯度下降法

2.1 算法描述

梯度下降法有兩個(gè)局限,一是只適用于無(wú)約束優(yōu)化問(wèn)題,二是只適用于梯度存在的目標(biāo)函數(shù)。投影次梯度法[2]可以解決梯度下降法的這兩個(gè)局限性。

投影次梯度下降法相比梯度下降法,具有次梯度選擇約束域投影兩個(gè)特性:

  • 次梯度選擇 選取當(dāng)前迭代點(diǎn)wtwtw^t的次梯度集合?f(wt)?f(wt)\partial f(wt)中隨機(jī)選取一個(gè)次梯度gtgtgt,按照梯度下降更新vt+1=vt?ηgtvt+1=vt?ηgtv^{t+1} = v^t - \eta g^t
    得到vt+1vt+1v^{t+1}。
  • 約束域投影 確定vt+1vt+1v{t+1}是否屬于約束域WW\mathcal{W},如果屬于則直接將其做為wt+1wt+1w{t+1};如果不屬于,則需尋找vt+1vt+1v{t+1}到約束域WW\mathcal{W}的投影,也就是WW\mathcal{W}中離vt+1vt+1v{t+1}最近的點(diǎn)。如下圖所示:

    尋找投影的過(guò)程可以經(jīng)由投影映射ΠW(???)ΠW(???)\Pi_{\mathcal{W}}(\space \cdot \space)來(lái)完成:

wt+1=ΠW(vt+1)=arg minv∈W∥v?vt+1∥wt+1=ΠW(vt+1)=arg minv∈W‖v?vt+1‖\begin{aligned}
w^{t+1} &= \Pi_{\mathcal{W}}(v^{t+1}) \
&= \underset{v\in \mathcal{W}}{\text{arg min}}\lVert v - v^{t+1}\rVert
\end{aligned}
投影次梯度下降法描述如下:

2.2 收斂性分析

在一定步長(zhǎng)的選取規(guī)則下,投影次梯度法是收斂的,并且收斂速度也依賴于目標(biāo)函數(shù)的凸性和光滑性。

對(duì)于ββ\beta-光滑的凸/強(qiáng)凸函數(shù),當(dāng)步長(zhǎng)為1β1β\frac{1}{\beta}時(shí),投影次梯度下降法的收斂率和梯度下降法相同,對(duì)于凸函數(shù)是O(1t)O(1t)\mathcal{O}(\frac{1}{t}),強(qiáng)凸函數(shù)是O(e?tQ)O(e?tQ)\mathcal{O}(e^{-\frac{t}{Q}})。

不過(guò),由于投影次梯度算法適用于有次梯度存在的目標(biāo)函數(shù),因而不僅適用于光滑函數(shù)的優(yōu)化,也適用于Lipschitz連續(xù)函數(shù)的優(yōu)化。對(duì)于Lipschitz連續(xù)函數(shù),投影次梯度下降法收斂。對(duì)于凸函數(shù),步長(zhǎng)η=O(1t√)η=O(1t)\eta = \mathcal{O}(\frac{1}{\sqrt{t}})時(shí),收斂速率為O(1t√)O(1t)\mathcal{O}(\frac{1}{\sqrt{t}});對(duì)于強(qiáng)凸函數(shù),步長(zhǎng)η=O(1t)η=O(1t)\eta = \mathcal{O}(\frac{1}{t})時(shí),收斂速率為O(1t)O(1t)\mathcal{O}(\frac{1}{t})。可以看到其收斂速率在凸和強(qiáng)凸兩種情形相比光滑函數(shù)顯著降低,都是次線性。

3 近端梯度下降法

3.1 算法描述

近端梯度法[3]是投影次梯度法的一種推廣,適用于如下形式的部分不可微的凸目標(biāo)函數(shù)的優(yōu)化問(wèn)題:

minw∈Wf(w)=l(w)+R(w)minw∈Wf(w)=l(w)+R(w)\underset{w \in \mathcal{W}}{\text{min}} f(w) = l(w) + R(w)
其中l(wèi)(w)l(w)l(w)是其中的可微凸函數(shù)部分,R(w)R(w)R(w)是不可微的凸函數(shù)(例如L1L1L_1正則項(xiàng))。算法的基本思想是先按照可微的lll函數(shù)進(jìn)行一步梯度下降更新:

vt+1=wt?ηt?l(wt)vt+1=wt?ηt?l(wt)v^{t+1} = w^t - \eta^t \nabla \mathcal{l}(w^t)
然后再經(jīng)過(guò)近端映射proxR(???)proxR(???)\text{prox}_R(\space \cdot \space)做為本輪最終的迭代更新:

wt+1=proxR(vt+1)=arg minv∈W[R(v)+12∥v?vt+1∥2]wt+1=proxR(vt+1)=arg minv∈W[R(v)+12‖v?vt+1‖2]\begin{aligned}
w^{t+1} &= \text{prox}_{R}(v^{t+1}) \
&= \underset{v\in \mathcal{W}}{\text{arg min}}\left[ R(v) + \frac{1}{2}\lVert v - v{t+1}\rVert2 \right]
\end{aligned}
近端梯度下降法描述如下:

3.2 收斂性分析

如下定理所示,近端梯度下降法可以達(dá)到線性收斂速率。

近端梯度下降法收斂性 假設(shè)目標(biāo)函數(shù)中的lll函數(shù)是RdRd\mathbb{R}d上的αα\alpha-強(qiáng)凸函數(shù),且ββ\beta-光滑;RRR函數(shù)是RdRd\mathbb{R}d上的凸函數(shù), 當(dāng)步長(zhǎng)η=1βη=1β\eta = \frac{1}{\beta}時(shí),近端梯度下降法具有O(e?tQ)O(e?tQ)\mathcal{O}(e^{-\frac{t}{Q}})的線性收斂速率

f(wt)?f(w?)?β2e?tQ∥w0?w?∥2f(wt)?f(w?)?β2e?tQ‖w0?w?‖2f(w^t) - f(w^*) \leqslant \frac{\beta}{2}e^{-\frac{t}{Q}} \lVert w^0 - w*\rVert2
其中Q=βαQ=βαQ = \frac{\beta}{\alpha}為lll函數(shù)的條件數(shù)。

4 Frank-Wolfe算法

4.1 算法描述

Frank-Wolfe算法[4]是投影次梯度下降法的另一個(gè)替代算法。投影次梯度算法雖然適用于有約束優(yōu)化問(wèn)題,但是如果投影的計(jì)算很復(fù)雜,投影次梯度下降的效率將會(huì)稱為瓶頸。為了解決此問(wèn)題,不同于投影次梯度下降法中先進(jìn)行梯度下降再對(duì)約束域進(jìn)行投影的做法,Frank-Wolfe算法在最小化目標(biāo)函數(shù)的泰勒展開時(shí)就將約束條件考慮進(jìn)去,直接得到滿足約束的近似最小點(diǎn),即:

vt=argminv∈W[f(wt)+?f(wt)T(v?wt)]=argminv∈W?f(wt)Tvvt=argminv∈W[f(wt)+?f(wt)T(v?wt)]=argminv∈W?f(wt)Tv\begin{aligned}
v^t & = \text{argmin}_{v\in\mathcal{W}}\left[ f(w^t) + \nabla f(wt)T(v - w^t) \right]\
& = \text{argmin}_{v\in \mathcal{W}} \nabla f(wt)Tv
\end{aligned}
為了使算法的解更穩(wěn)定,Frank-Wolfe算法將求解上述子問(wèn)題得到的vtvtvt與當(dāng)前狀態(tài)wtwtwt做線性加權(quán):

wt+1=(1?γt)wt+γtvtwt+1=(1?γt)wt+γtvtw^{t+1} = (1-\gammat)wt + \gammatvt
如下圖所示:

\

Frank-Wolfe算法描述如下:

4.2 收斂性分析

Frank-Wolfe算法收斂速率如下列定理所示:

Frank-Wolfe法收斂性 假設(shè)目標(biāo)函數(shù)中的fff函數(shù)是RdRd\mathbb{R}d上的凸函數(shù),且ββ\beta-光滑,當(dāng)加權(quán)系數(shù)γt=2t+1γt=2t+1\gammat = \frac{2}{t+1}時(shí),Frank-Wolfe算法具有O(1t)O(1t)\mathcal{O}(\frac{1}{t})的次線性收斂速率

f(wt)?f(w?)?2βD2tf(wt)?f(w?)?2βD2tf(w^t) - f(w^*) \leqslant \frac{2\beta D^2}{t}
其中D=supw,v∈W∥w?v∥D=supw,v∈W‖w?v‖D = \underset{w, v \in \mathcal{W}}{\text{sup}}\lVert w - v \rVert。
由于Frank-Wolfe算法的收斂速率和投影次梯度下降法相同,可以依據(jù)要解決問(wèn)題中的投影計(jì)算是否困難,在兩種算法中選擇一種使用。

5 Nesterov加速法

5.1 算法描述

考慮以上所有的一階算法。在Lipschitz連續(xù)的條件下,梯度下降法達(dá)到了一階算法的收斂速率下界。然而對(duì)于光滑函數(shù),一階方法的收斂速率的下界小于梯度下降法的收斂速率。一階方法在凸情形下的收斂率下界為O(1t2)O(1t2)\mathcal{O}(\frac{1}{t2}),強(qiáng)凸情形下的下界為O(e?tQ√)O(e?tQ)\mathcal{O}(e{-\frac{t}{\sqrt{Q}}});而梯度下降法在凸情形下的收斂率為O(1t)O(1t)\mathcal{O}(\frac{1}{t}),強(qiáng)凸情形下的收斂率為O(e?tQ)O(e?tQ)\mathcal{O}(e^{-\frac{t}{Q}})。這說(shuō)明我們可以針對(duì)光滑函數(shù)設(shè)計(jì)收斂速率更快的一階方法。

Nesterov在1983年對(duì)光滑度目標(biāo)函數(shù)提出了加快一階優(yōu)化算法收斂的方法[5]。我們這里以梯度下降法為例,介紹Nesterov加速法的具體實(shí)現(xiàn)。
Nesterov算法的基本原理如下圖所示:

\

當(dāng)任意時(shí)刻ttt,對(duì)當(dāng)前狀態(tài)wtwtwt進(jìn)行一步梯度迭代得到輔助變量vt+1vt+1v{t+1}:

vt+1=wt?ηt?f(wt)wt+1vt+1=wt?ηt?f(wt)wt+1v^{t+1} = w^t - \eta^t \nabla f(w^t)
w^{t+1}
然后將新的輔助變量和上一輪迭代計(jì)算的輔助變量vtvtvt做線性加權(quán),做為第t+1t+1t+1輪迭代的參數(shù)wt+1wt+1w{t+1}。對(duì)于凸和強(qiáng)凸的目標(biāo)函數(shù),線性加權(quán)系數(shù)有所不同。

具體地,對(duì)于強(qiáng)凸的目標(biāo)函數(shù),加權(quán)規(guī)則如下:

wt+1=(1+γt)vt+1?γtvtwt+1=(1+γt)vt+1?γtvtw^{t+1} = (1 + \gammat)v{t+1} - \gamma^t v^t
其中γt=1?Q√1+Q√γt=1?Q1+Q\gamma^t = \frac{1-\sqrt{Q}}{1 + \sqrt{Q}},QQQ為條件數(shù)。

對(duì)于凸的目標(biāo)函數(shù),加權(quán)規(guī)則如下:

wt+1=(1?γt)vt+1+γtvtwt+1=(1?γt)vt+1+γtvtw^{t+1} = (1 - \gammat)v{t+1} + \gamma^t v^t
其中γt=1?λtλt+1γt=1?λtλt+1\gamma^t = \frac{1 - \lambdat}{\lambda{t+1}},λ0=0λ0=0\lambda^0 = 0, λt=1+1+4(λt?1)2√2λt=1+1+4(λt?1)22\lambda^t = \frac{1 + \sqrt{1 + 4{(\lambda{t-1})}2}}{2}。

Nesterov加速算法描述如下:

5.2 收斂性分析

Nesterov證明了用以上方法加速之后的梯度下降法的收斂速率可以達(dá)到針對(duì)光滑目標(biāo)函數(shù)的一階方法的收斂速率下界:

光滑凸函數(shù)收斂性 假設(shè)目標(biāo)函數(shù)f:Rd→Rf:Rd→Rf: \mathbb{R}^d \rightarrow \mathbb{R}是凸函數(shù),并且ββ\beta-光滑,當(dāng)步長(zhǎng)η=1βη=1β\eta = \frac{1}{\beta}時(shí),Nesterov加速法能夠?qū)⑹諗克俾侍岣叩絆(1t2)O(1t2)\mathcal{O}({\frac{1}{t^2}})(不過(guò)仍是次線性收斂速率):

f(wt)?f(w?)?2β∥w0?w?∥2t2f(wt)?f(w?)?2β‖w0?w?‖2t2f(w^t) - f(w^*) \leqslant \frac{2\beta \lVert w^0 - w*\rVert2}{t^2}
光滑強(qiáng)凸函數(shù)收斂性 假設(shè)目標(biāo)函數(shù)f:Rd→Rf:Rd→Rf: \mathbb{R}^d \rightarrow \mathbb{R}是αα\alpha-強(qiáng)凸函數(shù),并且ββ\beta-光滑,當(dāng)步長(zhǎng)η=1βη=1β\eta = \frac{1}{\beta}時(shí),Nesterov加速法能夠?qū)⑹諗克俾侍岣叩絜?tQ√e?tQ\mathcal{e^{-\frac{t}{\sqrt{Q}}}}(不過(guò)仍是線性收斂速率):

f(wt)?f(w?)?α+β2e?tQ√∥w0?w?∥2f(wt)?f(w?)?α+β2e?tQ‖w0?w?‖2f(w^t) - f(w^*) \leqslant \frac{\alpha + \beta}{2}e^{-\frac{t}{\sqrt{Q}}} \lVert w^0 - w*\rVert2
其中Q=βαQ=βαQ = \frac{\beta}{\alpha}為條件數(shù)。

6 坐標(biāo)下降法

6.1 算法描述

坐標(biāo)下降法[6]是另外一種常見的最小化實(shí)值函數(shù)的方法。其基本思想是,在迭代的每一步,算法選擇一個(gè)維度,并更新這一維度,其它維度的參數(shù)保持不變;或者將維度分為多個(gè)塊,每次只更新某塊中的維度,其它維度保持不變。坐標(biāo)下降法的更新公式如下:

wt+1j=arg minz∈Wjf(wt1,…,wtj?1,z,wtj+1,…,wtd)wjt+1=arg minz∈Wjf(w1t,…,wj?1t,z,wj+1t,…,wdt)w^{t+1}_j = \underset{z\in \mathcal{W}_j}{\text{arg min}}f(wt_1,…,wt_{j-1}, z, wt_{j+1},…,wt_d)
其中,WjWj\mathcal{W}_j為第jjj個(gè)維度塊的約束域。

對(duì)于維度的選擇,坐標(biāo)下降法一般遵循以下本征循環(huán)選擇規(guī)則(Essential Cyclic Rule):存在一個(gè)常數(shù)r?dr?dr\geqslant d,使得對(duì)任意的sss,對(duì)于每一個(gè)維度jjj,在第sss輪和第s+r?1s+r?1s + r - 1輪之間都至少選擇一次。最常見的方法是循環(huán)選擇規(guī)則,即對(duì)于任意j=1,…,dj=1,…,dj=1,…,d,分別在第j,d+j,2d+j,…j,d+j,2d+j,…j, d + j, 2d + j,…次算法迭代中選擇維度jjj(即每隔ddd輪選擇一次)。

坐標(biāo)下降法的算法描述如下所示:

6.2 收斂性分析

可以證明對(duì)于強(qiáng)凸并且光滑的目標(biāo)函數(shù),循環(huán)坐標(biāo)下降法具有線性的收斂速率[6]。

參考

  • [1] Cauchy A. Méthode générale pour la résolution des systemes d’équations simultanées[J]. Comp. Rend. Sci. Paris, 1847, 25(1847): 536-538.

  • [2]
    Levitin E S, Polyak B T. Constrained minimization methods[J]. USSR Computational mathematics and mathematical physics, 1966, 6(5): 1-50.

  • [3] Parikh N, Boyd S. Proximal algorithms[J]. Foundations and Trends in optimization, 2014, 1(3): 127-239.

  • [4] Frank M, Wolfe P. An algorithm for quadratic programming[J]. Naval research logistics quarterly, 1956, 3(1‐2): 95-110.

  • [5] Nesterov Y E. A method for solving the convex programming problem with convergence rate O (1/k^ 2)[C]//Dokl. akad. nauk Sssr. 1983, 269: 543-547.

  • [6]
    Wright S J. Coordinate descent algorithms[J]. Mathematical Programming, 2015, 151(1): 3-34.

    • 1 梯度下降法
  • 1.1 算法描述

  • 1.2 收斂性分析

  • 2 投影次梯度下降法

  • 2.1 算法描述

  • 2.2 收斂性分析

  • 3 近端梯度下降法

  • 3.1 算法描述

  • 3.2 收斂性分析

  • 4 Frank-Wolfe算法

  • 4.1 算法描述

  • 4.2 收斂性分析

  • 5 Nesterov加速法

  • 5.1 算法描述

  • 5.2 收斂性分析

  • 6 坐標(biāo)下降法

  • 6.1 算法描述

  • 6.2 收斂性分析

  • 參考

    __EOF__

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-Wd9NuL9B-1655009379066)(https://blog.csdn.net/orion-orion)]獵戶座 - 本文鏈接: https://blog.csdn.net/orion-orion/p/16367015.html

  • 關(guān)于博主: 本科CS系蒟蒻,機(jī)器學(xué)習(xí)半吊子,并行計(jì)算混子。
  • 版權(quán)聲明: 歡迎您對(duì)我的文章進(jìn)行轉(zhuǎn)載,但請(qǐng)務(wù)必保留原始出處哦()。
  • 聲援博主: 如果您覺得文章對(duì)您有幫助,可以點(diǎn)擊文章右下角**【[推薦](javascript:void(0)😉】**一下。

總結(jié)

以上是生活随笔為你收集整理的数值优化:经典一阶确定性算法及其收敛性分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。