Armijo-Goldstein法则和Wolfe-power法则图解
本文是對[4]進行更進一步的詳解.
Armijo-Goldstein法則和wolfe-power法則用于steepest descent算法,并不用于gradient descent算法.
######################先說Armijo-Goldstein法則#############################################
Armijo-Goldstein法則出自文獻[3]
Armijo-Goldstein法則描述如下:
ρgkT≥f(xk+sk)?f(xk)sk≥(1?ρ)gkT①\rho g_k^T≥\frac{f(x_k+s_k)-f(x_k)}{s_k}≥(1-\rho)g_k^T①ρgkT?≥sk?f(xk?+sk?)?f(xk?)?≥(1?ρ)gkT?①
其中sk=αdks_k=\alpha d_ksk?=αdk?
dkd_kdk?是常數
先說目標:
這個法則的目標是獲得sks_ksk?里面的系數α\alphaα,這個α\alphaα就是機器學習里面常說的學習率
也就是說,steepest descent和gradient descent的區別是,
steepest descent里面用到Armijo-Goldstein或者wolfe-power就是為了獲取一個動態變化的α\alphaα
先說說這個ρ\rhoρ是怎么冒出來的,首先:
f′(xk)=limsk?>0f(xk+sk)?f(xk)skf'(x_k)=lim_{s_k->0}\frac{f(x_k+s_k)-f(x_k)}{s_k}f′(xk?)=limsk??>0?sk?f(xk?+sk?)?f(xk?)?
我們希望下一次迭代得到的函數值f(xk+sk)f(x_k+s_k)f(xk?+sk?)更加小一點,小到什么程度呢?
作者腦袋一拍在當前的xkx_kxk?的導數gkTg_k^TgkT?乘以一個系數ρ\rhoρ,這樣不就變小了么?
這更加小一點的地方有啥特點呢?
觀察得到斜率變大了,問題是要變多大呢?太大or太小都不好
根據圖中可以知道gkTg_k^TgkT?是小于零的,那么式①兩側同除以一個因子gkTg_k^TgkT?,
因為這個因子是負數,所以不等式兩遍除以一個負數要變符號,
得到ρ≤(1?ρ)?ρ∈(0,0.5)\rho≤(1-\rho)?\rho∈(0,0.5)ρ≤(1?ρ)?ρ∈(0,0.5)
如果不滿足這個區間,[2]提到會影響超線性收斂性,摘錄如下:
超線性收斂咋回事見本文末尾,具體為啥會導致超線性收斂,[2]書中并沒有給出相關證明.
再次引用[2]書中的一個圖:
注意,這個圖中的虛線都是代表斜率,并非代表實際的某種線條.
好了,我們會發現,[4]中分析了一大堆,都在說一件事兒,當前為xkx_kxk?時,根據當前得到的斜率gkTg_k^TgkT?,我們希望滿足①來得到α\alphaα
得到α\alphaα以后計算f(xk+αdk)f(x_k+\alpha d_k)f(xk?+αdk?),讓f(xk+αdk)f(x_k+\alpha d_k)f(xk?+αdk?)的數值落入上面的bc區.
matlab代碼來自[5]:
新建文件Opt_Goldstein.m
運行方法是,在matlab命令行輸入:
[lam, newxk, fk, newfk]=Opt_Goldstein(0,1)
即可得到lam,這里的lam就是上面的分析中提到的動態學習率α\alphaα
然后把這個學習率代入到你們所熟悉的各種算法,例如擬牛頓法里面,就能用來求解函數的極值了.
###################再說說Wolfe-power法則(略寫)#######################
Wolfe-power法則是把限制區間設定為e右邊的區間
強Wolfe-power法則是把限制區間設定為[e,b)
類似于Armijo-Goldstein法則,Wolfe-power法則也是通過概率限制下一步迭代時的可能的函數值.
###############################附錄############################################
超線性收斂摘自[1]:
意思很簡單,超線性收斂就是比我們高數課本上的收斂情況收斂更快,這樣的收斂就叫超線性收斂
[2]中只是提及,并沒有證明這個范圍:
Reference:
[1]Math concepts / 數學概念
[2]《最優化理論與方法》-袁亞湘
[3]Cauchy’s method of minimization
[4]用“人話”解釋不精確線搜索中的Armijo-Goldstein準則及Wolfe-Powell準則
[5]學習手記——線搜索Goldstein準則
總結
以上是生活随笔為你收集整理的Armijo-Goldstein法则和Wolfe-power法则图解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 网络】IP校验和计算相关
- 下一篇: 中国农村社会分析