線性迴歸:梯度下降法

梯度下降法是 反覆找出產生權重和偏誤的數學技巧 損失最低的模型梯度下降法會找出最佳的權重和偏誤 可以重複下列程序,為使用者定義的疊代作業。

模型會以接近零的隨機權重和偏誤開始訓練 然後重複執行下列步驟:

  1. 根據目前的權重和偏誤計算損失。

  2. 判斷移動權重和偏誤以減少損失的方向。

  3. 將權重和偏誤值移到較低方向, 損失

  4. 回到步驟 1 並重複這個程序,直到模型無法降低 因此會損失。

下圖概述疊代步驟梯度下降法執行的結果 以最低的損失產生模型的權重與偏誤。

圖 12.插圖:梯度下降法程序。

圖 12. 梯度下降法是反覆調整的過程 以最低的損失產生模型

按一下加號圖示,即可進一步瞭解梯度下降法背後的數學方法。

在具體的層級中,我們可以逐步完成梯度下降法步驟 使用一個小型資料集,內含七個範例車輛的重度 (磅) 和每加侖的里程數:

1000 年代英鎊 (地圖項目) 每加侖英里 (標籤)
3.5 18
3.69 15
3.44 18
3.43 16
4.34 15
4.42 14
2.37 24
  1. 模型會先將權重和偏誤設為零,開始訓練:
  2. $$ \small{Weight:\ 0} $$ $$ \small{Bias:\ 0} $$ $$ \small{y = 0 + 0(x_1)} $$
  3. 使用目前的模型參數計算 MSE 損失:
  4. $$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$ $$ \small{Loss= 303.71} $$
  5. 計算各權重的損切斜率 和偏誤:
  6. $$ \small{Weight\ slope: -119.7} $$ $$ \small{Bias\ slope: -34.3} $$

    按一下加號圖示,即可瞭解如何計算斜率。

    為取得與體重的切線點, 我們會採用損失函數的導數 然後解決 各種方程式

    我們將寫出用來進行預測的方程式:
    $ f_{w,b}(x) = (寬*x)+b $。

    實際值的格式應為 $ y $。

    我們會使用:
    計算 MSE $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
    其中 $i$ 代表 $ith$ 訓練範例,$M$ 代表 和樣本數量

    權重導數

    權重的損失函式導數寫法為:
    $ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

    評估為:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $

    首先,將每個預測值減去實際值 再乘以特徵值的兩倍 接著,我們將總和除以樣本數量。 結果是該值的斜切線斜率 權重值

    如果我們解開這個方程式的權重和偏誤 我們得到 -119.7 的線條斜率。

    生物導數

    與 偏誤的寫法為:
    $ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

    評估為:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $

    首先,將每個預測值減去實際值 再乘以二接著將總和除以 和樣本數量結果就是線條的斜率 與偏誤值的正切值

    如果我們解開這個方程式的權重和偏誤 我們得到 -34.3 的線條斜率。

  7. 只要在負斜率的方向上微調一點值,即可取得 下一個權重和偏誤現在,我們會任意定義 「少量」例如 0.01:
  8. $$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$ $$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$ $$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$ $$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$ $$ \small{New\ weight = 1.2} $$ $$ \small{New\ bias = 0.34} $$

使用新的權重和偏誤來計算損失與重複。完成中 我們會得到以下權重、偏誤 和損失:

疊代作業 重量 偏誤 損失 (MSE)
1 0 0 303.71
2 1.2 0.34 170.67 次
3 2.75 0.59 67.3
4 3.17 0.72 50.63
5 3.47 0.82 42.1
6 3.68 0.9 37.74

您可以看到更新後的權重和偏誤值減少了損失。 這個範例在經過六次疊代後停止。實務上 持續訓練 收斂通訊。 當模型串連時,額外疊代不會減少損失 因為梯度下降法找到了 將損失減至最低

如果模型持續訓練過去的收斂性,損失開始 隨著模型持續更新 參數。這也太過複雜 驗證模型是否確實收斂確認模型 已完成收斂,接下來可以繼續訓練,直到損失 保持穩定。

模型收斂和損失曲線

訓練模型時,您通常會看重 曲線,判斷模型是否 收斂損失曲線顯示 損失率會隨著模型訓練而變化一般損失通常為 看起來Y 軸代表損失,X 軸代表疊代:

圖 13.損失曲線的圖表,呈現急遽下降,然後逐漸下降。

圖 13. 損失曲線,顯示模型在 第 1,000 次疊代標記。

您可以看到在最初幾次疊代中 損失會大幅減少 然後逐漸降低,直到最後 1,000 次疊代 標示。經過 1,000 次疊代後,我們大致就能確定 已收斂。

在下圖中,我們會在訓練過程中的三個點繪製模型 程序:開頭、中間和結尾。以視覺化方式呈現模型狀態 可強化更新程序之間的 例如權重和偏誤、減少損失及模型收斂

在這個圖中,我們使用特定疊代產生的權重和偏誤, 代表模型在包含資料點和模型快照的圖表中 從模型到資料點的藍色損失線,代表損失的數量。 線條長,損失越多。

在下圖中,可看到二次疊代模型 因為損失很多,進行預測並不好。

圖 14.模型的損失曲線和對應的圖表,這類圖表會將資料傾斜朝向資料點。

圖 14.模型開始時,模型的損失曲線和快照 訓練過程

在第 400 次疊代時,可以看到梯度下降法 以便產生更好的模型

圖 15.模型的損失曲線和對應的圖表,它們會切割資料點,而非最佳角度。

圖 15.模型透過訓練期間的損失曲線和快照。

大約 1,000 次時,我們可以看到模型已融合 盡可能讓模型的損失機率降到最低

圖 16.模型的損失曲線和對應的圖表,能與資料完美融合。

圖 16. 訓練結束附近模型的損失曲線和快照 上傳資料集之後,您可以運用 AutoML 自動完成部分資料準備工作

練習:隨堂測驗

梯度下降法在線性迴歸中扮演什麼角色?
梯度下降法會反覆調整程序, 以便將損失減至最低
梯度下降法則有助於判斷 訓練模型,例如 L1 或 L2
梯度下降法不會涉及選擇的損失 函式用於訓練模型
梯度下降法會移除資料集中的離群值,協助模型 以便做出更準確的預測
梯度下降法不會改變資料集。

收斂和凸面函式

線性模型的損失函式一律會產生 介面。因此, 產生這個屬性時,在線性迴歸模型凝結時 找出導致損失最低的權重與偏誤。

如果模型的損失表面只以一個特徵繪製 凸面形狀以下是每加侖資料集的里程數損失表面 用在先前的範例中權重在 X 軸上 偏誤則在 Y 軸上 Z 軸代表損失

圖 17.損失表的 3D 圖。

圖 17. 顯示其凸面形狀的損失表面。

在此範例中,權重為 -5.44 和偏誤為 35.94,帶來的損失最低 5.54:

圖 18.3D 損失表面的 3D 圖形,底部為 (-5.44、35.94、5.54)。

圖 18. 顯示產生的權重和偏誤值 最小的損失

找到最小損失時,線性模型就會集體。因此 疊代只會導致梯度下降,將權重和偏誤值移到 幾乎不會達到最低要求如果將權重和偏誤點繪製成圖表 在梯度下降時,這個點看起來就像是滾著山丘的球 最後,在沒有向下斜坡的那點停下來。

圖 19.凸面 3D 損失表面,漸層下降點會移至最低點。

圖 19.顯示最低點的梯度下降點停靠圖 圖表上的資料點

請注意,黑色損失點會建立損失曲線的確切形狀: 急遽下降,再逐漸降低,直到降到最低點 隱藏在損失表面上

特別要注意的是,這個模型幾乎找不到 而是找出非常接近這個權重和偏誤的值 請特別注意,權重和偏誤的最小值不會 就會對應至零,僅以單一值 參數。

在此例中,使用會產生最低損失的權重和偏誤值 權重 -5.44 與偏誤為 35.94 判斷資料是否恰當:

圖 20.以 1000s 與每加侖英里數的磅數的圖表,模型符合資料的模型。

圖 20. 以產生模型結果的權重和偏誤值 最小的損失

這將是這個資料集的最佳模型,因為沒有其他權重和偏誤 會產生損失程度較低的模型