題:
提升:為什麼將學習率稱為正則化參數?
romuald_84
2015-08-25 15:39:16 UTC
view on stackexchange narkive permalink

Gradient Boosting中的 learning rate 參數($ \ nu \ in [0,1] $)縮小了每個新基本模型(通常是淺樹)的貢獻,該模型被添加到該系列中。它被證明可以極大地提高測試儀的精度,這是可以理解的,因為步數越小,損耗函數的最小值就可以越精確地達到。

我不明白為什麼學習率被視為正則化參數?引用統計學學習的要素,第10.12.1節,第364頁:

控制樹的數量並不是唯一可能的正則化策略。與山脊回歸和神經網絡一樣,也可以使用收縮技術。 $ \ nu $的較小值(更多收縮)會導致相同迭代次數$ M $的較大訓練風險。因此,$ \ nu $和$ M $均可控制訓練數據的預測風險。

正則化的意思是“避免過度擬合的方式”,因此很明顯在這方面,迭代次數$ M $是至關重要的($ M $太高會導致過度擬合)。但是:

較小的$ \ nu $值(更多的收縮)會導致相同迭代次數$ M $的較大訓練風險。

意味著在低學習率的情況下,需要更多的迭代才能在訓練集上達到相同的準確性。那麼這與過度擬合有何關係?

二 答案:
Haitao Du
2016-04-28 01:57:46 UTC
view on stackexchange narkive permalink

假設您正在嘗試通過迭代次數來最小化目標函數。當前值為$ 100.0 $。在給定的數據集中,沒有“不可減少的錯誤”,您可以將訓練數據的損失降至$ 0.0 $。現在,您有兩種方法可以做到這一點。

  • 第一種方法是“提高學習率”和減少迭代次數。假設您可以在每次迭代中將損失減少$ 10.0 $,然後在$ 10 $迭代中將損失減少到$ 0.0 $。

  • 第二種方法是“學習緩慢率”,但迭代次數更多。假設您可以將每次迭代的損失減少$ 1.0 $,並且需要$ 100 $的迭代才能使訓練數據損失0.0。

現在考慮一下:這兩種方法是等於?如果不是在優化上下文機器學習上下文中哪個更好?

優化文獻中,這兩種方法是相同。他們倆都收斂到最佳解決方案。另一方面,在機器學習中,它們並不相等。因為在大多數情況下,我們不會將訓練中的損失設為$ 0 $,否則會導致過度擬合。

我們可以將第一種方法視為“粗級網格搜索”,將第二種方法視為“細級網格搜索”。第二種方法通常效果更好,但是需要更多的計算能力來進行更多的迭代。

為防止過度擬合,我們可以做不同的事情,第一種方法是限制迭代次數,假設我們正在使用第一種這樣,我們將迭代次數限制為5。最後,訓練數據的損失為$ 50 $。 (順便說一句,從 optimization 的角度來看,這很奇怪,這意味著我們將來可以改進我們的解決方案/它尚未收斂,但我們選擇不這樣做。在優化中,通常我們顯式添加約束或目標函數的懲罰項,但通常不限制迭代次數。)

另一方面,我們也可以使用第二種方法:如果我們將學習率設置為較小,例如可以使每次迭代減少$ 0.1 $的損失,儘管我們有很多次迭代,例如說$ 500 $迭代,我們仍然沒有最小化損失到$ 0.0 $。

這就是為什麼小學習率等於“更多正則化”的原因。

這裡是一個示例,其中對使用 xgboost 。請檢查以下兩個鏈接以查看 eta n_iterations 的含義。

Tree Booster的參數

XGBoost控件過擬合

對於相同的迭代次數,例如$ 50 $。較小的學習率是“欠擬合”(或者模型具有“高偏差”),而較大的學習率是“過度擬合”(或者模型具有“高方差”)。

Example of changing learning rate ETA in XGBoost model

PS。擬合不足的證據是訓練集和測試集都有較大的誤差,並且訓練集和測試集的誤差曲線彼此接近。過度擬合的跡像是訓練集的誤差很低,測試集的非常高,兩條曲線彼此相距很遠。

您是說學習率低,在相同的損失下,您可以比學習率高的迭代更多(優化搜索更多)嗎?我想我得到了您想要傳遞的直覺,但是更嚴格的解釋和/或說明性的示例不會受到傷害。
謝謝。您可以更新您的鏈接嗎?他們對我不起作用
只要您在以後的迭代中不增加訓練誤差,使用較高的學習率總是更好的選擇。您指的正則化(偏差與方差)與訓練/驗證錯誤有關,與學習率無關。無論您使用的是大學習率還是小學習率,如果達到0.0訓練錯誤,那麼您都將過度擬合。如果您使用較大的學習率,則需要儘早停止優化以防止過度擬合。您可以使用驗證集來查看您的驗證錯誤是否在停止培訓的那一刻增加。
否則我可能會缺少一些東西:)
“這就是為什麼小學習率等於“更多正則化”的原因。”根據本文,學習率越大,正規化程度就越高:[超級收斂:使用大學習率對神經網絡進行非常快速的訓練](https://arxiv.org/pdf/1708.07120.pdf)
Neil G
2016-05-09 15:52:40 UTC
view on stackexchange narkive permalink

使用牛頓法,可以通過減去損耗的斜率除以損耗的曲率來更新參數。在梯度下降優化中,您可以通過減去損耗的梯度乘以學習率來更新參數。換句話說,學習率的倒數被用來代替實際的損失曲率。而不是壞人。這是真正的損失。讓我們定義最優化損失是通過更新規則實際最小化的內容。

根據定義,正則化參數是最優化損失中的任何術語,但不是問題失利。由於學習率在優化損失中的作用類似於額外的二次項,但與問題損失無關,因此它是一個正則化參數。

正則化的其他示例也證明了這一觀點: / p>

  • 權重衰減,這就像是對損失較大的最佳損失的優化損失中的額外一項,
  • 對複雜模型進行懲罰的項以及
  • 懲罰特徵之間的相關性。
-我沒有得到“換句話說,學習率的倒數用於代替實際損耗曲率”。 -我不是領域專家,這是我第一次看到定義:“正則化參數是優化損失中的任何術語,但不是問題損失”。我也不太明白。您能否提供相關參考? 提前致謝
@Antoine我無法提供參考。根據我的經驗,我嘗試使用其他三個示例來證明這一點。至於代替逆損耗曲率的學習率,您可以看到,如果同時編寫牛頓法和梯度下降更新規則。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...