詳細解釋
批次大小(Batch Size)是每次梯度更新使用的訓練樣本數量,影響訓練穩定性、速度和泛化性能,是重要的超參數之一。
梯度更新方式:
- 批量梯度下降(Batch GD):整個數據集作為一批
- 穩定但慢,現代深度學習不使用
- 隨機梯度下降(SGD):每個樣本更新一次
- 噪聲大,但可逃離局部最小值
- 現代通常也不單獨使用
- 小批次梯度下降(Mini-batch):
- 折中方案,現代標準
- 通常32-1024,取決於硬件和任務
影響因素:
- 訓練穩定性:大批次梯度估計更準確
- 泛化性能:小批次通常泛化更好
- 訓練速度:大批次充分利用硬件並行
- 記憶體:受GPU顯存限制
- 學習率:大批次通常需要更大學習率
線性縮放規則:
- 批次大小翻倍,學習率也翻倍
- 理論基礎:保持梯度更新步長一致
- 限制:太大時失效,需要漸進調整
大批量訓練:
- 挑戰:泛化性能下降( sharp minima)
- 解決:
- 學習率warmup
- LARS/LAMB優化器
- 梯度累積(模擬大批量)
- 應用:ImageNet大規模訓練
選擇策略:
- 硬件限制:最大化利用GPU記憶體
- 經驗法則:32-256是常見範圍
- 任務相關:
- 圖像:可較大(256+)
- NLP:受序列長度限制
- 調參:驗證集性能為準
與優化器的關係:
分布式訓練:
- 總批次 = 單GPU批次 × GPU數
- 需要相應調整學習率
- 同步批次正規化統計
批次大小的權衡是訓練深度網絡的關鍵考量。