ICML (International Conference on Machine Learning) 是機器學習領域的頂級會議,由國際機器學習學會(ICML)舉辦,一般在每年的7-8月召開。在ICML 2020上,百度的收錄論文中有三篇與梯度下降、反向傳播相關,它們進一步闡釋和改進了作爲深度學習基礎的梯度下降與反向傳播技術,分別是:

1)RIFLE: Backpropagation in Depth for Deep Transfer Learning through Re-Initializing the Fully-connected LayEr

2)On the Noisy Gradient Descent that Generalizes as SGD

3)Scalable Differential Privacy with Certified Robustness in Adversarial Learning

隨着深度學習在大數據時代的應用場景越來越廣泛,研究者和使用者對於神經網絡的準確率有越來越高的要求,這就離不開對訓練神經網絡中梯度下降算法(Backpropagation)與反向傳播算法(Gradient Descent, GD)的理解與演進。在今年被收錄的RIFLE: Backpropagation in Depth for Deep Transfer Learning through Re-Initializing the Fully-connected LayEr 一文中,百度基於傳統的反向傳播方法提出了可以應用於 深度遷移學習 的RIFLE(Re-Initializing the Fully-connected LayEr)算法,使得神經網絡模型的訓練更充分;在On the Noisy Gradient Descent that Generalizes as SGD一文中, 作者發現不同類別SGD梯度噪音在正則化模型訓練的表現相當,並提出一種新穎的乘法噪音的理解,衍化成亦可適用於大批量SGD優化的算法;Scalable Differential Privacy with Certified Robustness in Adversarial Learning則應用梯度下降算法建立了差分隱私(Differential Privacy, DP)保護,對抗學習和認證穩健性之間的連結。

RIFLE算法:全連接層的再初始化,簡潔有效提升準確度的新算法

傳統的遷移學習中,使用預先訓練的模型對深層卷積神經網絡(CNN)進行微調有助於將從較大的數據集中學到的知識遷移到目標任務中。儘管目標訓練數據集時常很小,遷移學習後模型的準確性也可以大大提高,但遷移學習後的模型權重通常和預訓練模型權重接近,這個限制導致網絡中部分參數在迭代中更新較少。爲了解決這個問題,RIFLE算法應運而生。

RIFLE即Re-Initializing the Fully-connected LayEr,全連接層的再初始化。RIFLE爲CNN的深層權重帶來了有意義的更新,並改善了低層級的特徵學習。實驗表明,使用RIFLE可以顯着提高 深度遷移學習 的準確性。在相同的場景下,RIFLE比其他已知的方法(dropout, dropconnect,stochastic depth, disturb label, cyclic learning rate等)的表現更好,測試精度可以提高0.5%–2%。經驗案例和消融研究(ablation studies)進一步證實了RIFLE對於準確率的提升。 圖1:使用SGD優化器的RIFLE算法 研究人員通過實驗比較了RIFLE與已知方法的表現,以下是具體闡述。

1. 總體比較

研究人員用兩種常見的精調算法,L^2和L^2-SP,測試了 深度遷移學習 算法。

1.1 與遷移學習的顯式正則器的比較

實驗發現,RIFLE穩定且顯著地提升了L^2和L^2-SP兩種精調算法的表現。這證明了使用RIFLE在現有顯式正則器上改善深度轉移學習的可行性。

1.2 與算法+顯式正則器的比較

在與dropout, dropconnect, cyclic learning rate和disturb label等方法的比較下,RIFLE的表現均更好。其中dropout和disturb label也表現較好,但在多數情況下不敵RIFLE。

2. 消融研究

爲了研究哪部分對RIFLE最爲關鍵,研究人員進行了消融研究。分析研究結果得知,算法的核心基礎在於再初始化全連接層,而非週期學習率(cyclic learning rate)。

3.學習曲線的比較

通過圖2的學習曲線結果,可以看到,相比於週期學習率或傳統訓練程序,RIFLE導致模型的訓練曲線震盪更大,表明訓練過程中權重有較多調整。此外,通常通過模型測試曲線的趨勢來評估它的泛化能力,觀察圖2中各個方法在測試集上的表現,研究人員發現RIFLE這種調整可以提升 深度遷移學習 的泛化能力。 圖2:學習曲線的比較結果 總結來說,百度新提出的RIFLE算法通過在精調時隨機訓練的方式間歇性再初始化全連接層,使 深度遷移學習 的模型得到更充分的訓練,從而提升準確率。

MSGD算法:建構對於梯度下降泛化性的行爲的深層次理解

在反向傳播中,梯度下降算法(Gradient Descent, GD)扮演了十分重要的角色。梯度下降(Gradient Descent, GD)是常常用於求解機器學習模型的參數的優化算法。使用梯度下降算法時,先定義損失函數,然後隨機給定函數中參數的初始值,計算損失值,然後通過不斷迭代的方式優化參數,在有限步數內,期望使損失函數取到最小值。對於一般的梯度下降來說,損失函數會涉及到模型中的每一個樣本,導致計算量很大,於是產生了隨機梯度下降(Stochastic Gradient Descent, SGD)和小批量梯度下降(Mini-batch Gradient Descent)、大批量梯度下降(Large-batch Gradient Descent)等方法。

隨機梯度下降的損失函數每次只會隨機選取到一個樣本,這就大大簡化了計算流程,同時加快了運算速度。但是每次隨機選取一個樣本可能會造成比較大的偏差,小批量梯度下降則是從全部樣本中選取一定數量的樣本計算損失值來減小偏差。嚴格意義上,隨機梯度下降,即SGD每次迭代只選取一個樣本,廣義來說,小批量梯度下降也有時被當作SGD的一種。

近期研究發現,SGD事實上催生了一種正則化(regularization)效果。通過比較GD、SGD、小批量SGD、大批量SGD和GLD (Gradient Langevin Dynamic)之間的泛化能力,研究人員發現SGD的泛化能力強於GD,小批量SGD的泛化能力強於大批量SGD,GLD的泛化能力無法與SGD比較。爲什麼會產生這些現象呢?

第一,SGD每次選取的樣本有一定的隨機性,這個過程會造成噪音(noise),可以將SGD看作一種每次迭代有不偏(unbiased)噪音的確定算法[1],這種噪音可以稱爲梯度噪音(gradient noise);第二,小批量SGD的梯度噪聲要比大批量SGD的梯度噪聲振幅(magnitude)更廣[2][3];第三,即使調整到相同振幅,SGD噪音具有非平凡協方差結構,而不像GLD只是白噪聲。

從以上討論中可知,特定噪音可以有效對GD進行正則化。

因此可以說,SGD的梯度噪音對深度學習的泛化能力至關重要,過去的研究證實了振幅(magnitude)和協方差結構對梯度噪音的正則化有關鍵意義,但是對於噪音分佈(distribution)的具體情況研究人員仍然沒有一個清晰的瞭解。百度近期的研究提出一種新的結構:使用梯度矩陣與小批量抽樣產生的抽樣噪音相乘,來擬合梯度噪音。最新的研究成果主要有四大貢獻:

1. 提出了一種新穎的方式來模擬SGD噪音,即MSGD,使用梯度矩陣與小批量抽樣產生的抽樣噪音相乘。有噪音的梯度下降的類別則基於抽樣噪音的類別。

2. 探究了梯度噪音種類對正則化的影響:如果有合適的噪音振幅和協方差矩陣,研究人員通過理論和實驗展示了噪音種類對正則化沒有關鍵影響。

3. 修正了兩種基於高斯分佈的梯度正則化噪音,一種使用了(縮放後)費希爾(Fisher)協方差,另一種使用了SGD的梯度協方差作爲梯度噪音的協方差。通過分析其抽樣噪音發現,兩種情況等價。

4. 由以上研究結果可知,噪音的類別對泛化能力的影響有限,研究人員提出了一種新的算法。這種算法針對不同類別的噪音都可以進行具有泛化能力的梯度下降。這種算法對大批量SGD的訓練也同樣適用,且不會對模型泛化能力造成負面影響。 圖3:MSGD算法

圖4:小批量MSGD算法

圖5:MSGD的泛化能力 在圖5中,橫軸是迭代次數,縱軸是測試準確性。圖5(a)中研究人員使用FashionMNIST作爲訓練集,隨機抽去了1000個樣本,隨後訓練了一個小型的卷積型網絡;圖5(b)中研究人員使用SVHN的25000個樣本作爲訓練集,在沒有批量標準化(batch normalization)的情況下訓練了VGG-11;圖5(c)中研究人員在沒有應用數據增強(data augmentation)和權重衰減的情況下在CIFAR-10上面訓練了ResNet-18。

爲便於敘述,先介紹一些縮寫:

MSGD-Fisher:協方差是(縮放後)費希爾的高斯梯度噪音MSGD。

MSGD-Cov:協方差是SGD協方差的高斯梯度噪音MSGD。

MSGD-Bernoulli:伯努利(Bernoulli)抽樣噪音的MSGD。

MSGD-[Fisher-B]:使用費希爾估計的小批量樣本數爲B的MSGD-Fisher。

圖4顯示了MSGD-Cov在不同數據集和模型上的結果,這些結果表明即使分佈類別不同,MSGD-Cov和傳統SGD的泛化能力一樣良好。更有趣的是,研究人員發現MSGD-Cov比vanilla SGD收斂得更快。

圖6:小批量MSGD的泛化能力 在圖6中,橫軸是迭代次數,縱軸是測試準確性。圖6(a)中研究人員使用SVHN的25000個樣本作爲訓練集,在沒有批量標準化的情況下訓練了VGG-11;圖6(b)中研究人員在沒有應用數據增強(data augmentation)和權重衰減的情況下在CIFAR-10上面訓練了ResNet-18;圖6(c)中研究人員用全套方法在CIFAR-10上訓練了ResNet-18。

從圖6(a)(b)中看出,採取樣本量爲B的大批量數據集相比大批量樣本有更好的泛化能力,且收斂速度更快。即使在CIFAR-10訓練ResNet-18的實際過程中,大批量MSGD-Fisher有和小批量SGD一樣的泛化能力,雖然大批量SGD的表現較差一些。由此,圖6中的實證結果展現出小批量MSGD在實際應用中的廣闊前景。

總結來看,在百度的最新研究成果改變了傳統觀念中認爲SGD是GD增加特定類別噪音的想法,且提出MSGD的新算法,使得其泛化性和SGD同樣良好,有助於更好地理解了梯度下降的泛化性及其行爲。

此外,梯度下降法在保護數據安全的領域也有應用,在百度新的研究中使用梯度下降法建立了差分隱私(Differential Privacy, DP)保護,對抗學習和認證穩健性之間的連結。 

參考文獻:

[1]Bottou, L. Stochastic gradient learning in neural networks. Proceedings of Neuro-Nımes , 91(8), 1991.

[2]Hochreiter, S. and Schmidhuber, J. Flat minima. Neural Computation , 9(1):1–42, 1997. 

[3]Jastrze ̨bski, S., Kenton, Z., Arpit, D., Ballas, N., Fischer, A., Bengio, Y., and Storkey, A. Three factors influencing minima in sgd. arXiv preprint arXiv:1711.04623 , 2017.

相關文章