天天看點

如何選擇梯度下降法中的學習速率α(Gradient Descent Learning Rate Alpha)

梯度下降算法的任務是尋找參數θ,使之能夠最小化損失函數。

那麼梯度下降法中的學習速率α應該如何選擇呢?通常我們畫出損失函數随疊代次數增加而變化的曲線。

可能會得到如下的一條曲線,x軸表示疊代次數,y軸表示梯度下降算法疊代相應次數之後算出的損失函數值。

如何選擇梯度下降法中的學習速率α(Gradient Descent Learning Rate Alpha)

可以看到,當疊代300次之後,損失函數的值并沒有下降多少,也就是說在這裡梯度下降算法基本上已經收斂了。是以,這條曲線還可以幫助你判斷梯度下降算法是否已經收斂。(對于某一個特定的問題,梯度下降算法所需要的疊代次數相差很大,可能對于某一個問題隻需要30步,但是對于另一個問題則需要30000步,我們沒有辦法提前進行判斷。)

如果梯度下降算法工作正常,那麼每一步疊代之後,損失函數的值都應該下降。

如下圖左上角所示,如果你發現随着疊代次數的增加,損失函數的值在變大,這通常是因為學習速率α選擇的太大,需要将它調小。(如下圖右面所示,我們從初始θ出發,但是由于學習速率α太大,一下子跑到了最低點的左邊,然後下一次疊代又一下子跑到了最低點的右邊,如此往複,損失函數就會越來越大。)

如下圖左下角所示,你也會遇到這樣的一種情況:随着疊代次數的增加,損失函數的值一會上升,一會下降,這通常也是因為學習速率α太大,需要使用較小的學習速率。

如何選擇梯度下降法中的學習速率α(Gradient Descent Learning Rate Alpha)

總結來說,如果學習速率α太小,梯度下降收斂速度會很慢;如果學習速率α太大,損失函數的值在每次疊代後不一定能下降,算法最後可能會發散。對于學習速率α,可以先選擇0.001,然後按10倍來進行調整。

如何選擇梯度下降法中的學習速率α(Gradient Descent Learning Rate Alpha)

繼續閱讀