梯度降低法和隨機梯度降低法

(1)梯度降低法算法

在迭代問題中,每一次更新w的值,更新的增量爲ηv,其中η表示的是步長,v表示的是方向函數

要尋找目標函數曲線的波谷,採用貪心法:想象一個小人站在半山腰,他朝哪一個方向跨一步,可使他距離谷底更近(位置更低),就朝這個方向前進。這個方向能夠經過微分獲得。選擇足夠小的一段曲線,能夠將這段看作直線段,那麼有:優化

 

其中η表示的是步長,v表示的是方向,而梯度降低的精髓是:spa

經過上邊的例子能夠看出,只要找到了後邊這項的最小值便可,所以當vT與Δ的方向相反時,該值最小,所以,最優的V的值的求法以下:3d

顯然上邊解決了方向問題,可是還存在步長問題,步子過小的話,速度太慢;過大的話,容易發生抖動,可能到不了谷底。xml

解決方案:距離谷底較遠(位置較高)時,步幅大些比較好;接近谷底時,步幅小些比較好(以避免跨過界)。距離谷底的遠近能夠經過梯度(斜率)的數值大小間接反映,接近谷底時,坡度會減少。設置步幅與梯度數值大小正相關。blog

 

根據上邊優化完成的梯度降低算法,能夠獲得完整的Logistic Regression Algorithm:it

 

 

值得注意的是,梯度降低法,須要同時更新θ1,θ2,...,θn,的值io

 

(2)隨機梯度降低法class

傳統的隨機梯度降低更新方法:

問題:每次更新都須要遍歷全部data,當數據量太大或者一次沒法獲取所有數據時,這種方法並不可行。
解決這個問題基本思路是:只經過一個隨機選取的數據(xn,yn) 來獲取「梯度」,以此對w 進行更新。這種優化方法叫作隨機梯度降低。

 


 

 關於梯度降低法的幾點說明:

對於n》=1的梯度降低規則,n表示的是特徵的數目

參考自:http://studyai.site/2016/07/29/%E6%96%AF%E5%9D%A6%E7%A6%8F%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%AF%BE%E7%A8%8B%20%E7%AC%AC%E4%BA%8C%E5%91%A8%20(2)%E5%A4%9A%E5%85%83%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%88%86%E6%9E%90/

相關文章
相關標籤/搜索