1. 程式人生 > >梯度下降算法對比(批量下降/隨機下降/mini-batch)

梯度下降算法對比(批量下降/隨機下降/mini-batch)

梯度下降 sof png 一個 desc height 批量 分享 des

大規模機器學習:

技術分享圖片

技術分享圖片

線性回歸的梯度下降算法:Batch gradient descent(每次更新使用全部的訓練樣本)

技術分享圖片

批量梯度下降算法(Batch gradient descent):

每計算一次梯度會遍歷全部的訓練樣本,如果訓練樣本的比較多時,內存消耗過大。

技術分享圖片

技術分享圖片

隨機梯度下降算法:

1、 首先將隨機打亂的訓練樣本數據

2、 外循環:(一般2—10次即可,若內循環中次數100000以上,則一次即可)

內循環:遍歷所有的訓練樣本,每次梯度下降時使用一個樣本計算梯度。

與批量梯度像算法相比,其下降曲線不停,圖中右側紅色表示批量梯度下降算法,洋紅表示隨機梯度下降算法。

技術分享圖片

Mini-Batch梯度下降算法

1、 設置每次遍歷的樣本數b

2、 外循環:

內循環:遍歷所有的樣本,每b個樣本更新一次梯度

技術分享圖片

技術分享圖片

對比:

批量下降:每次梯度更新使用全部的樣本

隨機下將:每次梯度更新使用1個樣本

Mini-batch:每次梯度更新使用b個樣本,b>1,小於全部的樣本數。

技術分享圖片

隨機梯度下降算法的收斂:

1、 在更新梯度前計算損失函數:

2、 比如:繪制損失函數的曲線每1000個樣本

技術分享圖片

技術分享圖片

梯度下降算法對比(批量下降/隨機下降/mini-batch)