引入Powerball 與動量技術,新SGD優化算法收斂速度與泛化效果雙...

2020-12-03 AI 科技評論

本文介紹的是 IJCAI-2020論文《pbSGD: Powered Stochastic Gradient Descent Methods for Accelerated Non-Convex Optimization》,該論文由華中科技大學、滑鐵盧大學和加州大學伯克利分校合作完成。

者 | 孫偉高

編輯 | 叢 末

論文地址: https://www.ijcai.org/Proceedings/2020/0451.pdf

開源地址:https://github.com/HAIRLAB/pbSGD

1

前言

深度學習的訓練由於高維函數空間和隨機目標函數的存在,相比於傳統優化而言更加困難。隨機梯度下降(Stochastic Gradient Descent)作為深度學習領域內第一種被廣泛用於優化訓練的方法,通過其計算小批量數據的目標損失,並向負梯度方向迭代更新模型參數。目前,基於SGD方法已衍生出許多用於更加高效訓練神經網絡的優化方法。

在這篇論文中,我們提出了一種新的基於SGD的優化方法(pbSGD)用於訓練神經網絡。

與目前的主流思路(自適應學習率或者動量法)不同,該論文作者在之前的工作[1]中,通過利用ODE的有限時間穩定性的直觀表達,提出了一種新的加速算法收斂的方法。這類稱為Powerball的方法,是通過簡單的將冪係數 γ∈[0,1)添加到各類基於梯度的優化方法中的梯度上得到的。從本質上講,Powerball方法可以看作是相對於p-範數的最速下降法,其中 p = 1 + 1/γ。這裡,Powerball函數而不是其他非線性函數的一種直觀的解釋是:一方面,數學中帶有指數(冪)算子的多項式可以用來逼近任意的非線性函數。因此,作者們將冪係數作為變量參數來創建Powerball函數。另一方面,因為冪係數 γ∈[0,1),根據冪函數的作用原理,不難發現,通過引入作用於梯度的冪係數,可以有效地改善梯度消失的現象。

對於離散時間模型(優化算法)在有限時間內收斂性的推導是非常困難的。正是這一點促使[1]中作者提出了優化方法的連續時間模型,並分析了它們在有限時間內的收斂性。此外,[1]中指出了對於給定的優化問題,如何選取最優的γ在理論上是開放的。眾所周知,當涉及大規模優化問題時,初始迭代對於給定的計算約束是至關重要的。為此,[1]中也開發了幾類Powerball方法的變形,它們在經驗上都分別優於標準的優化方法,特別是在初始迭代中。在[1]中的基於多個實際數據集上的實驗表明,文中所提出的方法可以使(隨機)梯度下降法和L-BFGS方法的收斂速度提高10倍。

具體而言,基於[1]中作者提出的在梯度下降法中應用Powerball函數的基本思想,本文將其推廣到了SGD的情形,得到了一類簡單且通用的改善深度神經網絡訓練效率的方法。在pbSGD中,Powerball函數作用於SGD中的隨機梯度項,其作用機制與[1]中一致。該方法在迭代過程中對隨機梯度做了簡單的冪函數變換改善了SGD方法的性能,通過只引入一個額外的超參數即冪指數項。我們進一步提出了結合動量(momentum)的pbSGD,即pbSGDM,並給出了兩種方法的收斂性理論分析。

實驗表明,提出的pbSGD和pdSGDM方法,可以實現與其他自適應梯度方法相比更快的收斂速度,以及與SGD方法的相近的泛化效果,同時該方法可以保持[1]中方法的優點,主要包括在初始迭代時的訓練加速、算法性能對超參數的魯棒性,以及有效地改善梯度消失問題。

2

研究背景

隨機優化是深度學習研究中非常重要的一環。基於SGD方法,近些年提出了許多其他能有效訓練深度神經網絡的優化方法,例如結合動量的SGD方法(SGD with Momentum,SGDM)、RMSProp和Adam等。自適應算法(比如AdaGrad、RMSProp、Adam)通常在前期可以獲得較好的收斂性能,然而最近研究表明自適應算法在優化中容易收斂到局部極小值,在測試集上泛化性能較差。因此許多計算機視覺與自然語言處理方面的研究仍然採用SGD用於訓練網絡。另一方面,相比於自適應方法SGD在收斂速度方面有所欠缺。因此,如何使得SGD可以在非凸條件下有效逃離鞍點並取得更好的收斂效果成為了熱點研究領域。

針對SGD的設計思路目前主要有兩種:動量法和自適應學習率。SGDM從物理角度出發引入了一個動量項,並在實際應用中取得了比SGD更快的收斂效果,動量可以看作是指數滑動平均的一個特例。自適應算法通常採用自適應學習率的思路,通過積累歷史的二階與一階梯度信息來動態修改學習率,最早應用於AdaGrad方法中,Adam結合了AdaGrad與RMSProp算法成為目前最為常用的優化器之一。

與目前的主流思路(自適應學習率或者動量法)不同,我們提出了一種新方法,採用Powerball函數對梯度項作非線性變換來改善SGD在非凸情況下的表現,即pbSGD方法。本文的主要貢獻如下所示:

我們基於SGD提出了一種簡單易用的優化方法pbSGD,給出結合了動量的pbSGD變體即pbSGDM。我們在多種數據集與任務上進行了詳盡的實驗對比,實驗結果表明本文提出的方法能在訓練前期取得比自適應算法更好的收斂速度,同時在測試集上與SGD和SGDM的泛化效果相近。我們提供了在非凸條件下pbSGD和pbSGDM的收斂速度的理論分析。

3

算法介紹

我們這裡給出所提兩種算法的思路和推導,其中pbSGD把Powerball優化方法和傳統的隨機梯度下降法相結合,pbSGDM是pbSGD引入動量項以後的延伸。

1、pbSGD

訓練一個含有n個自由參數的DNN網絡,可以被建模為一個無約束的優化問題:

這裡f是一個有下界的函數,SGD已經被證明是高維優化問題的一個有效且高效的求解方法。它通過迭代地更新參數向量對f進行了優化,這個更新是朝著隨機梯度g的反方向進行的。這裡的隨機梯度是通過訓練數據集的第t個小批次計算而來。SGD的參數更新策略如下所示:

現在,我們介紹一個新穎的非線性函數:

並稱之為Powerball函數。這裡sign是指符號函數,如果z是一個向量,則Powerball函數要作用到z的每一個元素上。這裡的參數gamma是Powerball函數引入的一個新參數,用以調整Powerball函數作用的機制和強度。

這裡,我們把Powerball函數作用到SGD的隨機梯度項上,如下所示:

便得到了新的pbSGD優化算法。

2、pbSGDM

動量技術是從物理過程中獲取的靈感,已將其成功地應用於SGDM,並在大多數情況下可以獲得神經網絡的更佳訓練結果。我們這裡同樣提出pbSGD的動量加速形式,即pbSGDM,其參數更新規則為:

本文提出的兩個算法,其偽代碼可總結為如下形式:

4

實驗對比

在三個公開數據集CIFAR-10、CIFAR-100和ImageNet上,我們分別使用了幾種不同的模型來比較算法的收斂速度和泛化效果,其中CIFAR-10用於訓練模型ResNet-50和DenseNet-121、CIFAR-100用於訓練ResNet-29和WideResNet、ImageNet用於訓練ResNet-50。另外我們構建了一個13層的全連接神經網絡來驗證pbSGD緩解梯度消失的能力。

1、收斂和泛化對比實驗

我們在三個數據集上完成了七個不同的對比實驗,對比用的優化器有SGDM、pbSGD、pbSGDM、AdaGrad、RMSProp和Adam,我們在1.0~1e-4的範圍內通過網格搜索找到最佳的學習率,每個學習率完成五次求平均值以避免隨機誤差,其他的超參數保持默認值,實驗中參數的設置與其他論文保持一致。下圖展示了最佳學習率的情況下,各優化器在不同實驗下的訓練曲線,其中箭頭標註出的是測試集上最佳的準確率,實驗結果如下所示:

從實驗結果中我們可以看出加入Powerball函數得到的pbSGD算法在沒有積累歷史梯度信息的情況下,在前期收斂上比自適應算法(AdaGrad、RMSProp和Adam)更加迅速,在CIFAR-10和CIFAR-100測試集上的表現與SGD相比相差無幾,pbSGDM和pbSGD表現相近。在ImageNet數據集上pbSGD仍然展現出了較好的收斂速度,但是我們注意到泛化性能與SGD差距加大,我們猜測是自適應算法和pbSGD改變了梯度分布,在較大數據集上導致了不好的結果。

2、梯度消失

Powerball函數的引入重新縮放了梯度向量,因此在深度神經網絡中還可以緩解梯度消失的問題。我們設計了一個13層的全連接網絡,激活函數選擇為ReLU,分別使用SGD和pbSGD來訓練,學習率仍然採用網格搜索選取。通過實驗我們發現SGD無法訓練該網絡結構,而pbSGD在縮放梯度向量後可以正常訓練模型。

3、魯棒性改善

在實驗中我們發現,超參數gamma的引入不僅可以加速收斂,同時可以改善對測試集準確率和收斂性的魯棒性。(gamma=1.0時pbSGD變為了SGD算法)

1)改善學習率對準確率的魯棒性

超參數gamma可以在設置學習率較小時規範測試集表現,例如在學習率eta=1e-3、gamma=0.6時,pbSGD的測試集準確率為90.06%,而SGD準確率為79.87%。

2)改善學習率對收斂的魯棒性

超參數gamma同樣可以改善學習率對收斂的魯棒性,在學習率設置的不太合適時pbSGD仍然能取得較好的收斂表現。

4、與學習率策略相結合

pbSGD只對梯度項做了改變,因此可以與其他優化方法很好的結合起來去進一步提升整體的性能。我們選擇了restart的學習率策略用於對比實驗,從結果中可以看出結合了學習率策略的pbSGD取得了更好的結果。

5、對batch size的魯棒性

增加batch size可以加大每次迭代時的計算量從而加速訓練過程,然而因為改變了梯度的分布特點,也會導致泛化性能的變差。我們採用不同的大小進行對比實驗來探討pbSGD對batch size的魯棒性。從實驗中我們可以看出,batch size的增加使得SGD的泛化性能迅速降低,而對pbSGD的影響相對較小,Powerball函數的引入提升了SGD對於batch size的魯棒性。

5

總結

本文中我們提出了一種簡單易行但切實有效的方法用於改進SGD和SGDM方法的性能,實驗結果證明該方法可以有效地加速訓練中模型前期的收斂、改善超參數選擇的魯棒性,並且緩解梯度消失的問題。另外,該方法可以很好的與其他方法相互補,比如學習率策略,用於進一步改進優化器的性能。

參考文獻:

[1] Y. Yuan, M.Li, J. Liu and C. Tomlin, "On the Powerball Method: Variants of DescentMethods for Accelerated Optimization," in IEEE Control Systems Letters,vol. 3, no. 3, pp. 601-606, 2019.

招聘

AI科技評論希望能夠招聘科技編輯/記者

辦公地點:北京/深圳

職務:以跟蹤學術熱點、人物專訪為主

工作內容:

1、關注學術領域熱點事件,並及時跟蹤報導;

2、採訪人工智慧領域學者或研發人員;

3、參加各種人工智慧學術會議,並做會議內容報導。

要求:

1、熱愛人工智慧學術研究內容,擅長與學者或企業工程人員打交道;

2、有一定的理工科背景,對人工智慧技術有所了解者更佳;

3、英語能力強(工作內容涉及大量英文資料);

4、學習能力強,對人工智慧前沿技術有一定的了解,並能夠逐漸形成自己的觀點。

感興趣者,可將簡歷發送到郵箱:jiangbaoshang@yanxishe.com

相關焦點

  • 一文看懂各種神經網絡優化算法:從梯度下降到Adam方法
    二階優化算法 二階優化算法使用了二階導數(也叫做Hessian方法)來最小化或最大化損失函數。由於二階導數的計算成本很高,所以這種方法並沒有廣泛使用。 詳解各種神經網絡優化算法 梯度下降 在訓練和優化智能系統時,梯度下降是一種最重要的技術和基礎。
  • 一文概覽深度學習中的五大正則化方法和七大優化策略
    選自arXiv 機器之心編譯 深度學習中的正則化與優化策略一直是非常重要的部分,它們很大程度上決定了模型的泛化與收斂等性能。本文主要以深度卷積網絡為例,探討了深度學習中的五項正則化與七項優化策略,並重點解釋了當前最為流行的 Adam 優化算法。
  • 【乾貨】機器學習最常用優化之一——梯度下降優化算法綜述
    原標題:【乾貨】機器學習最常用優化之一——梯度下降優化算法綜述 1新智元獲授權轉載 由于波動,因此會使得迭代次數(學習次數)增多,即收斂速度變慢。不過最終其會和全量梯度下降算法一樣,具有相同的收斂性,即凸函數收斂於全局極值點,非凸損失函數收斂於局部極值點。
  • 技術| 深度解讀最流行的優化算法:梯度下降
    動量項 γ 往往被設置為 0.9 或為其他差不多的值。 從本質上說,動量法,就仿佛我們從高坡上推下一個球,小球在向下滾動的過程中積累了動量,在途中他變得越來越快(直到它達到了峰值速度,如果有空氣阻力的話,γ<1)。在我們的算法中,相同的事情發生在我們的參數更新上:動量項在梯度指向方向相同的方向逐漸增大,對梯度指向改變的方向逐漸減小。
  • Adam 優化算法詳解
    據牛津字典的定義,優化是指最好或最有效地利用一種情況或資源,或者簡單地使自己的事物達到最佳狀態的行為。 通常,如果可以對某事進行數學建模,則很有可能可以對其進行優化。 這在深度學習領域起著至關重要的作用(可能是整個人工智慧),因為您選擇的優化算法可能是在數分鐘,數小時或數天(有時甚至是數周)內獲得高質量結果的區別。
  • CVPR2017精彩論文解讀:效果更顯著的模型壓縮算法和泛化優化算法
    下文是優必選雪梨AI研究院對其入選CVPR 2017的兩篇論文《基於低秩稀疏分解的深度模型壓縮算法》和《利用奇異值界定提升深度神經網絡訓練效果和識別精度》進行的解讀,除此之外他們還對會上Workshop競賽的進行了相關介紹。
  • 使用Numpy進行深度學習中5大反向傳播優化算法的性能比較
    在本文中,我們將通過計算二次凸函數的最優點來數值比較主要的深度學習優化算法的性能。簡介深度學習被稱為人工智慧的未來。現在,神經網絡被稱為通用函數逼近器,也就是說,它們有能力表示這個宇宙中任何複雜的函數。計算這個具有數百萬個參數的通用函數的想法來自優化的基本數學。優化可以通過多種方式完成,但在本文中,我們將重點討論基於梯度下降的優化技術。
  • 谷歌大腦提出「洗髮水」二階優化算法,Transformer訓練時間減少40%
    其實二階梯度會有更好的特性,因為它是計算梯度的導數,能夠更快地找到最合適的下降方向和速度。然而出於計算量和存儲成本的考慮,二階優化算法很少用到。最近,谷歌大腦提出了一種新的二階預處理方法,帶來很大改進,優於SGD、Adam和AdaGrad等一階算法,縮短了神經網絡的訓練時間。
  • 10個梯度下降優化算法+備忘單
    Adadelta應該是是「自適應增量」的縮寫,其中,delta表示當前權重與新更新權重之間的差值。Adadelta算法和RMSprop算法的區別,在於Adadelta算法中用delta的指數加權平均值D來替代原來在Adadelta算法中的學習率參數。
  • 一種改進操作算子的加速收斂遺傳算法
    關鍵詞:遺傳算法;變異;收斂速度;種群數本文引用地址:http://www.eepw.com.cn/article/192077.htm0 引 言 遺傳算法(Genetic Algorithm,GA)是一種宏觀意義下的仿生算法,它模仿的機制是一切生命與智能的產生與進化過程,從一個初始種群出發,不斷重複執行選擇,雜交和變異的過程,使種群進化越來越接近某一目標。
  • 跌宕起伏的收斂之旅
    亞聲速不可壓縮問題的控制方程為橢圓型,任意一點的擾動都會影響全場,而超聲速流動的控制方程為雙曲型,即流場中的擾動只會向下遊傳播。對於不同的流動問題,人們需要構造不同的數值格式——這導致求解方法喪失了普適性。
  • 聽說你了解深度學習最常用的學習算法:Adam優化算法?
    By蔣思源2017年7月12日  深度學習常常需要大量的時間和機算資源進行訓練,這也是困擾深度學習算法開發的重大原因。雖然我們可以採用分布式並行訓練加速模型的學習,但所需的計算資源並沒有絲毫減少。而唯有需要資源更少、令模型收斂更快的最優化算法,才能從根本上加速機器的學習速度和效果,Adam算法正為此而生!
  • 應用改進的算法,優化波浪能轉換裝置陣列,提升系統發電效率
    天津大學電氣自動化與信息工程學院、國家電網天津市電力公司檢修公司的研究人員方紅偉、宋如楠、馮鬱竹、陳紫薇,在2019年第12期《電工技術學報》上撰文(論文標題為「基於差分進化的波浪能轉換裝置陣列優化」),針對如何有效利用波浪輻射和散射以提升波浪發電系統效率的問題,提出採用差分進化算法對波浪能轉換裝置陣列進行優化排布。
  • 要理解深度學習,必須突破常規視角去理解優化
    選自offconvex.org作者:Sanjeev Arora機器之心編譯參與:韓放、shooting普林斯頓計算機科學教授 Sanjeev Arora 認為,常規的優化觀點只關注目標的價值和收斂的速度,而這對於日益重要的深度學習來說是遠遠不夠的
  • 直接對梯度下手,阿里提出新優化技巧,一行代碼即可改善現有優化器
    機器之心編輯部優化技術何其多也!比如批歸一化、權重標準化……但現有的優化方法大多基於激活或權重執行,最近阿里達摩院的研究者另闢蹊徑,直接對梯度下手,提出全新的梯度中心化方法。只需一行代碼即可嵌入現有的 DNN 優化器中,還可以直接對預訓練模型進行微調。優化技術對於深度神經網絡 (DNN) 的高效訓練至關重要。
  • 百度多篇論文入選NeurIPS 2020,機器學習領先算法、理論「強輸出」
    此次大會中,百度研究院參會並發表了多篇高質量論文,論文聚焦大規模稀疏學習的加速求解、新發現物種數量預測、隨機非凸優化、高維數據判別分析等問題,分別提出了創新算法及理論,突破原有算法在實際應用中泛化效果差、優化效率低等限制,有效提升AI技術在自然生態學、統計學習理論等領域中的應用價值,同時也彰顯出百度在人工智慧與機器學習領域的持續技術創新力。
  • Science子刊:人腦存在加速學習機制,算力賽過最新AI算法
    新智元報導來源:Science等編輯:嘯林機器學習和深度學習算法的起源,是連接大腦中神經元的突觸強度的學習機制,它越來越多地影響著當代生活的幾乎所有方面。半個世紀以前,研究人員試圖模仿這些大腦的功能,將神經科學和人工智慧聯繫起來。
  • 這種多保真度優化技術是走向...
    這也影響了優化算法在自動機器學習問題上的效果。所以一些減少評價代價的方法被提出來,其中多保真度優化就是其中的一種。多保真優化的設定是有多種不同保真度的評價方式。低保真度評價上,獲得評價結果代價小,但是評價結果不準確;在高保真度評價上,評價結果準確,但是獲得評價的代價很大。
  • 史丹福大學馬騰宇:無法理解現有的深度學習算法?那就設計一個能...
    同時,他強調,計算機科學跟物理、生物等傳統科學的不同之處在於:可以不斷地設計新的算法。「雖然我們無法理解現有的深度學習算法,但我們可以設計我們既能理解又能保證有效的新算法。」我們下面來看馬騰宇的報告內容:一、為什麼過參數化的深度學習模型能實現泛化?
  • 深度學習優化入門:Momentum、RMSProp 和 Adam
    原標題:深度學習優化入門:Momentum、RMSProp 和 Adam 雷鋒網 AI 研習社按:本文為雷鋒網字幕組編譯的技術博客,原標題 Intro to optimization in deep learning: Momentum, RMSProp