天天看點

梯度下降 和反向傳播推導(公式)

1、訓練算法幾乎都是使用梯度來使得代價函數下降,大多數都是對随機梯度下降算法的改進。

目标函數

梯度下降 和反向傳播推導(公式)

關于

梯度下降 和反向傳播推導(公式)

的梯度是目标函數上升最快的方向。那麼對于最優化問題,隻需要将參數沿着梯度相反的方向前進一步就可以實作目标函數的下降,這個步長又稱為學習率

梯度下降 和反向傳播推導(公式)

,更新的公式如下:

梯度下降 和反向傳播推導(公式)

。梯度下降可以根據資料集的不同分為批量梯度下降、随機梯度下降和小批量梯度下降。其中,批量梯度下降

梯度下降 和反向傳播推導(公式)

是在整個訓練集上計算的,如果資料集比較大,可能會面臨着記憶體不足的問題,收斂速度會比較慢。随機梯度下降是另外一個極端,

梯度下降 和反向傳播推導(公式)

是針對訓練集中一個樣本計算的,又稱為“線上學習”,也就是說得到一個樣本,就可以執行一次參數更新,是以收斂速度會快一些,但是有可能出現目标函數值震蕩現象,因為高頻率的參數更新導緻了高方差。小批量梯度下降算法是折中的方案,選取一個相對較小的訓練集中的一個批量計算

梯度下降 和反向傳播推導(公式)

,這樣保證在訓練過程中更加穩定,并且也可以利用矩陣的優勢。

 拓展知識:(由于梯度下降方法并不能保證達到全局最優,但是對于凸優化問題,理論上是可以到達全局最優的,因為這時隻有唯一的一個局部最優點,但是深度模型非常複雜,一般輸入非凸問題,則意味着有很多就局部最優點。優于梯度下降算法中一個重要的參數是學習率。理想的梯度下降方法的特點:收斂速度快,能全局收斂。)為了達到最理想的梯度下降算法,有很多其變種。

1)Momentum optimization

沖量梯度下降法的更新方程如下:

梯度下降 和反向傳播推導(公式)

,當參數更新時不僅僅要考慮目前的梯度值,還要加上一個累積沖量。而且多了個超參數

梯度下降 和反向傳播推導(公式)

,其值一般取接近1,如0.9,0.99等。

梯度下降 和反向傳播推導(公式)

2、反向傳播backprop允許來自己代價函數的資訊通過網絡向後流動,以便計算梯度。實際上反向傳播僅指計算梯度的方法,另一種方法:如随機梯度下降,使用梯度進行學習。

3、微積分中的鍊式法則用于計算複合函數的倒數。反向傳播是一種計算鍊式法則的算法。可以将反向傳播用于任意次元的張量,其操作是與對向量的操作是完全一樣的。隻是對張量操作時,需要先将張量變平為一個向量,然後再計算向量值的梯度,然後将張量重新構成一個張量。

4、反向傳播公式推導:

梯度下降 和反向傳播推導(公式)
梯度下降 和反向傳播推導(公式)
梯度下降 和反向傳播推導(公式)