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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数值计算之 线搜索法,Armijo,Wolfe,Goldstein条件,回溯法

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数值计算之 线搜索法,Armijo,Wolfe,Goldstein条件,回溯法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)值計(jì)算之 線搜索法,Wolfe conditions

  • 前言
  • 梯度法的步長(zhǎng)
  • 線搜索法
  • 非精確線搜索法
    • Armijo條件
    • Wolfe條件
    • Goldstein條件
  • 回溯法
  • 后記

前言

本篇是基于梯度的優(yōu)化方法的補(bǔ)充篇

梯度法的步長(zhǎng)

梯度下降法、牛頓法、擬牛頓法的主要目的都是求出增量方向。求出增量方向后,如果使用固定步長(zhǎng)進(jìn)行更新,當(dāng)步長(zhǎng)太大導(dǎo)致優(yōu)化函數(shù)與其泰勒展開偏差太大時(shí),可能出現(xiàn)優(yōu)化函數(shù)不降反增的情況,導(dǎo)致迭代不收斂。

因此在獲得增量方向后,還需要確定迭代的步長(zhǎng)。常用的方法是線搜索法。

線搜索法

線搜索法在求出優(yōu)化函數(shù)f(x)f(\bf x)f(x)xk\bf x_kxk?的增量方向后,構(gòu)建以下問題:
min?α?(α)=f(xk+αpk)\min_{\alpha} \quad \phi(\alpha)=f({\bf x_k}+\alpha {\bf p_k}) αmin??(α)=f(xk?+αpk?)

構(gòu)造的函數(shù)是一元函數(shù),其極值點(diǎn)處的導(dǎo)數(shù)為零:
?′(α)=?fT(xk+αpk)pk=0\phi'(\alpha)=\nabla f^T({\bf x_k}+\alpha{\bf p_k}){\bf p_k}=0 ?(α)=?fT(xk?+αpk?)pk?=0
這樣就能獲得步長(zhǎng)的精確解,也就是所謂的精確線搜索方法。但是實(shí)際操作中,如果梯度沒有解析式,那么上面這個(gè)方程的解的計(jì)算是很困難的。

非精確線搜索法

非精確線搜索法不需要找到精確的步長(zhǎng),而是希望找到一個(gè)能夠使優(yōu)化函數(shù)fff穩(wěn)定收斂并且下降速度較快的步長(zhǎng)。此時(shí)的步長(zhǎng)α\alphaα通常存在于一個(gè)或數(shù)個(gè)區(qū)間內(nèi)。

Armijo條件

Armijo條件又被稱為充分下降條件,是使得fff穩(wěn)定收斂的充分條件,也是最簡(jiǎn)單的條件。

如下圖所示,實(shí)線是函數(shù)?(α)=f(xk+αpk)\phi(\alpha)=f({\bf x_k}+\alpha {\bf p_k})?(α)=f(xk?+αpk?)的圖像,虛線l(α)l(\alpha)l(α)表達(dá)式為:
?′(α)=?fT(xk+αpk)pkl(α)=?(0)+c1?′(0)(x?xk),0<c1<1\phi'(\alpha)=\nabla f^T({\bf x_k}+\alpha{\bf p_k}){\bf p_k} \\ \quad \\ l(\alpha)=\phi({0})+c_1\phi'(0)({\bf x-x_k}),0<c_1<1 ?(α)=?fT(xk?+αpk?)pk?l(α)=?(0)+c1??(0)(x?xk?),0<c1?<1
由圖可以看出,當(dāng)實(shí)線在虛線下方時(shí),?(α)≤?(0)\phi({\alpha})\le\phi({0})?(α)?(0),也就是函數(shù)必然下降。

這就是Armijo條件,用表達(dá)式來表示就是:
?(α)≤I(α)→f(xk+αpk)≤f(xk)+c1α?fT(xk)pk\phi(\alpha)\le I(\alpha) \\ \quad \\ \to \quad f({\bf x_k}+\alpha {\bf p_k})\le f({\bf x_k})+c_1\alpha\nabla f^T({\bf x_k}){\bf p_k} ?(α)I(α)f(xk?+αpk?)f(xk?)+c1?α?fT(xk?)pk?

Wolfe條件

Armijo條件有一個(gè)問題:雖然能夠保證梯度下降,但是當(dāng)步長(zhǎng)α\alphaα極小的時(shí)候,必然能夠滿足Armijo條件,但是下降的速度很慢,而且超小的步長(zhǎng)可能導(dǎo)致迭代中的除零錯(cuò)誤(Nan)。我們需要保證迭代的每一步都有充分的下降。


如下圖所示,如果我們限制?′(α)≥c1?′(0)\phi'(\alpha)\ge c_1\phi'(0)?(α)c1??(0),也就是?(α)\phi(\alpha)?(α)的斜率不夠陡,達(dá)到相對(duì)平緩的區(qū)域,就形成了Curvature

將Armijo條件與Curvature條件合并,就是Wolfe條件,其表達(dá)式如下:
f(xk+αpk)≤f(xk)+c1α?fT(xk)pk?fT(xk+αpk)pk≥c2?fT(xk)pk0<c1<c2<1f({\bf x_k}+\alpha {\bf p_k})\le f({\bf x_k})+c_1\alpha\nabla f^T({\bf x_k}){\bf p_k} \\ \quad \\ \nabla f^T({\bf x_k}+\alpha{\bf p_k}){\bf p_k} \ge c_2\nabla f^T({\bf x_k}){\bf p_k} \\ \quad \\ 0<c_1<c_2<1\\ f(xk?+αpk?)f(xk?)+c1?α?fT(xk?)pk??fT(xk?+αpk?)pk?c2??fT(xk?)pk?0<c1?<c2?<1
Wolfe條件如下圖所示:

Goldstein條件

Wolfe條件需要求優(yōu)化函數(shù)的梯度,比較麻煩。于是出現(xiàn)了只需要求優(yōu)化函數(shù)值的Goldstein條件:
f(xk)+(1?c1)α?fT(xk)pk≤f(xk+αpk)≤f(xk)+c1α?fT(xk)pk0<c1<0.5f({\bf x_k})+(1-c_1)\alpha\nabla f^T({\bf x_k}){\bf p_k} \le f({\bf x_k}+\alpha {\bf p_k})\le f({\bf x_k})+c_1\alpha\nabla f^T({\bf x_k}){\bf p_k} \\ 0<c_1<0.5 f(xk?)+(1?c1?)α?fT(xk?)pk?f(xk?+αpk?)f(xk?)+c1?α?fT(xk?)pk?0<c1?<0.5
Goldstein條件的左邊使得步長(zhǎng)不會(huì)太小,右邊保證梯度下降,但是可能出現(xiàn)找不到最優(yōu)步長(zhǎng)的情況,如下圖所示。

回溯法

由于Wolfe條件實(shí)現(xiàn)復(fù)雜,實(shí)際使用中,可以采用回溯法實(shí)現(xiàn)Armijo條件或者Goldstein條件,具體流程是:

  • 選擇一個(gè)初始步長(zhǎng)α0\alpha_0α0?,和一個(gè)縮小系數(shù)ρ<1\rho<1ρ<1
  • α0\alpha_0α0?代入Armijo條件或者Goldstein條件
  • 如果滿足,則α=α0\alpha=\alpha_0α=α0?,結(jié)束線搜索;否則,α0=ρα0\alpha_0=\rho \alpha_0α0?=ρα0?,回到步驟2
  • 當(dāng)初始α0\alpha_0α0?比較大時(shí),回溯法搜索到的步長(zhǎng)就不會(huì)太小。

    后記

    下篇可能會(huì)繼續(xù)學(xué)習(xí)共軛梯度法。

    總結(jié)

    以上是生活随笔為你收集整理的数值计算之 线搜索法,Armijo,Wolfe,Goldstein条件,回溯法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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