梯度下降法
描述
梯度下降法的描述。
梯度下降方法基于以下的觀察:如果實(shí)值函數(shù)F(x){\displaystyle F(\mathbf {x} )}在點(diǎn)a{\displaystyle \mathbf {a} }處可微且有定義,那么函數(shù)F(x){\displaystyle F(\mathbf {x} )}在a{\displaystyle \mathbf {a} }點(diǎn)沿著梯度相反的方向 ? ? -->? ? -->F(a){\displaystyle -\nabla F(\mathbf {a} )} 下降最快。
因而,如果
對(duì)于γ γ -->>0{\displaystyle \gamma >0}為一個(gè)夠小數(shù)值時(shí)成立,那么F(a)≥ ≥ -->F(b){\displaystyle F(\mathbf {a} )\geq F(\mathbf )}。
考慮到這一點(diǎn),我們可以從函數(shù)F{\displaystyle F}的局部極小值的初始估計(jì)x0{\displaystyle \mathbf {x} _{0}}出發(fā),并考慮如下序列 x0,x1,x2,… … -->{\displaystyle \mathbf {x} _{0},\mathbf {x} _{1},\mathbf {x} _{2},\dots }使得
因此可得到
如果順利的話序列(xn){\displaystyle (\mathbf {x} _{n})}收斂到期望的極值。注意每次迭代步長γ γ -->{\displaystyle \gamma }可以改變。
右側(cè)的圖片示例了這一過程,這里假設(shè)F{\displaystyle F}定義在平面上,并且函數(shù)圖像是一個(gè)碗形。藍(lán)色的曲線是等高線(水平集),即函數(shù)F{\displaystyle F}為常數(shù)的集合構(gòu)成的曲線。紅色的箭頭指向該點(diǎn)梯度的反方向。(一點(diǎn)處的梯度方向與通過該點(diǎn)的等高線垂直)。沿著梯度下降方向,將最終到達(dá)碗底,即函數(shù)F{\displaystyle F}值最小的點(diǎn)。
例子
梯度下降法處理一些復(fù)雜的非線性函數(shù)會(huì)出現(xiàn)問題,例如Rosenbrock函數(shù)
其最小值在(x,y)=(1,1){\displaystyle (x,y)=(1,1)}處,數(shù)值為f(x,y)=0{\displaystyle f(x,y)=0}。但是此函數(shù)具有狹窄彎曲的山谷,最小值(x,y)=(1,1){\displaystyle (x,y)=(1,1)}就在這些山谷之中,并且谷底很平。優(yōu)化過程是之字形的向極小值點(diǎn)靠近,速度非常緩慢。
下面這個(gè)例子也鮮明的示例了"之字"的上升(非下降),這個(gè)例子用梯度上升(非梯度下降)法求F(x,y)=sin? ? -->(12x2? ? -->14y2+3)cos? ? -->(2x+1? ? -->ey){\displaystyle F(x,y)=\sin \left({\frac {1}{2}}x^{2}-{\frac {1}{4}}y^{2}+3\right)\cos(2x+1-e^{y})}的極大值(非極小值,實(shí)際是局部極大值)。
缺點(diǎn)
梯度下降法的缺點(diǎn)包括:
靠近極小值時(shí)速度減慢。
直線搜索可能會(huì)產(chǎn)生一些問題。
可能會(huì)“之字型”地下降。
上述例子也已體現(xiàn)出了這些缺點(diǎn)。
參閱
參考文獻(xiàn)
Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
Jan A. Snyman (2005). Practical Mathematical Optimization: An Introduction to Basic Optimization Theory and Classical and New Gradient-Based Algorithms. Springer Publishing. ISBN 0-387-24348-8
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
相關(guān)資料
展開- 有價(jià)值
- 一般般
- 沒價(jià)值
{{item.userName}} 舉報(bào)
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評(píng)論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報(bào)
{{_reply.time}}