降低訓練損失之梯度下降法

迭代方法圖(圖1,見上一篇博客:降低訓練損失之迭代方法)包含一個標題爲“計算參數更新”的華而不實的綠框。現在,我們將用更實質的方法代替這種華而不實的算法。

假設我們有時間和計算資源來計算 w1 的所有可能值的損失。對於我們一直在研究的迴歸問題,所產生的損失與 w1 的圖形始終是凸形。換言之,圖形始終是碗狀圖,如下所示:

 

                                                              圖 2. 迴歸問題產生的損失與權重圖爲凸形。

 

凸形問題只有一個最低點;即只存在一個斜率正好爲 0 的位置。這個最小值就是損失函數收斂之處。

通過計算整個數據集中 w1 每個可能值的損失函數來找到收斂點這種方法效率太低。我們來研究一種更好的機制,這種機制在機器學習領域非常熱門,稱爲梯度下降法

梯度下降法的第一個階段是爲 w1 選擇一個起始值(起點)。起點並不重要;因此很多算法就直接將 w1 設爲 0 或隨機選擇一個值。下圖顯示的是我們選擇了一個稍大於 0 的起點:

 

                                                                            圖 3. 梯度下降法的起點。

 

然後,梯度下降法算法會計算損失曲線在起點處的梯度。簡而言之,梯度是偏導數的矢量;它可以讓您瞭解哪個方向距離目標“更近”或“更遠”。請注意,損失相對於單個權重的梯度(如圖 3 所示)就等於導數。

詳細瞭解偏導數和梯度。

請注意,梯度是一個矢量,因此具有以下兩個特徵:

  • 方向
  • 大小

梯度始終指向損失函數中增長最爲迅猛的方向。梯度下降法算法會沿着負梯度的方向走一步,以便儘快降低損失。

                                                                     圖 4. 梯度下降法依賴於負梯度。

爲了確定損失函數曲線上的下一個點,梯度下降法算法會將梯度大小的一部分與起點相加,如下圖所示:

 

                                                         圖 5. 一個梯度步長將我們移動到損失曲線上的下一個點。

然後,梯度下降法會重複此過程,逐漸接近最低點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章