梯度下降法


  從wiki上面摘錄下來

http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95

  這個方法的作用是, 通過迭代, 迅速取得F(\mathbf{x})的最小值所在的坐標, 這樣就可以作為一些懲罰函數的優化方法

  梯度下降法,基於這樣的觀察:如果實值函數 F(\mathbf{x}) 在點 \mathbf{a} 處可微且有定義,那么函數 F(\mathbf{x})在 \mathbf{a} 點沿着梯度相反的方向 -\nabla F(\mathbf{a}) 下降最快。

因而,如果

\mathbf{b}=\mathbf{a}-\gamma\nabla F(\mathbf{a})

對於 \gamma>0 為一個夠小數值時成立,那么 F(\mathbf{a})\geq F(\mathbf{b})

考慮到這一點,我們可以從函數 F 的局部極小值的初始估計 \mathbf{x}_0 出發,並考慮如下序列 \mathbf{x}_0, \mathbf{x}_1, \mathbf{x}_2, \dots 使得

\mathbf{x}_{n+1}=\mathbf{x}_n-\gamma_n \nabla F(\mathbf{x}_n),\ n \ge 0.

因此可得到

F(\mathbf{x}_0)\ge F(\mathbf{x}_1)\ge F(\mathbf{x}_2)\ge \cdots,

如果順利的話序列 (\mathbf{x}_n) 收斂到期望的極值。注意每次迭代步長 \gamma 可以改變。

下側的圖片示例了這一過程,這里假設 F 定義在平面上,並且函數圖像是一個碗形。藍色的曲線是等高線(水平集),即函數 F 為常數的集合構成的曲線。紅色的箭頭指向該點梯度的反方向。(一點處的梯度方向與通過該點的等高線垂直)。沿着梯度下降方向,將最終到達碗底,即函數 F 值最小的點。

 

  之所以學到這個算法, 是因為模式識別中的感知器算法, 應用了這個方法去獲得最快收斂到最小值的懲罰函數

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM