大規模機器學習:
線性回歸的梯度下降算法: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個樣本