降低損失 梯度下降法和隨機梯度下降法

2022-09-06 05:00:10 字數 1973 閱讀 9542

reference:

迭代方法圖 包含乙個標題為「計算引數更新」的華而不實的綠框。現在,我們將用更實質的方法代替這種華而不實的演算法。

假設我們有時間和計算資源來計算 w1 的所有可能值的損失。對於我們一直在研究的回歸問題,所產生的損失與 w1 的圖形始終是凸形。換言之,圖形始終是碗狀圖,如下所示:

凸形問題只有乙個最低點;即只存在乙個斜率正好為 0 的位置。這個最小值就是損失函式收斂之處。

通過計算整個資料集中 w1 每個可能值的損失函式來找到收斂點這種方法效率太低。我們來研究一種更好的機制,這種機制在機器學習領域非常熱門,稱為梯度下降法

梯度下降法的第乙個階段是為 w1 選擇乙個起始值(起點)。起點並不重要;因此很多演算法就直接將 w1 設為 0 或隨機選擇乙個值。下圖顯示的是我們選擇了乙個稍大於 0 的起點:

然後,梯度下降法演算法會計算損失曲線在起點處的梯度。簡而言之,梯度是偏導數的向量;它可以讓您了解哪個方向距離目標「更近」或「更遠」。請注意,損失相對於單個權重的梯度(如上圖所示)就等於導數。

請注意,梯度是乙個向量,因此具有以下兩個特徵:

梯度始終指向損失函式中增長最為迅猛的方向。梯度下降法演算法會沿著負梯度的方向走一步,以便盡快降低損失。

為了確定損失函式曲線上的下乙個點,梯度下降法演算法會將梯度大小的一部分與起點相加,如下圖所示

然後,梯度下降法會重複此過程,逐漸接近最低點。

在梯度下降法中,批量指的是用於在單次迭代中計算梯度的樣本總數。到目前為止,我們一直假定批量是指整個資料集。就 google 的規模而言,資料集通常包含數十億甚至數千億個樣本。此外,google 資料集通常包含海量特徵。因此,乙個批量可能相當巨大。如果是超大批量,則單次迭代就可能要花費很長時間進行計算。

包含隨機抽樣樣本的大型資料集可能包含冗餘資料。實際上,批量大小越大,出現冗餘的可能性就越高。一些冗餘可能有助於消除雜亂的梯度,但超大批量所具備的**價值往往並不比大型批量高。

如果我們可以通過更少的計算量得出正確的平均梯度,會怎麼樣?通過從我們的資料集中隨機選擇樣本,我們可以通過小得多的資料集估算(儘管過程非常雜亂)出較大的平均值。隨機梯度下降法 (sgd)將這種想法運用到極致,它每次迭代只使用乙個樣本(批量大小為 1)。如果進行足夠的迭代,sgd 也可以發揮作用,但過程會非常雜亂。「隨機」這一術語表示構成各個批量的乙個樣本都是隨機選擇的。

小批量隨機梯度下降法(小批量 sgd)是介於全批量迭代與 sgd 之間的折衷方案。小批量通常包含 10-1000 個隨機選擇的樣本。小批量 sgd 可以減少 sgd 中的雜亂樣本數量,但仍然比全批量更高效。

為了簡化說明,我們只針對單個特徵重點介紹了梯度下降法。請放心,梯度下降法也適用於包含多個特徵的特徵集。

梯度下降法和隨機梯度下降法

批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...

降低訓練損失之梯度下降法

假設我們有時間和計算資源來計算 w1 的所有可能值的損失。對於我們一直在研究的回歸問題,所產生的損失與 w1 的圖形始終是凸形。換言之,圖形始終是碗狀圖,如下所示 圖 2.回歸問題產生的損失與權重圖為凸形。凸形問題只有乙個最低點 即只存在乙個斜率正好為 0 的位置。這個最小值就是損失函式收斂之處。通...

梯度下降法和隨機梯度下降法的區別

梯度下降和隨機梯度下降之間的關鍵區別 1 標準梯度下降是在權值更新前對所有樣例彙總誤差,而隨機梯度下降的權值是通過考查某個訓練樣例來更新的。2 在標準梯度下降中,權值更新的每一步對多個樣例求和,需要更多的計算。3 標準梯度下降,由於使用真正的梯度,標準梯度下降對於每一次權值更新經常使用比隨機梯度下降...