Machine-Learning

深度學習中是否使用線搜索方法?為什麼不?

  • January 4, 2018

網上很多教程都講梯度下降,而且幾乎都使用固定步長(學習率)。為什麼沒有使用線搜索(例如回溯線搜索或精確線搜索)?

使用線搜索可以使普通梯度下降更加可靠;我已經編寫了執行此操作的算法,它使算法非常穩定(儘管不一定很快)。

然而,對隨機梯度方法進行線搜索幾乎沒有意義。我這麼說的原因是,如果我們基於最小化完整損失函數進行線搜索,我們會立即失去使用隨機方法的主要動機之一;我們現在需要計算每次更新的完整損失函數,其計算成本通常與計算完整的一階導數相當。考慮到由於計算成本我們想避免計算完整的梯度,我們似乎不太可能想要計算完整的損失函數。

或者,您可能會考慮根據隨機採樣的數據點進行線搜索之類的操作。但是,這也不是一個好主意。這不會告訴您您是否走得太遠(這是行搜索的主要好處)。例如,假設您正在執行邏輯回歸。然後每個結果只是一個 0 或 1,對於任何單個樣本,我們很容易得到完美的分離,因此基於 1 的樣本的回歸參數的最佳解決方案很簡單或者由豪克唐納效應。這不好。

編輯

@DeltaIV 指出這也適用於小批量,而不僅僅是單個樣本。

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

comments powered by Disqus