史加榮 王 丹 尚凡華 張鶴于
1.西安建筑科技大學理學院 西安 710055 2.省部共建西部綠色建筑國家重點實驗室 西安 710055 3.西安電子科技大學人工智能學院智能感知與圖像理解教育部重點實驗室 西安 710071 4.西安電子科技大學計算機科學與技術(shù)學院 西安 710071
作為人工智能目前最活躍的一個研究分支,機器學習根據(jù)經(jīng)驗數(shù)據(jù)來設計、開發(fā)算法,其目的是探索數(shù)據(jù)的生成模式,并用來發(fā)現(xiàn)模式和進行預測[1-2].深度學習是一類更廣的機器學習方法,允許由多個處理層組成的計算模型來學習具有多個抽象級別的數(shù)據(jù)表示[3].伴隨著深度學習的崛起,機器學習重新受到了學術(shù)界和工業(yè)界的廣泛關(guān)注.機器學習技術(shù)已廣泛地應用在計算機視覺、推薦系統(tǒng)、語音識別和數(shù)據(jù)挖掘等領域中.
回歸與分類等監(jiān)督學習是機器學習中最常見的一類學習問題,它提供了包含輸入數(shù)據(jù)和目標數(shù)據(jù)的訓練數(shù)據(jù)集.為了探討輸入與目標之間的關(guān)系,需要先建立含參數(shù)的表示模型,再通過最小化所有樣本的平均損失函數(shù)來獲得最優(yōu)的參數(shù),此處的優(yōu)化模型通常為經(jīng)驗風險最小化(Empirical risk minimization,ERM)[4].梯度下降法是求解ERM 模型最常用的方法,也是二階方法和黎曼優(yōu)化的重要基礎.傳統(tǒng)的梯度下降法在計算目標函數(shù)的梯度時,需計算每個樣本對應的梯度,總計算復雜度線性地依賴于樣本數(shù)目.隨著數(shù)據(jù)規(guī)模的日益增大,求解所有樣本的梯度需要相當大的計算量,因而傳統(tǒng)的梯度下降算法在解決大規(guī)模機器學習問題時往往不再奏效[5].
隨機梯度下降算法(Stochastic gradient descent,SGD)源于1951年Robbins 和Monro[6]提出的隨機逼近,最初應用于模式識別[7]和神經(jīng)網(wǎng)絡[8].這種方法在迭代過程中隨機選擇一個或幾個樣本的梯度來替代總體梯度,從而大大降低了計算復雜度.1958年Rosenblatt 等研制出的感知機采用了隨機梯度下降法的思想,即每輪隨機選取一個誤分類樣本,求其對應損失函數(shù)的梯度,再基于給定的步長更新參數(shù)[9].1986年Rumelhart 等分析了多層神經(jīng)網(wǎng)絡的誤差反向傳播算法,該算法每次按順序或隨機選取一個樣本來更新參數(shù),它實際上是小批量梯度下降法的一個特例[9].近年來,隨著深度學習的迅速興起,隨機梯度下降算法已成為求解大規(guī)模機器學習優(yōu)化問題的一類主流且非常有效的方法.目前,隨機梯度下降算法除了求解邏輯回歸、嶺回歸、Lasso、支持向量機[10]和神經(jīng)網(wǎng)絡等傳統(tǒng)的監(jiān)督機器學習任務外,還成功地應用于深度神經(jīng)網(wǎng)絡[11-12]、主成分分析[13-14]、奇異值分解[13,15]、典型相關(guān)分析[16]、矩陣分解與補全[17-18]、分組最小角回歸[19-20]、稀疏學習和編碼[21-22]、相位恢復[23]以及條件隨機場[24]等其他機器學習任務.
隨著大數(shù)據(jù)的不斷普及和對優(yōu)化算法的深入研究,衍生出隨機梯度下降算法的許多不同版本.這些改進算法在傳統(tǒng)的隨機梯度下降算法的基礎上引入了許多新思想,從多個方面不同程度地提升了算法性能.搜索方向的選取和步長的確定是梯度下降算法研究的核心.按照搜索方向和步長選取的方式不同,將隨機梯度下降算法的改進策略大致分為動量、方差縮減、增量梯度和自適應學習率等四種類型.其中,前三類方法主要是校正梯度或搜索方向,適用于邏輯回歸、嶺回歸等凸優(yōu)化問題;第四類方法針對參數(shù)變量的不同分量自適應地設置步長,適用于深度神經(jīng)網(wǎng)絡等非凸優(yōu)化問題.
在傳統(tǒng)梯度下降算法的基礎上添加動量項可以有效避免振蕩,加速逼近最優(yōu)解.采用動量更新策略的方法主要包括經(jīng)典動量算法(Classical momentum,CM)[25]和Nesterov 加速梯度算法(Nesterov's accelerated gradient,NAG)[26-27].簡單版本的隨機梯度下降算法在隨機取樣的過程中產(chǎn)生了方差并且隨著迭代次數(shù)的增加而不斷累加,無法保證達到線性收斂.為此,研究者們相繼提出了一系列基于方差縮減的隨機梯度下降算法,主要包括隨機方差縮減梯度算法(Stochastic variance reduced gradient,SVRG)[28]、近端隨機方差縮減梯度算法(Proximal stochastic variance reduction gradient,Prox-SVRG)[29]、Katyusha[30]和MiG[31]等.前述方法沒有充分利用歷史梯度信息,而增量梯度策略通過“以新梯度替代舊梯度”的方式,充分考慮了歷史梯度且達到了減少梯度計算量的目的,該類型的主要算法包括隨機平均梯度算法(Stochastic average gradient,SAG)[32]、SAGA[33]和Point-SAGA[34].Allen-Zhu[30]根據(jù)算法在強凸條件下的復雜度將前三類隨機梯度下降算法分為三代,復雜度隨代數(shù)的增加而降低.在深度神經(jīng)網(wǎng)絡中,自適應學習率的隨機梯度下降法通過使用反向傳播所計算出的梯度來更新參數(shù)[35].與前三類算法不同,自適應算法在訓練過程中會根據(jù)歷史梯度信息,針對參數(shù)的不同分量自動調(diào)整其對應的學習率.這類算法主要包括Adagrad[36]、Adadelta[37]、Adam(Adaptive moment estimation)[38]和Nadam(Nesterov-accelerated adaptive moment estimation)[39]等.
目前,各種版本的隨機梯度下降算法大多以黑箱優(yōu)化器的形式在TensorFlow、PyTorch 和Mx-Net 等各大主流平臺供用戶調(diào)用,但背后的算法原理卻鮮為人知.2017年Ruder 在文獻[40]中介紹了幾種深度學習領域中的隨機梯度下降算法,但缺乏一些最新的研究成果、算法之間的聯(lián)系以及實際數(shù)據(jù)集上的實驗對比.國內(nèi)學者提出過一些隨機梯度下降算法的改進策略,但尚未有人發(fā)表過此方向的綜述性論文.因此,本文的工作對于關(guān)注梯度下降算法理論及其在深度學習中應用的研究者具有參考意義.本文針對隨機梯度下降算法展開研究,討論了動量、方差縮減、增量梯度和自適應學習率等四類更新策略下主要算法的核心思想、迭代公式以及算法之間的區(qū)別與聯(lián)系.對于邏輯回歸、嶺回歸、Lasso 和深度神經(jīng)網(wǎng)絡等機器學習任務,設計了相應的數(shù)值實驗,并對比了幾種具有代表性的隨機梯度下降算法的性能.文末對研究工作進行了總結(jié),并展望了隨機梯度下降算法面臨的挑戰(zhàn)與未來的發(fā)展方向.
本節(jié)先引入經(jīng)驗風險最小化模型,再簡要介紹凸優(yōu)化的基本知識,最后給出了3 類梯度下降算法.
圖1 條件數(shù)對收斂速度的影響Fig.1 Effect of conditional number on convergence speed
圖2 FGD 和SGD 的優(yōu)化軌跡示意圖Fig.2 Schematic diagram of optimization process of FGD and SGD
SGD 所生成的梯度方向常與目標函數(shù)的峽谷長軸垂直,并沿其短軸來回振蕩,因此目標參數(shù)在長軸上緩慢移動,無法快速到達目標函數(shù)的谷底.物理學中的“動量”可以有效地避免峽谷中的振蕩,從而加快在長軸上的位移.Qian[25]證明了結(jié)合動量的梯度下降算法與保守力場中的牛頓粒子運動具有統(tǒng)一性,從而得出了在梯度下降算法基礎上添加動量項可以提升優(yōu)化效率的結(jié)論.
圖3 SGD、CM 和NAG 的參數(shù)更新示意圖Fig.3 Schematic diagram of parameters update of SGD,CM and NAG
在SGD 中,單個樣本的梯度是全體樣本平均梯度的無偏估計,但梯度方差往往隨著迭代次數(shù)的增加而不斷累加,這使得SGD 無法保證能夠達到線性收斂[49].“方差縮減” 策略通過構(gòu)造特殊的梯度估計量,使得每輪梯度的方差有一個不斷縮減的上界,從而取得較快的收斂速度.
SVRG 能夠加快收斂速度,但只適用于光滑的目標函數(shù).對于添加了非光滑正則項的目標函數(shù),雖然可以通過計算次梯度來近似替代梯度,但收斂速度較慢,實際意義較小.隨機近端梯度下降算法(Stochastic proximal gradient descent,SPGD)通過計算投影算子間接地估計目標參數(shù),從而巧妙地避開了正則項不光滑的問題[50-51].近端隨機方差縮減梯度算法(Prox-SVRG)將SVRG 與SPGD 相結(jié)合,為含非光滑正則項的目標函數(shù)使用方差縮減技巧提供了解決方案[29].考慮模型(1)的正則化版本
表2 幾種方差縮減算法的動量類型Table 2 Momentum types of several variance reduced algorithms
Shamir[13]將方差縮減技術(shù)應用在主成分分析中,并提出了方差縮減主成分分析(Variance reduced principal component analysis,VR-PCA).Shang 等[53]通過調(diào)整SVRG 的關(guān)鍵點設置,提出了適用于大步長的方差縮減隨機梯度下降算法(Variance reduced SGD,VR-SGD).此外,包含方差縮減思想的隨機梯度下降算法還有隨機對偶坐標上升(Stochastic dual coordinate ascent,SDCA)[54]以及隨機原對偶坐標(Stochastic primal-dual coordinate,SPDC)[55]等.
“增量梯度” 策略源于增量聚合梯度算法(Incremental aggregated gradient,IAG)[56],該算法為每個樣本保留一個相應的梯度值,在迭代過程中,依次抽取樣本并用新梯度替代舊梯度.
表3 SVRG 與增量算法參數(shù)更新公式對比Table 3 Comparison of parameters updating formulas among SVRG and incremental algorithms
對于前述幾種非自適應學習率的隨機梯度下降算法,Allen-Zhu[30]根據(jù)各算法在強凸條件下的復雜度將其分為3 代.第1 代算法包括SGD 和NAG等;第2 代包括SVRG 和Prox-SVRG 等;第3 代包括Katyusha 和Point-SAGA 等.其中,第1 代算法的復雜度最高.在多數(shù)情形下,第3 代算法的復雜度優(yōu)于第2 代算法的復雜度,當n <κ時優(yōu)勢尤其顯著.對于動量、方差縮減和增量梯度策略下的隨機梯度下降算法,表4 比較了各算法取得ε-近似解的復雜度和收斂速度,其中,常數(shù)ρ ∈(0,1),T=t/n表示全局迭代次數(shù).
表4 隨機梯度下降算法的復雜度與收斂速度Table 4 Complexity and convergence speed of stochastic gradient descent algorithms
在大規(guī)模機器學習中,為了減少振蕩、提高優(yōu)化效率,每經(jīng)過數(shù)輪迭代就需要更換一個較小的學習率.手動調(diào)節(jié)學習率工作量較大且很難快速找到當前模型環(huán)境下的最佳值.若設置的學習率過小,會使得優(yōu)化進程緩慢;若學習率過大,會導致振蕩且難以逼近最優(yōu)解甚至逐漸遠離最優(yōu)解,如圖4所示.為了解決此問題,一些學者提出了以下幾種自適應調(diào)節(jié)學習率的隨機梯度下降算法,這些算法在深度神經(jīng)網(wǎng)絡中表現(xiàn)出了極佳性能.
圖4 學習率對優(yōu)化過程的影響Fig.4 Effect of learning rates on optimization process
對于數(shù)據(jù)特征不平衡的問題,若使用SGD,則稀疏特征對應的梯度分量的絕對值很小甚至為零,這使得目標參數(shù)難以逼近最優(yōu)解.Adagrad[35]是一種自適應調(diào)節(jié)學習率的隨機梯度下降算法,它將目標參數(shù)θ的分量進行拆分,對每個分量使用不同的學習率進行更新.對稀疏特征相應的參數(shù)分量使用較大的學習率進行更新,進而識別出那些非常具有預測價值但易被忽略的特征.
Dean 等[60]發(fā)現(xiàn)Adagrad 能顯著提高SGD 的魯棒性,并將其用于谷歌的大型神經(jīng)網(wǎng)絡訓練;Pennington等[61]在訓練詞嵌入技術(shù)時使用了Adagrad,這是因為不常用的詞比常用的詞需要更大的更新.Chen 等[62]提出了SAdagrad,它將Adagrad 看作一個子程序并周期性調(diào)用,在強凸條件下具有更好的收斂速度.Adagrad 的提出使人們擺脫了手動調(diào)節(jié)學習率的困擾,但仍存在以下缺點:1)歷史梯度無節(jié)制地累加導致了學習率不斷衰減至一個極小的數(shù),這使得訓練后期優(yōu)化效率很低;2)需要預先設置全局學習率;3)保留梯度的內(nèi)存成本過大.
圖5 Adagrad 的學習率變化示意圖Fig.5 Schematic diagram of learning rate changes for adagrad
Nadam 將Nesterov 動量加入到Adam 中,以提升Adam 的算法性能,亦可看作是Adam 和NAG的結(jié)合[39].從表1 可以看出:要將CM 轉(zhuǎn)化為NAG,需要添加中間變量.只要統(tǒng)一Adam 與CM 的更新形式,便可使用這種修改技巧實現(xiàn)從Adam 向Nadam 的轉(zhuǎn)換.
表1 CM 與NAG 的更新公式比較Table 1 Comparison of update formulas between CM and NAG
隨著深度學習網(wǎng)絡模型越來越復雜,自適應算法面臨著泛化性能差、學習率逐漸極端化等問題.在最近的幾個自然語言處理和計算機視覺項目中,自適應算法僅在訓練初期的優(yōu)化效率較高,而在訓練后期和測試集上常常出現(xiàn)停滯不前的情況,且整體效果不及SGD 與NAG[67-68].Reddi 等[69]認為可以通過對過去梯度的“長期記憶” 來解決自適應算法收斂性差的問題,并提出Adam 的改進算法AmSGDrad,此算法有效地提升了收斂速度.Luo 等[70]提出的自適應算法Adabound 為學習率設置了一個動態(tài)上界,且初始化學習率上界為無窮大,隨著迭代次數(shù)的增加,學習率最終平穩(wěn)地遞減至一個恒定的值.Adabound在訓練初期的優(yōu)化速度與Adam 相當,在訓練后期性能穩(wěn)定且泛化能力較強,能夠在復雜的深層網(wǎng)絡中發(fā)揮良好的性能.
先使用動量、方差縮減和增量梯度3 種策略下的隨機梯度下降算法解決邏輯回歸等機器學習任務,再將自適應學習率的隨機梯度下降算法應用到深度卷積神經(jīng)網(wǎng)絡中.
本節(jié)實驗對非自適應學習率的隨機梯度下降算法在機器學習模型中的性能進行對比.采用MATLAB 與C 語言混合編程,涉及的算法程序均在4 核AMD A10-7300 Radeon R6 處理器上運行.實驗所用的Adult 等4 個數(shù)據(jù)集均來自于UCI 機器學習庫(http://archive.ics.uci.edu/ml/datasets.html).表5給出了這些數(shù)據(jù)集的詳細信息.
表5 數(shù)據(jù)集描述Table 5 Description of datasets
建立?2邏輯回歸(?2-Logistic regression)、嶺回歸(Ridge regression)和Lasso 等3 種經(jīng)典機器學習模型.表6 列出了3 種優(yōu)化模型的公式,其中‖·‖1為向量的?1范數(shù),λ1和λ2為取正值的正則化系數(shù).顯然,前兩種是光滑且強凸的優(yōu)化模型,第3種是非光滑凸的優(yōu)化模型.表7 列出了4 個實驗數(shù)據(jù)集對應的優(yōu)化模型及正則參數(shù)設置.選取SGD、NAG、SVRG、SAGA、Katyusha 以及MiG共6 種具有代表性的方法進行實驗,通過研究6 種算法的迭代效率和時間效率,對比、分析算法的實際性能.為公平起見,初始化目標參數(shù)為零向量,每種方法的超參數(shù)和學習率均先按照理論最優(yōu)值進行設置,再結(jié)合具體實驗進行微調(diào),以使算法的實際性能達到最佳.
表6 3 種機器學習任務的優(yōu)化模型Table 6 Optimization models for 3 machine learning tasks
表7 數(shù)據(jù)集對應的優(yōu)化模型與正則參數(shù)Table 7 Optimization model and regularization parameter for each dataset
圖6 比較了6 種隨機梯度下降算法的迭代效率,其中,橫坐標表示全局迭代次數(shù),縱坐標表示當前目標函數(shù)值與最優(yōu)目標函數(shù)值之差.從圖6 可以看出,第1 代隨機梯度下降算法SGD 和NAG 的迭代效率較低,難以在較少的迭代次數(shù)內(nèi)逼近最優(yōu)解,這可能是因為梯度的方差不斷累積且實際數(shù)據(jù)集存在噪聲.作為簡單版本的隨機梯度下降算法,SGD迭代效率最低;NAG 添加了Nesterov 動量,盡管在一定程度上提升了SGD 的優(yōu)化效率,但效果并不顯著.第2 代隨機梯度下降算法的迭代效率在第1 代的基礎上產(chǎn)生了質(zhì)的飛躍.SVRG 和SAGA 分別通過采用方差縮減與增量梯度的策略構(gòu)造相應的梯度估計量,有效限制了方差的累積,極大地提升了算法性能,且能夠在較少的迭代次數(shù)內(nèi)逼近最優(yōu)解.第3 代隨機梯度下降算法Katyusha 和MiG 在方差縮減技術(shù)的基礎上添加了消極動量,因此在目標參數(shù)的優(yōu)化過程中更加穩(wěn)健、精準、高效,能夠在極少的迭代次數(shù)內(nèi)逼近最優(yōu)解.
圖7 對比了6 種隨機梯度下降算法的時間效率,其中:橫坐標表示運行時間,縱坐標表示當前目標函數(shù)值與最優(yōu)目標函數(shù)值之差.從圖7 可以看出:第2 代和第3 代隨機梯度下降算法的時間效率明顯強于第1 代,這與圖6 中迭代效率的對比情況相似.此外,第3 代算法的整體時間效率雖然稍強于第2代算法,但其優(yōu)勢并不像迭代效率那樣顯著.第3代算法雖然在復雜度和收斂速度上都有明顯優(yōu)勢,但由于自身結(jié)構(gòu)相對復雜,故在實際應用中單次迭代的計算量較大、運行時間較長.
圖6 隨機梯度下降算法的迭代效率對比Fig.6 Comparison of iterative efficiency of stochastic gradient descent algorithms
圖7 隨機梯度下降算法的時間效率對比Fig.7 Comparison of time efficiency of stochastic gradient descent algorithms
本節(jié)實驗對自適應學習率的隨機梯度下降算法在深度學習中的性能進行對比.實驗環(huán)境為MxNetgluon 1.0,工作站配置了10 核Intel Xeon E5-2640v4處理器和兩塊GTX 1080ti 11 GB 顯卡.使用的CIFAR-10 數(shù)據(jù)集(http://www.cs.toronto.edu/~kriz/cifar.html)包含60 000 幅32 × 32 × 3 的彩色圖像.根據(jù)圖像內(nèi)容可將其分為“飛機”、“鳥” 和“貓”等10 個類別,其中每個類別均包含6 000 幅圖像.從每類圖像中隨機選取5 000 幅作為訓練樣本,剩余的1 000 幅作為測試樣本,并在實驗過程中采取數(shù)據(jù)增廣策略.
在ResNet-18 卷積神經(jīng)網(wǎng)絡模型[71]下,對Adagrad、Rmsprop、Adadelta 以及Adam 的實際性能進行比較.此外,實驗還考慮了SGD 和CM 兩種非自適應算法.ResNet-18 網(wǎng)絡模型的權(quán)重參數(shù)按均值為0、標準差為0.01 的正態(tài)分布隨機初始化.訓練時采用交叉熵損失函數(shù),批容量為32,除Adadelta 外,其余算法全局學習率的初始值均為 10-3,且每隔30 代衰減至之前的1/10,共訓練90 代.
圖8 展示了實驗中訓練集損失函數(shù)值、訓練集精度以及測試集精度的變化情況.從此圖可以看出,4 種自適應學習率的梯度下降算法在實驗中的性能整體優(yōu)于SGD.Adagrad 的性能最差,僅略優(yōu)于SGD,這可能是因為Adagrad 生成的自適應學習率無節(jié)制減小,從而導致后期學習率微小,以至于無法突破局部最優(yōu)點.Rmsprop 與Adadelta 的性能比較接近,且優(yōu)于Adagrad.Adam 在訓練集與測試集中的優(yōu)化效率都是最高的,這說明矩估計思想和自動退火形式在隨機梯度下降算法中起到了提升算法性能的作用.此外,CM 在訓練集中的表現(xiàn)與Rmsprop相當,在測試集中的性能甚至略優(yōu)于Rmsprop.
圖8 自適應學習率的隨機梯度下降算法性能比較Fig.8 Performance comparison of stochastic gradient descent algorithms with adaptive learning rates
本文對近年來隨機梯度下降算法的研究進展及主要研究成果進行了綜述.根據(jù)算法的更新策略,將幾種具有代表性的隨機梯度下降算法分為四類,包括基于動量的算法、基于方差縮減的算法、基于增量梯度的算法以及自適應學習率的算法.本文介紹了這些算法的原理、核心思想以及相互之間的區(qū)別與聯(lián)系,并通過數(shù)值實驗對算法的實際性能進行了對比.實驗結(jié)果表明:在邏輯回歸等經(jīng)典機器學習任務中,Katyusha 和MiG 等第3 代算法普遍具有較好的性能,而SGD 和NAG 等第1 代算法的實驗性能最差;在深度卷積神經(jīng)網(wǎng)絡中,Adam 的實驗性能最好.當前,國內(nèi)外提出的隨機梯度下降算法種類繁多,但理論不完善且評價標準尚未統(tǒng)一.因此,隨機梯度下降算法仍將是未來的研究熱點.
下面幾個方向在今后的研究中值得關(guān)注.
1)與二階算法相比,隨機梯度下降算法的收斂速度相對較慢,且需要更多的迭代次數(shù).第2 代和第3 代改進算法雖然有效地提升了收斂速度,但耗費了較大的時間成本和內(nèi)存成本.隨著數(shù)據(jù)規(guī)模的擴大和模型復雜度的提升,單線程下的隨機梯度下降算法已經(jīng)不能滿足大規(guī)模機器學習應用的需求[72-73].Zinkevich 等[74]提出了首個并行式隨機梯度下降算法SimuParallelSGD,這種方法適合于大規(guī)模學習范式和MapReduce 框架.文獻[75]提出了Hogwild ! 算法,它對稀疏數(shù)據(jù)采用無鎖異步更新策略,從而有效地減少了特征更新時的沖突.陳振宏等[76]提出了一種基于差異合并的分布式隨機梯度下降算法DA-DSGD,從性能的加權(quán)合并、模型規(guī)范化兩方面提高了算法性能.目前,研究者們已經(jīng)實現(xiàn)了SVRG、SAGA 和MiG 等改進算法的分布式和并行化版本,但收斂速度卻有待進一步提升[31,77-78].如何根據(jù)算法特點、數(shù)據(jù)對象和應用平臺,設計并實現(xiàn)不同改進策略下的隨機梯度下降算法的分布式與并行化版本,使其在實際應用中發(fā)揮出較高的性能水平,這是未來值得探索的問題.
2)學習率是隨機梯度下降算法中一個非常重要的超參數(shù),直接影響算法在實際應用中的性能.一些學者按照αt=c1/(tv+c2)的形式對每輪學習率進行設置,但這種形式在實際應用中收斂速度較慢,且c1,c2和v的取值仍難以確定[79].另一些學者則認為應先在固定步長下快速尋找最優(yōu)解的鄰域,再考慮更為精確的優(yōu)化方案[80].目前,尋找最優(yōu)學習率在理論和實踐上仍是一個巨大的挑戰(zhàn).
3)隨機梯度下降算法在每輪迭代過程中計算復雜度較低,但只利用了一階梯度,忽略了目標函數(shù)的二階信息及曲率,從而限制了實際性能和收斂速度[81].如何結(jié)合一階與二階方法各自的長處,進一步設計迭代效率俱佳的隨機梯度下降算法,是未來值得研究的問題.
4)近年來,研究者們將目光投向非凸的ERM模型,并且提出了一些行之有效的解決方案[82-85],其中具有代表性的策略包括添加動量跳出局部最優(yōu)解[86]、使用方差縮技術(shù)減少梯度方差[87]和添加梯度噪聲逃離鞍點[88]等.然而,對于更為一般的非凸、非光滑的優(yōu)化問題卻并未取得太大的突破,目前僅有Prox-SAGA[89]、Prox-SVRG+[90]等算法,但性能并不理想.隨機梯度下降算法在非凸、非光滑條件下的策略研究,不僅是當前面臨的困局,也是未來最具有應用價值的研究方向.
5)對于非凸的優(yōu)化問題,梯度下降法通常存在兩個缺陷:易于陷入局部最優(yōu)、無法逃離鞍點.而演化計算/智能計算無需計算梯度和確定步長,且往往具有較好的全局收斂性.如何將隨機梯度下降算法與演化計算/智能計算方法相結(jié)合,將是一個非常值得關(guān)注的研究方向.