Neural-Networks

(迷你)批量梯度中梯度的總和或平均值?[複製]

  • November 27, 2015

當我實現小批量梯度下降時,我只是對訓練批次中所有示例的梯度進行平均。但是,我注意到現在的最佳學習率比在線梯度體面的要高得多。我的直覺是,這是因為平均梯度噪聲較小,因此可以更快地跟踪。所以也許僅僅總結一個批次的梯度也是有意義的。無論如何,這些值可以是正數和負數。

我知道這只是一個可以使用學習率平衡的常數因素。但我想知道科學家們同意的定義是什麼,以便我可以從神經網絡論文中重現結果。

通常是否將批次的總梯度除以批次大小?

平均。

示例:由 Alex Holehouse 編寫的Andrew Ng 在 Coursera 上的機器學習課程的註釋。

對單個樣本的梯度求和,你會得到一個更平滑的梯度。批次越大,用於更新權重的梯度越平滑。

將總和除以批量大小並取平均梯度具有以下效果:

  1. 重量的大小不會不成比例地增長。將 L2 正則化添加到權重更新會懲罰較大的權重值。這通常會提高泛化性能。取平均值,特別是如果梯度恰好指向同一方向,請防止權重變得太大。
  2. 梯度的大小與批量大小無關。這允許比較使用不同批量大小的其他實驗的權重。
  3. 用學習率來抵消批量大小的影響在數值上可能是等效的,但你最終會得到一個特定於實現的學習率。如果人們無法與您使用的參數規模相關聯並且他們將難以重現您的實驗,那麼就很難傳達您的結果和實驗設置。

平均可以實現更清晰的可比性,並使梯度大小與批量大小無關。選擇批量大小有時會受到您擁有的計算資源的限制,並且您希望在評估模型時減輕這種影響。

引用自:https://stats.stackexchange.com/questions/183840

comments powered by Disqus