Datawhale X 李宏毅蘋果書 AI夏令營 Task1.2 筆記

LYLtim發表於2024-08-27

《深度學習詳解》3.2節中關於批次和動量的主要內容總結:

批次的概念:在深度學習訓練過程中,資料不是一次性全部用於計算梯度,而是被分成多個小批次(batch),每個批次包含一定數量的資料。每個批次的損失函式用於計算梯度並更新模型引數。

批次大小對梯度下降法的影響:

  兩種極端情況:
    批次梯度下降法(Batch Gradient Descent, BGD):使用全部資料作為批次,計算穩定但每次更新需要等待所有資料處理完畢,計算量大。
    隨機梯度下降法(Stochastic Gradient Descent, SGD):批次大小為1,每次只用一個資料點更新引數,引入了隨機性,更新方向可能會曲折,但有助於逃離區域性最小值。

  計算時間:考慮並行運算,批次大小較小時,完成一個回合的時間較長;批次大小較大時,GPU計算梯度並更新引數的時間會增加,但在一定範圍內,如從1到1000,時間幾乎相同。

  訓練效果:實驗表明,過大的批次大小可能會導致模型在驗證集上準確率降低,而小的批次梯度有噪聲,但對訓練和測試有幫助,能避免陷入區域性最小值。

動量法(Momentum Method):一種改進的梯度下降方法,透過結合當前梯度和之前更新的方向來更新引數,有助於模型更快收斂,並且能夠越過一些小的區域性最小值或鞍點。

動量法的數學表達:動量m可以看作是之前所有梯度的加權和,更新規則可以表示為:
m_{t} = λ m_{t-1} - η g_{t}
其中,m_{t}是第t步的動量,λ是動量引數,η是學習率,g_{t}是第t步的梯度。

具體計算:每一步的移動方向由梯度反方向加上前一步移動方向決定,移動量可以表示為之前所有計算梯度的加權和。

動量法的優勢:動量法可以增加引數更新的穩定性,減少震盪,有助於模型更快收斂到全域性最小值。

我閱讀3.2.1小批次大小對梯度下降法的影響 過程中的疑問:

指的是 同一個損失函式算出兩個不同的損失函式值L1、L2 還是 兩個不同的損失函式L1、L2?

因為實踐中很少對不同mini-batch採用不同的損失函式,所以我傾向認為是同一個損失函式算出兩個不同的損失函式值L1、L2。

問了LLM:

通常在小批次梯度下降法中,應使用相同的損失函式進行計算,以保證最佳化的一致性和穩定性。

關於小批次梯度下降法中損失函式的解釋 在小批次梯度下降法中,通常使用的是同一個損失函式來計算不同小批次資料的損失值。 - 同一個損失函式計算不同值 每次選擇不同的小批次資料進行計算時,都是基於同一個預先定義好的損失函式,如均方誤差(MSE)等,只是由於資料的不同而得到不同的損失值,分別表示為 L1、L2 等。

相關文章