疊代方法圖表 (圖 1) 包含名為「Compute 參數更新」(Compute 參數更新) 的綠色手繪方塊。現在,我們要用更巨大的表面取代演算法灰塵。
假設我們有時間和運算資源來計算所有 \(w_1\)可能值的損失,就我們正在檢查的迴歸問題而言,結果損失和 \(w_1\) 的繪製結果往往較為凸顯。也就是說,陰道將是碗狀的,如下所示:
圖 2. 迴歸問題會產生凸面與體重圖表。
正面問題只有一個最低值;也就是說,只有斜率剛好為 0 的位置。這個最小值是損失函式收斂的位置。
針對整個資料集,計算 \(w_1\)每個可感知值的損失函式,就會是找出收斂點的效率不佳方法。讓我們來探討一種更優異的機制 (在機器學習中非常受歡迎),稱為「梯度下降法」。
梯度下降法的第一個階段是挑選 \(w_1\)的起始值 (起點)。起點並不重要,因此許多演算法只會將 \(w_1\) 設為 0 或選擇隨機值。下圖顯示我們選擇的起點略大於 0:
圖 3. 梯度下降法的起點。
接著,梯度下降法演算法會計算起點的損失曲線漸層。在圖 3 中,損失的梯度與曲線的衍生性 (斜率) 相等,並告訴您「暖機」或「相容」的方式。當有多個權重時,「漸層」是與權重相關的部分導數向量。
請注意,漸層是向量,因此具備以下兩項特性:
- 方向
- 規模
漸層一律會指向損失函式中最陡增的方向。梯度下降法演算法會朝負梯度的方向採取一步,以便盡快減少損失。
圖 4 梯度下降法仰賴負漸層。
為了判定損失函式曲線的下一個點,梯度下降法演算法會在起點中,增加一部分的漸層規模,如下圖所示:
圖 5 漸層步驟會移到損失曲線的下一點。
接著,梯度下降法會重複這項程序,並趨近於最小。