在普通的梯度下降過程中通常使用這個公式來更新參數, ,而學習率的選擇就顯得非常的重要了,如上圖所示,學習率選擇過小,就會導致左圖的情況,學習率過小在到達碗底平緩地區,導數值也非常小,從而導致損失函數移動的速度非常的慢,使得很難儘快的收斂,如果學習率設置過大,導致損失值來回震盪,很難取到最優值。
接下來,我們講解一下,一個可以合理選擇步長的方法 -Line Search,這種方法能夠保證我們無論從圖中哪一點開始梯度下降,都能保證收斂到局部最優值,這種性質也叫做全局收斂性(global convergence),請一定不要和收斂到全局最優解混淆,全局收斂性只是保證從任意的起點開始都能收斂到局部最優。根據泰勒公式我們有:
d是下降方向,我理解的是,它其實是沒有梯度下降前的導數,而是梯度下降後的新的損失的導數,如上公式所示,如果學習率足夠的小就能保證,,因爲梯度是負方向的,但是學習率又不能太小這樣就導致以後損失下降速度過慢無法到達局部最優點,所以讓我們選擇合適的學習率來使得下面的公式最小:
通過求導導數爲零,就可以得到那個合適的學習率,上圖8.3就是使用線性搜索的方法,得到的梯度下降的圖形,我們可以看到上圖下降的圖形很像我們以前玩的貪吃蛇遊戲中的貪吃蛇,橫平豎直的爬行,至於爲什麼是這樣,我在下面也將給出解釋,因爲我們要去上面的公式取得最小值,從而得到我們想要的學習率,就滿足:對於這個優化一個必要的條件就是
,通過鏈式法則我們可以到其導數爲 而是梯度下降後的導數,所以我們爲了達到導數爲零這個條件,要麼使得g=0即我們已經到達局部最優點(穩定點),要麼我們需要,即上次下降的方向與下次下降的方向互相垂直。
本文章參考於MLAPP中8.3.2,如有疑問,可以查看這本書中8.3.2節。