降低損失:梯度下降法

疊代方法圖表 (圖 1) 包含名為「Compute 參數更新」(Compute 參數更新) 的綠色手繪方塊。現在,我們要用更巨大的表面取代演算法灰塵。

假設我們有時間和運算資源來計算所有 \(w_1\)可能值的損失,就我們正在檢查的迴歸問題而言,結果損失和 \(w_1\) 的繪製結果往往較為凸顯。也就是說,陰道將是碗狀的,如下所示:

U 形曲線圖,垂直軸標示為「loss」,水平軸標示為「w i」的值。

圖 2. 迴歸問題會產生凸面與體重圖表。

 

正面問題只有一個最低值;也就是說,只有斜率剛好為 0 的位置。這個最小值是損失函式收斂的位置。

針對整個資料集,計算 \(w_1\)每個可感知值的損失函式,就會是找出收斂點的效率不佳方法。讓我們來探討一種更優異的機制 (在機器學習中非常受歡迎),稱為「梯度下降法」

梯度下降法的第一個階段是挑選 \(w_1\)的起始值 (起點)。起點並不重要,因此許多演算法只會將 \(w_1\) 設為 0 或選擇隨機值。下圖顯示我們選擇的起點略大於 0:

U 形曲線圖。曲線左側大約會有一個點標有「起點」。

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

接著,梯度下降法演算法會計算起點的損失曲線漸層。在圖 3 中,損失的梯度與曲線的衍生性 (斜率) 相等,並告訴您「暖機」或「相容」的方式。當有多個權重時,「漸層」是與權重相關的部分導數向量。

請注意,漸層是向量,因此具備以下兩項特性:

  • 方向
  • 規模

漸層一律會指向損失函式中最陡增的方向。梯度下降法演算法會朝負梯度的方向採取一步,以便盡快減少損失。

U 形曲線圖。曲線左側的點標有「起點」。從這個方向向右指向「負漸層」的箭頭。

圖 4 梯度下降法仰賴負漸層。

為了判定損失函式曲線的下一個點,梯度下降法演算法會在起點中,增加一部分的漸層規模,如下圖所示:

U 形曲線圖。曲線左側的點標有「起點」。從這個方向向右指向「負漸層」的箭頭。另一個箭頭從第一個箭頭的尖端往下指向曲線上的第二個點。第二個點會標示為「下一個點」。

圖 5 漸層步驟會移到損失曲線的下一點。

接著,梯度下降法會重複這項程序,並趨近於最小。