SGD、GD和Mini-batch GD的區別


機器學習很大程度上依賴於最佳化演算法,因為它們有助於改變模型的引數以提高其在訓練資料上的效能。使用這些方法,可以識別出最小化成本函式的最佳引數集。所採用的最佳化方法會顯著影響收斂速度、更新中的噪聲量以及模型泛化效率。為了確保模型成功最佳化並達到最佳效能,必須針對特定情況使用正確的最佳化方法。隨機梯度下降 (SGD)、梯度下降 (GD) 和 mini-batch 梯度下降是最突出的最佳化策略。為了選擇最適合您用例的演算法,理解不同演算法的差異至關重要。在這篇文章中,我們將深入探討 SGD、GD 和 mini-batch GD 之間的區別。

什麼是梯度下降?

梯度下降 (GD) 最佳化方法經常用於機器學習,以幫助識別特定模型的最佳引數集。GD 根據成本函式相對於模型引數的梯度迭代更新模型引數。梯度表示成本函式上升最陡峭的方向,因此透過向相反方向移動,該方法試圖找到成本函式的最小值。GD 的計算成本也很高,因為演算法的每次迭代都需要計算整個訓練資料集上成本函式的梯度。GD 經常用作其他最佳化方法的基準,因為它在特定情況下可以收斂到成本函式的全域性最小值。

什麼是隨機梯度下降?

SGD(隨機梯度下降)是一種著名的機器學習最佳化技術。在這個梯度下降的變體中,模型引數在每次迭代中根據成本函式相對於單個訓練樣本的梯度進行調整。該方法的每次迭代都隨機選擇一個訓練樣本。與 SGD 相比,梯度下降更少地修改模型引數,從而導致更快的收斂。然而,使用單個隨機訓練樣本可能會導致噪聲更新和成本函式變化很大。儘管存在噪聲,但 SGD 通常比梯度下降更受歡迎,因為它收斂速度更快,並且需要更少的記憶體來儲存成本函式梯度。

什麼是Mini-batch梯度下降?

Mini-batch 梯度下降是介於隨機梯度下降和梯度下降之間的梯度下降版本。模型引數根據成本函式相對於模型引數在每個 mini-batch 上的平均梯度進行更新,這些 mini-batch 是大小相同的訓練資料集的較小子集。與梯度下降和隨機梯度下降相比,Mini-batch 梯度下降更頻繁地更改模型引數。它在隨機更新的噪聲和全批次更新的計算成本之間取得了平衡,mini-batch 梯度下降在這兩者之間取得了折衷。它是最常用的深度學習最佳化方法,並在速度和準確性之間取得了很好的平衡。

梯度下降、隨機梯度下降和 Mini-batch 梯度下降之間的區別

梯度下降

隨機梯度下降

Mini-batch 梯度下降

梯度下降確定整個訓練資料集上成本函式的梯度,並在每個 epoch 中根據所有訓練樣本的平均值更新模型引數。

隨機梯度下降涉及在每次迭代中更新模型引數並計算單個隨機訓練樣本的成本函式梯度。

Mini-batch 梯度下降根據成本函式相對於模型引數在 mini-batch 上的平均梯度更新模型引數,mini-batch 是大小相同的訓練資料集的較小子集。

由於該方法的每次迭代都需要計算整個訓練資料集上成本函式的梯度,因此 GD 的收斂速度較慢。

SGD 比 GD 更頻繁地調整模型引數,這導致其收斂速度更快。

為了在速度和精度之間取得合理的平衡,模型引數的更改頻率比 GD 更高,但比 SGD 更低。

由於需要保留整個訓練資料集,GD 佔用大量記憶體。

由於每次迭代只需要儲存一個訓練樣本,因此 SGD 需要較少的記憶體。

每次迭代只需要保留一部分訓練樣本,因此記憶體使用是可以管理的。

GD 計算成本很高,因為每次迭代都需要計算整個訓練資料集的成本函式梯度。

由於只需要為每次訓練資料的重複計算一次成本函式梯度,因此 SGD 計算效率高。

由於每次迭代都需要計算一部分訓練樣本的成本函式梯度,因此計算效率高。

GD 基於所有訓練樣本的平均值來修改模型引數,誤差較小。

由於 SGD 使用單個訓練樣本進行更新,因此噪聲很大。

Mini-batch 梯度下降的噪聲很大,因為更新基於少量訓練樣本。

結論

總之,最流行的機器學習最佳化方法是梯度下降、隨機梯度下降和 Mini-batch 梯度下降。隨機梯度下降收斂速度快,但噪聲大;而梯度下降收斂速度慢,但噪聲小。Mini-batch 梯度下降在噪聲水平適中的情況下,在速度和精度之間取得了良好的平衡。資料集的大小、可用記憶體量和所需的精度水平都會影響最佳方法的選擇。作為資料科學家或機器學習從業者,瞭解每種演算法的特性將有助於您為給定的問題選擇最佳演算法。

更新於:2023年4月25日

4K+ 瀏覽量

啟動您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.