線性迴歸:超參數

超參數是用於控制訓練過程各個層面的變數。三個常見的超參數如下:

相反地,參數是模型本身的一部分,例如權重和偏差等變數。換句話說,超參數是您控制的值;參數是模型在訓練期間計算的值。

學習率

學習率是您設定的浮點數,會影響模型收斂的速度。如果學習率太低,模型可能需要很長的時間才能收斂。不過,如果學習率過高,模型就不會收斂,而是會在最小化損失的權重和偏差之間來回擺動。目標是選擇學習率,使其不會過高或過低,以便模型快速收斂。

學習率會決定在梯度下降過程的每個步驟中,權重和偏差的變更幅度。模型會將梯度乘以學習率,以便判斷模型在下一個疊代中的參數 (權重和偏差值)。在梯度下降的第三個步驟中,沿著負斜率移動的「小量」是指學習率。

舊模型參數和新模型參數之間的差異,會與損失函式的斜率成比例。舉例來說,如果斜率很大,模型就會跨大步。如果是小步驟,則需要小步驟。舉例來說,如果梯度的大小為 2.5,學習率為 0.01,則模型會將參數變更為 0.025。

理想的學習率可協助模型在合理的疊代次數內收斂。在圖 21 中,損失曲線顯示模型在前 20 次疊代期間大幅改善,然後開始收斂:

圖 21. 損失曲線在平坦之前會顯示陡峭的斜坡。

圖 21。損失圖表:顯示以快速收斂的學習率訓練的模型。

相反地,學習率過低可能需要過多迭代才能收斂。在圖 22 中,損失曲線顯示模型在每次疊代後僅有微幅改善:

圖 22. 損失曲線顯示的斜率幾乎為 45 度。

圖 22. 損失圖表,顯示以低學習率訓練的模型。

學習率過高會導致無法收斂,因為每次疊代都會導致損失值反彈或持續增加。在圖 23 中,損失曲線顯示模型在每次迭代後會先減少,然後再增加損失,而在圖 24 中,損失會在後續迭代中增加:

圖 23. 損失曲線顯示不規則的上下線。

圖 23. 損失圖表顯示以過高的學習率訓練的模型,損失曲線會大幅波動,隨著疊代次數增加而上下波動。

圖 24. 損失曲線,顯示後續疊代中損失值的增加

圖 24. 損失圖表顯示以過高的學習率訓練的模型,其中損失曲線在後續疊代中大幅增加。

練習:檢查您的理解程度

理想的學習率為何?
理想的學習率取決於問題。
每個模型和資料集都有各自的理想學習率。
0.01
1.0

批量

批次大小 是超參數,指的是模型在更新權重和偏差之前處理的樣本數量。您可能會認為,模型應先計算資料集中每個示例的損失,再更新權重和偏差。不過,如果資料集包含數十萬或數百萬個樣本,使用完整批次就沒有實用性。

有兩種常見的技術可在平均情況下取得正確的梯度,無須在更新權重和偏差之前查看資料集中的每個範例,這兩種技術分別是隨機梯度下降法小批次隨機梯度下降法

  • 隨機梯度下降 (SGD):隨機梯度下降在每個疊代中只使用單一例項 (批次大小為 1)。在足夠的疊代次數下,SGD 雖然可行,但雜訊相當多。「雜訊」是指訓練期間的變化,會導致損失在迭代期間增加,而非減少。「隨機」一詞表示系統會隨機選擇一個範例,用於組成每個批次。

    請注意,在下圖中,當模型使用 SGD 更新權重和偏差時,損失值會略有波動,這可能會導致損失圖表中的雜訊:

    圖 25. 損失曲線陡峭,但有許多細微的波動。

    圖 25. 使用隨機梯度下降 (SGD) 訓練的模型,損失曲線中顯示雜訊。

    請注意,使用隨機梯度下降法可能會在整個損失曲線中產生雜訊,而不僅限於收斂附近。

  • 小批隨機梯度下降法 (小批 SGD):小批隨機梯度下降法是全批和 SGD 之間的折衷方案。對於 $ N $ 個資料點,批次大小可以是任何大於 1 且小於 $ N $ 的數字。模型會隨機選擇每個批次中包含的範例,計算其梯度的平均值,然後在每次迭代中更新權重和偏差。

    每個批次的範例數量取決於資料集和可用的運算資源。一般來說,小批次會像 SGD 一樣運作,而大批次則會像全批次梯度下降一樣運作。

    圖 26. 損失曲線開始趨於平坦,且在收斂時波動幅度大幅降低。

    圖 26。使用小批隨機梯度下降法訓練的模型。

訓練模型時,您可能會認為雜訊是不必要的特性,應予以移除。不過,適度的噪音有助於提升學習效果。在後續模組中,您將瞭解雜訊如何協助模型更有效地泛化,並在神經網路中找出最佳權重和偏差。

訓練週期

在訓練期間,訓練週期是指模型已處理訓練集的每個範例一次。舉例來說,如果訓練集包含 1,000 個範例,而迷你批量大小為 100 個範例,則模型需要進行 10 次iterations才能完成一個訓練週期。

訓練通常需要許多個迴圈。也就是說,系統需要多次處理訓練集的每個範例。

訓練週期數是您在模型開始訓練前設定的超參數。在許多情況下,您需要實驗模型需要多少個週期才能收斂。一般來說,疊代次數越多,產生的模型就越好,但訓練時間也會增加。

圖 27. 完整批次是整個資料集,迷你批次是資料集的子集,而一個 epoch 則是完整通過十個迷你批次。

圖 27。全批與小批。

下表說明批次大小和迴圈與模型更新參數次數的關係。

批次類型 權重和偏誤更新時
完整批次 模型查看資料集中的所有範例後,舉例來說,如果資料集包含 1,000 個示例,且模型訓練 20 個週期,則模型會更新權重和偏差 20 次,每個週期一次。
隨機梯度下降法 模型查看資料集的單一示例後。舉例來說,如果資料集包含 1,000 個示例,且訓練 20 個迴圈,則模型會更新權重和偏差 20,000 次。
小批隨機梯度下降法 模型查看每個批次中的範例後。舉例來說,如果資料集包含 1,000 個示例,批次大小為 100,且模型訓練 20 個迴圈,則模型會更新權重和偏差 200 次。

練習:檢查您的理解程度

1. 使用小批隨機梯度下降法時,最佳批次大小為何?
視情況而定
理想的批次大小取決於資料集和可用的運算資源
每批次 10 個示例
每批次 100 個示例
2. 以下敘述何者正確?
大量資料不利於處理有許多異常值的資料。
這是錯誤的說法。透過平均更多梯度的做法,較大的批次大小有助於減少資料中出現離群值的負面影響。
將學習率提高一倍可能會減慢訓練速度。
這項敘述正確無誤。將學習率加倍可能會導致學習率過大,進而導致權重「反彈」,增加收斂所需的時間。一如往常,最佳超參數取決於您的資料集和可用的運算資源。