機器學習中有哪些不同型別的梯度下降演算法?
使用梯度下降的目的是最小化各種機器學習演算法中的損失。從數學上講,可以得到函式的區域性最小值。
為了實現這一點,定義了一組引數,需要將其最小化。一旦為引數分配了係數,就會計算誤差或損失。接下來,更新權重以確保誤差最小化。弱學習器(例如決策樹)可以用作引數。
計算損失後,執行梯度下降,並逐步將樹新增到演算法中,以使損失最小。
一些例子包括線性迴歸中的係數引數,或確保在機器學習演算法中使用最佳權重。
有不同型別的梯度下降演算法,下面討論其中一些。
批次梯度下降
這是一種梯度下降演算法,它在演算法執行的每次迭代中都會處理所有訓練資料集。
如果訓練資料量巨大,批次梯度下降在計算上代價高昂。因此,當資料集很大時,不建議使用批次梯度下降。
在這種情況下,如果訓練樣本數量很大,則首選隨機梯度下降或小批次梯度下降。
隨機梯度下降
該演算法在每次迭代中處理一個訓練樣本。由於每次迭代只處理一個數據樣本,因此引數在每次迭代後都會更新。
與批次梯度下降相比,它更快。如果資料集中訓練樣本的數量很大,則開銷會很高。
這是因為迭代次數會很高,所需時間也會很長。
小批次梯度下降
這種梯度下降演算法比批次梯度下降和隨機梯度下降效果更好。這裡,每次迭代處理 *b* 個示例,其中 *b<m*。
值“m”指的是資料集中訓練示例的總數。“b”的值小於“m”。如果訓練示例的數量很多,則資料會分批處理,其中每一批會在一次迭代中包含“b”個訓練示例。
小批次梯度下降在減少迭代次數的情況下,可以很好地處理大量的訓練示例。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP