進階最佳化
餘弦退火排程(cosine annealing schedule)
你通常想在前期用大的學習率快速穿越地形,然後平滑地下降,好讓最佳化器溫和地落進極小值、而不是在它周圍嘎嘎作響。餘弦退火排程把學習率塑造成正是這樣:它從高處開始,沿著餘弦波前半段的平滑曲線一路緩降到接近零,沒有任何突兀的驟降。
在第 t 步的學習率是 eta_t = eta_min + 二分之一 (eta_max - eta_min)(1 + cos(pi t / T)),其中 T 是一個週期的長度。「熱重啟」(warm restarts)變體 SGDR 會週期性地把 t 重設為零,常常還搭配逐漸增長的週期,於是學習率跳回高點再重新退火;這讓最佳化器在整段訓練過程中得以逃出一個盆地、探索其他盆地。前面通常會接一段短的線性暖身(warmup),免得最初幾步就以全速起跑。
餘弦排程在現代視覺與語言模型訓練中無所不在,因為它比階梯式衰減更平滑、要設定的旋鈕也更少。熱重啟還能被加以利用來蒐集快照集成(snapshot ensembles),每個週期一個模型,幾乎不花額外成本。最關鍵的兩個選擇是最終學習率,以及餘弦下降所橫跨的總視野 T。
\eta_t = \eta_{\min} + \tfrac12(\eta_{\max}-\eta_{\min})\!\left(1+\cos\frac{\pi t}{T}\right)
學習率沿半個餘弦波,從 eta_max 降到 eta_min。
對於長的單週期大型語言模型訓練,排程通常退火到峰值的一小部分、而非真正的零;太早完全衰減到零,可能在資料用盡之前就讓學習停滯。
又稱
另見