【stanford】梯度、梯度降低,隨機梯度降低

1、梯度gradient函數

http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6post

在標量場f中的一點處存在一個矢量G,該矢量方向爲f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則矢量G稱爲標量場f的梯度。htm

向量微積分中,標量場的梯度是一個向量場blog

標量場中某一點上的梯度指向標量場增加最快的方向,梯度的長度是這個最大的變化率。ip

更嚴格的說,從歐氏空間Rn到R的函數的梯度是在Rn某一點最佳的線性近似。在這個意義上,梯度是雅戈比矩陣的一個特殊狀況。get

在單變量的實值函數的狀況,梯度只是導數,或者,對於一個線性函數,也就是線的斜率it

梯度一詞有時用於斜度,也就是一個曲面沿着給定方向的傾斜程度。ast

一個標量函數\varphi的梯度記爲:\nabla \varphi\rm grad \varphi, 其中\nablanabla)表示矢量微分算子class

 

2、梯度降低法變量

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

梯度降低法,基於這樣的觀察:

若是實值函數 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})

\mathbf{a} 是向量。

考慮到這一點,咱們能夠從函數 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 能夠改變。

 

梯度降低法的缺點是:

  • 靠近極小值時速度減慢。
  • 直線搜索可能會產生一些問題。
  • 可能會'之字型'地降低。

 

3、隨機梯度降低法stochastic gradient descent,也叫增量梯度降低

因爲梯度降低法收斂速度慢,而隨機梯度降低法會快不少

–根據某個單獨樣例的偏差增量計算權值更新,獲得近似的梯度降低搜索(隨機取一個樣例)

–能夠看做爲每一個單獨的訓練樣例定義不一樣的偏差函數

–在迭代全部訓練樣例時,這些權值更新的序列給出了對於原來偏差函數的梯度降低的一個合理近似

–經過使降低速率的值足夠小,可使隨機梯度降低以任意程度接近於真實梯度降低

•標準梯度降低和隨機梯度降低之間的關鍵區別

–標準梯度降低是在權值更新前對全部樣例彙總偏差,而隨機梯度降低的權值是經過考查某個訓練樣例來更新的

–在標準梯度降低中,權值更新的每一步對多個樣例求和,須要更多的計算

–標準梯度降低,因爲使用真正的梯度,標準梯度降低對於每一次權值更新常常使用比隨機梯度降低大的步長

–若是標準偏差曲面有多個局部極小值,隨機梯度降低有時可能避免陷入這些局部極小值中