速度堪比Adam,準確率媲美SGD,還能穩定訓練GAN:全新最佳化器成為NeurIPS爆款

機器之心報道,作者:張倩、小舟

在一篇 NeurIPS 2020 Spotlight 論文中,來自耶魯大學等機構的研究者提出了一種新型最佳化器,可以像 Adam 一樣快速收斂,準確率媲美 SGD ,還能穩定訓練 GAN 。

最常用的深度學習最佳化器大致可分為自適應方法(如Adam)和加速方案(如帶有動量的隨機梯度下降(SGD))。與 SGD 相比,許多模型(如卷積神經網路)採用自適應方法通常收斂速度更快,但泛化效果卻較差。對於生成對抗網路(GAN)這類的複雜情況,通常默認使用自適應方法,因為其具有穩定性。

在 NeurIPS 2020 的一篇 Spotlight 論文中,來自耶魯大學、伊利諾伊大學香檳分校等機構的研究者提出了一種名為「AdaBelief」的新型最佳化器,可以同時滿足 3 個優點:自適應方法的快速收斂、SGD 的良好泛化性、訓練穩定性。論文程式碼也已經放出。

  • 論文連結:https://arxiv.org/pdf/2010.07468.pdf

  • 論文頁面:https://juntang-zhuang.github.io/adabelief/

  • 程式碼連結:https://github.com/juntang-zhuang/Adabelief-Optimizer

AdaBelief 根據當前梯度方向上的「belief」來調整步長,將嘈雜梯度的指數移動平均(EMA)當作下一步的梯度預測。如果觀察到的梯度大大偏離了預測,那麼就不信任當前的觀察,採取一個較小的步長;如果觀察到的梯度接近預測值,那麼就相信當前的觀察,並採取一個較大的步長。

研究者用實驗驗證了 AdaBelief 的效果。在圖像分類和語言建模方面, AdaBelief 收斂迅速,準確率高,性能優於其他方法。具體來說,在 ImageNet 上, AdaBelief 的準確率可與 SGD 媲美。

此外,在 Cifar10 上訓練 GAN 期間,與經過調整的 Adam 最佳化器相比, AdaBelief 表現出了高度穩定性並提高了生成樣本的質量。

演算法

Adam和AdaBelief的演算法如上圖所示,不同之處已經用藍色字型標註。從圖中可以看出,AdaBelief沒有引入額外的參數。為了簡便,研究者省略了偏置矯正步驟。具體來說,在Adam中,更新方向是

,其中,v_t是

的指數移動平均值(EMA)。在AdaBelief中,更新方向是

,其中,s_t是 (g_t−m_t)^2的EMA。直觀來看,將m_t看作g_t的預測,當觀察結果g_t與預測結果m_t接近時,AdaBelief步長較大;當g_t與m_t相差較大時,AdaBelief步長較小。

AdaBelief 好在哪兒?

AdaBelief考慮了損失函數的曲率

AdaBelief考慮了損失函數的曲率

一個理想的最佳化器會考慮損失函數的曲率,而不是在梯度很大(或很小)的地方採取很大(或很小)的步長。上圖中的區域③展示了AdaBelief在「梯度大,曲率小」的情況下相較於Adam的優勢。

在這種情況下,|g_t|和v_t都很大,但|g_t−g_[t−1]|和s_t都很小。發生這種情況是因為學習率α很小。此時,理想的最佳化器應該增加步長。SGD採用了一個很大的步長(∼ α|g_t|);在Adam中,分母v_t很大,因此步長很小;而在AdaBelief中,分母s_t很小,因此步長和理想最佳化器一樣大。

AdaBelief考慮分母中梯度的符號

AdaBelief考慮分母中梯度的符號

在左圖中,我們考慮一個損失函數 f(x,y)=|x|+|y|。藍色的向量表示梯度,x表示最優點。最佳化器在y方向上震盪,在x方向上繼續前進。右圖是左圖對應的最佳化過程。我們可以觀察到,在Adam中,

,因此,它在x方向和y方向上步長一樣。但在AdaBelief 中,

,因此它在x方向上步長較大,在y方向上步長較小。

在方差較小時,Adam中的更新方向接近於「符號下降」

我們假設:

1.g_t來自一個平穩分佈,因此,在偏置矯正之後,

2.低噪聲假設,假設

,可以得到

3.低偏置假設,假設

很小,那麼作為

估計值的m_t的偏置

就很小。此時,

在這種情況下,Adam的表現很像「符號下降」。在2D 的例子中,更新是 ±45°,因此偏離了真正的梯度方向。符號更新效應可能導致自適應方法和SGD之間的泛化差距。但在AdaBelief中,當g_t的方差對於所有座標都相同時,更新方向會與梯度方向匹配。當方差不均勻時,AdaBelief會在方差大(小)時採取小(大)步長。

以下是幾個簡單問題的驗證結果:

以下是幾個簡單問題的驗證結果
實驗

實驗

圖像分類

研究者在Cifar10和Cifar100資料集上利用VGG11、ResNet34和DenseNet121進行了實驗。如下圖4所示,AdaBelief與自適應方法(如Adam)一樣實現了快速收斂,同時比SGD和其他方法具有更高的準確率。

研究者還在ImageNet上訓練了ResNet18,驗證集上的準確率如表2所示。從結果可以看出,AdaBelief優於其他自適應方法,並達到了與SGD相當的準確率(70.08VS70.23),這縮小了自適應方法與SGD之間的泛化差距。

時間序列建模

研究者在Penn TreeBank資料集上利用LSTM進行了實驗,測試集上的困惑度(perplexity)如圖5所示(越低越好)。對2層和3層LSTM模型來說,AdaBelief都實現了最低的困惑度,驗證了其具有自適應方法的快速收斂性和良好的準確率。對於1層模型而言,AdaBelief的性能接近於其他最佳化器。

GAN

研究者利用Wasserstein-GAN(WGAN)和WGAN-GP進行了實驗。對於每個最佳化器,在其最佳超參數設置下,研究者進行了5輪實驗,實驗結果如圖6和圖7所示。AdaBelief明顯由於其他最佳化器,並且其FID分值最低。

雖然效果看起來不錯,但論文發佈後也引發了一些質疑,比如:「在Cifar10和Cifar100的資料中,SGD的性能在150個epoch之後才開始下降。他們在150個epoch處進行了微調。在此之前,AdaBelief並沒有其他最佳化器性能好。」

相關文章