機器學習之梯度下降法

Lois發表於2020-06-12

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

迴歸問題產生的損失與權重圖為凸形

凸形問題只有一個最低點;即只存在一個斜率正好為 0 的位置.這個最小值就是損失函式收斂之處.
透過計算整個資料集中 w1 每個可能值的損失函式來找到收斂點這種方法效率太低.我們來研究一種更好的機制,這種機制在機器學習領域非常熱門, 稱為梯度下降法.
梯度下降法的第一個階段是為 w1 選擇一個起始值(起點).起點並不重要;因此很多演算法就直接將 w1 設為 0 或隨機選一個值.下圖顯示的是我們選擇了一個稍大於 0 的起點:

梯度下降法的起點

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

偏導數和梯度

請注意, 梯度是一個向量, 因此具有以下兩個特徵:
方向
大小
梯度始終指向損失函式中增長最為迅猛的方向.梯度下降演算法會沿著負梯度的方向走一步,以便儘快降低損失.

梯度下降法依賴於負梯度

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

一個梯度步長將我們移動到損失曲線的下一個點

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

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章