在深度學習中如何通俗理解梯度下降法?

詠卜分離


深度學習模型的優化機制,學習一下梯度下降法SGD。

模型優化的過程其實就是在尋找模型最優參數,希望找到模型參數的初始值,在這個值的基礎上更新參數,找到參數的最優值,而如何參數更新,找到最優值呢?

深度學習中則是根據梯度下降法中最快梯度下降方向,也就是設計的loss對參數x進行求導,下式中的dx,最簡單的優化器SGD中參數更新公式如下,參數x每次在dx方向減小learning_rate* dx,然後用更新後的參數,進行訓練,再更新,直到模型收斂為止。

x = x - learning_rate * dx

附上一張不同優化器速度對比圖

專注於分享人工智能深度學習相關科技,歡迎關注交流,更多相關知識請查看頭條號文章。


AI深度學習求索


梯度下降的通俗理解

梯度下降算法是微積分裡學完導數就開始就講解的求函數極值的方法。通俗地理解,也可以稱為最快下山算法。想象一下你在一個地面全是草地平整的山頂上,讓你以最快的速度下山你怎麼辦?你每邁下一步就往周圍看一圈,看哪個方向的下一步能踩到的地面更低,你就往那個方向脈下一步。就這樣你邁下的每一步都是在當前位置沿坡度最大的方向,這個坡度就是梯度,你的下山過程就是不斷調整方向,沿著坡度變化最大的方向,不斷邁步。

其實也不算通俗理解,這就是本質理解,只是把山用z = f(x,y)表示出來,畫出圖像成為一個倒立的山,然後把坡度用微積分符號表示出來,普通人就看不懂了。現實中的山上有樹木和特殊地形,你下山不可能按著梯度最大方向,沒東西擋著你也怕摔死。即使是修路也不會按照梯度下降最快方向,為了安全,要修成盤山路。

局部最小值問題

當然,根據你所在位置不同,你最後下降到的位置可能不是全局最低點,而是了下降到了一個山溝平地裡就停了(在數學上,此時梯度已經幾乎為0,迭代不動了)。這就是梯度下降算法的固有缺陷,但影響並不大。因為實際的深度學習訓練過程中,不需要得到全局最小值,得到的結果夠用就行了,不必追求完美。



河馬的實驗室


看一下我的文章哦,還配有視頻教程。免費領取


分享到:


相關文章: