一、梯度gradient
http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6
在標量場f中的一點處存在一個矢量G,該矢量方向為f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則矢量G稱為標量場f的梯度。
標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。
更嚴格的說,從歐氏空間Rn到R的函數的梯度是在Rn某一點最佳的線性近似。在這個意義上,梯度是雅戈比矩陣的一個特殊情況。
在單變量的實值函數的情況,梯度只是導數,或者,對於一個線性函數,也就是線的斜率。
梯度一詞有時用於斜度,也就是一個曲面沿着給定方向的傾斜程度。
一個標量函數的梯度記為:
或
, 其中
(nabla)表示矢量微分算子。
二、梯度下降法
http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95
梯度下降法,基於這樣的觀察:
如果實值函數 在點
處可微且有定義,那么函數
在
點沿着梯度相反的方向
下降最快。因而,如果
對於 為一個夠小數值時成立,那么
。
是向量。
考慮到這一點,我們可以從函數 的局部極小值的初始估計
出發,並考慮如下序列
使得
因此可得到
如果順利的話序列 收斂到期望的極值。注意每次迭代步長
可以改變。
梯度下降法的缺點是:
- 靠近極小值時速度減慢。
- 直線搜索可能會產生一些問題。
- 可能會'之字型'地下降。
三、隨機梯度下降法stochastic gradient descent,也叫增量梯度下降
由於梯度下降法收斂速度慢,而隨機梯度下降法會快很多
–根據某個單獨樣例的誤差增量計算權值更新,得到近似的梯度下降搜索(隨機取一個樣例)
–可以看作為每個單獨的訓練樣例定義不同的誤差函數
–在迭代所有訓練樣例時,這些權值更新的序列給出了對於原來誤差函數的梯度下降的一個合理近似
–通過使下降速率的值足夠小,可以使隨機梯度下降以任意程度接近於真實梯度下降
•標准梯度下降和隨機梯度下降之間的關鍵區別
–標准梯度下降是在權值更新前對所有樣例匯總誤差,而隨機梯度下降的權值是通過考查某個訓練樣例來更新的
–在標准梯度下降中,權值更新的每一步對多個樣例求和,需要更多的計算
–標准梯度下降,由於使用真正的梯度,標准梯度下降對於每一次權值更新經常使用比隨機梯度下降大的步長
–如果標准誤差曲面有多個局部極小值,隨機梯度下降有時可能避免陷入這些局部極小值中