線性迴歸:梯度下降

梯度下降是一種數學技術,可反覆找出權重和偏誤,產生損失最低的模型。梯度下降會重複執行下列程序 (次數由使用者定義),找出最佳權重和偏差。

模型會先以接近零的隨機權重和偏差值開始訓練,然後重複下列步驟:

  1. 使用目前的權重和偏差計算損失。

  2. 判斷要朝哪個方向移動權重和偏誤,才能減少損失。

  3. 朝減少損失的方向,稍微移動權重和偏差值。

  4. 返回步驟一並重複執行程序,直到模型無法再減少損失為止。

下圖概述梯度下降執行的疊代步驟,目的是找出可產生最低損失模型權重和偏誤。

圖 11.梯度下降程序示意圖。

圖 11. 梯度下降法是疊代程序,可找出產生最低損失模型時的權重和偏差。

模型收斂和損失曲線

訓練模型時,您通常會查看損失曲線,判斷模型是否已收斂。損失曲線會顯示模型訓練時的損失變化。典型的損失曲線如下所示。Y 軸代表損失,X 軸代表疊代:

圖 12. 損失曲線圖,顯示急劇下降,然後緩慢下降。

圖 12. 損失曲線:模型在第 1,000 次疊代標記附近收斂。

您可以看到,在前幾次疊代期間,損失大幅減少,然後逐漸減少,最後在第 1,000 次疊代左右趨於平緩。經過 1,000 次疊代後,我們大致可以確定模型已收斂。

在下圖中,我們在訓練過程中的三個時間點繪製模型:開始、中間和結束。在訓練過程中,以快照形式呈現模型狀態,可強化權重和偏差更新、損失減少及模型收斂之間的連結。

在圖中,我們使用特定疊代作業中得出的權重和偏差,代表模型。在含有資料點和模型快照的圖表中,從模型到資料點的藍色損失線會顯示損失量。線路越長,損失就越大。

從下圖中可以看出,模型在第二次疊代時,由於損失量過高,因此無法做出準確預測。

圖 13.模型損失曲線和對應的圖表,會偏離資料點。

圖 13. 訓練程序開始時的模型損失曲線和快照。

在大約第 400 次疊代時,我們可以看到梯度下降法已找出可產生更優質模型的權重和偏差。

圖 14. 模型損失曲線和對應的圖表,會穿過資料點,但角度並非最佳。

圖 14.損失曲線和模型快照,約在訓練中途。

大約在第 1,000 次疊代時,我們可以看到模型已收斂,產生損失值最低的模型。

圖 15. 模型損失曲線和相應的圖表,可充分切合資料。

圖 15.損失曲線和訓練程序即將結束時的模型快照。

練習:確認理解程度

梯度下降法在線性迴歸中扮演什麼角色?
梯度下降是疊代程序,可找出能將損失降到最低的最佳權重和偏差。
梯度下降有助於判斷訓練模型時要使用的損失類型,例如 L1 或 L2
模型訓練的損失函式選取作業不會用到梯度下降法。
梯度下降會從資料集中移除離群值,協助模型做出更準確的預測。
梯度下降不會變更資料集。

收斂和凸函數

線性模型的損失函式一律會產生凸面。因此,當線性迴歸模型收斂時,我們知道模型已找出可產生最低損失的權重和偏差。

如果我們繪製具有一項特徵的模型損失曲面圖,可以看到其凸面形狀。以下是假設的每加侖英里數資料集的損失曲面。X 軸代表權重,Y 軸代表偏差,Z 軸代表損失:

圖 16. 損失曲面的 3D 圖。

圖 16. 顯示凸面形狀的損失曲面。

在本例中,權重為 -5.44,偏誤為 35.94,在 5.54 時產生最低損失:

圖 17. 損失曲面的 3D 圖表,底部為 (-5.44, 35.94, 5.54)。

圖 17. 損失曲面,顯示產生最低損失的權重和偏差值。

線性模型找到最低損失時,就會收斂。如果我們在梯度下降期間繪製權重和偏差點的圖表,這些點看起來就像是滾下山丘的球,最後會停在沒有下坡的點。

圖 18. 凸面 3D 損失表面,梯度下降點會移至最低點。

圖 18. 損失圖表:顯示梯度下降點在圖表最低點停止。

請注意,黑色損失點會形成損失曲線的確切形狀:急劇下降,然後逐漸向下傾斜,直到達到損失曲面上的最低點。

使用產生最低損失的權重和偏差值 (本例中為權重 -5.44 和偏差值 35.94),我們可以繪製模型圖表,瞭解模型與資料的相符程度:

圖 19. 以磅為單位 (以千為單位) 的圖表,與每加侖英里數的比較,模型符合資料。

圖 19. 使用產生最低損失的權重和偏差值繪製的模型圖。

這是這個資料集的最佳模型,因為沒有其他權重和偏差值能產生損失較低的模型。