張亮亮,喻高航
(杭州電子科技大學(xué)理學(xué)院,浙江 杭州 310018)
深度學(xué)習(xí)(Deep Learning,DL)[1]在許多實(shí)際領(lǐng)域中取得了顯著的成功,如圖像分類[2]、目標(biāo)檢測[3]和人臉識別[4]等,但在大規(guī)模數(shù)據(jù)集上訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)仍然很費(fèi)時。一階優(yōu)化算法是深度學(xué)習(xí)中廣泛使用的方法,如動量梯度算法。常用的動量梯度算法主要有重球法(Heavy Ball Method,HB)[5]和Nesterov加速梯度法(Nesterov’s Accelerated Gradient Method,NAG)[6]。當(dāng)動量方向?yàn)橛欣较驎r,動量梯度算法通常能夠加速優(yōu)化,但是,動量項(xiàng)在迭代過程中積累過多歷史梯度信息導(dǎo)致超調(diào),造成迭代過程中的震蕩現(xiàn)象[7],在一定程度上阻礙了算法的收斂速度?!氨壤e分—微分”優(yōu)化控制器(Proportional-Integral-Derivative Controller,PID)[8]是一種通過控制系統(tǒng)誤差來調(diào)整系統(tǒng)的反饋控制方法,可以有效克服超調(diào)現(xiàn)象,具有魯棒性,已廣泛應(yīng)用于無人駕駛和智能機(jī)器人等實(shí)際控制領(lǐng)域。文獻(xiàn)[9]提出一種加速深度神經(jīng)網(wǎng)絡(luò)優(yōu)化的PID算法,在PID控制器與大規(guī)模優(yōu)化算法之間建立聯(lián)系。實(shí)際應(yīng)用中,PID控制器中的微分項(xiàng)通常采用一階差分近似,在優(yōu)化過程中無法有效利用二階信息。為此,本文采用擬牛頓方程,提出一類預(yù)條件動量梯度算法。
深度學(xué)習(xí)中常見的一類學(xué)習(xí)問題是回歸與分類等監(jiān)督學(xué)習(xí)問題,提供了包含輸入數(shù)據(jù)和帶有標(biāo)簽的訓(xùn)練數(shù)據(jù)集。對已知樣本構(gòu)成的訓(xùn)練集{(x1,y1),(x2,y2),…,(xn,yn)},監(jiān)督學(xué)習(xí)通常需要求解經(jīng)驗(yàn)風(fēng)險最小化(Empirical Risk Minimization,ERM)[10]模型:
(1)
通過優(yōu)化模型參數(shù)θ,進(jìn)而預(yù)測未知樣本x的標(biāo)簽值y,其中l(wèi)i(θ)是第i個樣本關(guān)于θ的損失函數(shù),n是樣本總數(shù),xi∈Rd是第i個樣本的輸入特征向量,d是特征向量維數(shù),yi∈R是第i個樣本的標(biāo)簽(或目標(biāo))。
求解模型(1)最常用的是一階優(yōu)化算法,比如梯度下降法(Gradient Descent Method, GD):
(2)
式中,α是學(xué)習(xí)率,一般取常數(shù),k是迭代次數(shù)。梯度下降法的算法簡單,易于實(shí)現(xiàn),但收斂速度慢。為了加速訓(xùn)練神經(jīng)網(wǎng)絡(luò),目前深度學(xué)習(xí)領(lǐng)域常用的是隨機(jī)梯度算法或動量梯度算法,其中經(jīng)典的動量方法包括重球法[5]:
(3)
其迭代格式可寫為:
(4)
另外一種常用的動量梯度方法是Nesterov加速梯度法[6]:
(5)
兩種動量方法中的參數(shù)β∈(0,1)決定動量項(xiàng)的權(quán)重。
(6)
離散形式為:
(7)
式中,e(t)是系統(tǒng)誤差,t是系統(tǒng)響應(yīng)時間,kp,ki,kd是PID的權(quán)重系數(shù),分別控制PID中P項(xiàng),I項(xiàng)和D項(xiàng)。
對式(4)和式(5)中第1行公式兩邊同時除以βk+1,得到:
(8)
對式(8)從k+1到1列舉并相加可得:
(9)
將式(9)代入式(4)和式(5)中的第2行公式,可得:
(10)
(11)
(12)
令θ=θk-1,有:
(13)
(14)
當(dāng)kd=0時,式(14)可退化為HB算法;當(dāng)kd≠0,令Qk=(βI/kd-Bk),式(14)改寫為:
(15)
稱式(15)為預(yù)條件動量梯度算法(Preconditioned Momentum Gradient Algorithm,PMG)。
預(yù)條件因子Qk中Bk的更新迭代,可以采用擬牛頓算法中常用的BFGS修正公式[12]:
(16)
式(14)進(jìn)一步寫為:
(17)
基于BFGS的預(yù)條件動量梯度算法的主要步驟如下。
輸入:目標(biāo)函數(shù)f(θ),初始迭代點(diǎn)θ0∈Rn,初始迭代矩陣B0=I(I∈Rn×n單位矩陣),最大迭代次數(shù)K,容忍誤差ε,參數(shù)α>0,β∈(0,1),kd>0;計算梯度值Δf(θ0),如果不滿足終止條件,用最速下降法計算θ1=θ0-αΔf(θ0),計算Δf(θ1),置k=1。當(dāng)Δf(θk)>ε或k PMG算法在每次迭代中保持2個序列的更新,即{Vk},{θk}。當(dāng)kd=0時,PMG算法退化為HB算法。與PID算法相比,PMG算法中{Bk}的計算能夠較好地利用目標(biāo)函數(shù)的二次信息。預(yù)條件的選取還可以有其他不同的方式,如DFP修正公式、對角矩陣Bk=diag(λ1,λ2,…,λn)或與譜投影梯度方法[13]類似的仿射單位矩陣等。 引理[14]設(shè){Fk}k≥0是一個非負(fù)實(shí)數(shù)序列,且滿足條件Fk+1≤a1Fk+a2Fk-1,?k≥1,其中a2≥0,a1+a2<1且系數(shù)至少有1個是正的。那么序列{Fk}k≥0對所有的k≥1滿足關(guān)系式 Fk+1≤qk(1+δ)F0 (18) 定理設(shè)目標(biāo)函數(shù)f(θ)是μ-強(qiáng)凸的和L-利普希茲連續(xù)的,θ*∈Rn是函數(shù)f(·)的全局最優(yōu)點(diǎn),則算法PMG產(chǎn)生的序列{θk}k≥1滿足: 可以證明以下不等式成立, (19) (20) (21) 根據(jù)式(19)—式(21),可得: (22) 因?yàn)閒(θ)是μ-強(qiáng)凸的和L-利普希茲連續(xù)的,由凸優(yōu)化理論有: (23) 將式(23)代入式(22),可得: (24) (25) 當(dāng)PMG算法中參數(shù)α,kd滿足 為了驗(yàn)證本文提出的PMG算法的有效性,分別在一些小規(guī)模的測試函數(shù)和大規(guī)模的CFIAR數(shù)據(jù)集上對PMG算法、PID算法、HB算法和NAG算法進(jìn)行數(shù)值對比實(shí)驗(yàn)。 例3f3(x)=-[cosx1+1][cos2x2+1]是一個非凸二維三角函數(shù),初始點(diǎn)[-2,1]。 例4f4(x)=sin(x1+x2)+(x1-x2)2-1.5x1+2.5x2+1是多峰函數(shù),初始點(diǎn)[-10,2]。 關(guān)于PMG算法的參數(shù)設(shè)定為:步長α使用回溯法,初始步長α=0.5,動量參數(shù)常設(shè)為β=0.9,根據(jù)文獻(xiàn)[8]和文獻(xiàn)[15]提出的PID參數(shù)選擇方法選取參數(shù)kd。實(shí)驗(yàn)運(yùn)行環(huán)境為Windows 10操作系統(tǒng)下的MATLAB 2016b,配置內(nèi)存為Intel Core i7-3667U 8GB的筆記本。記錄4種算法的終止迭代次數(shù)、運(yùn)行時間和算法的終止誤差,結(jié)果如表1所示。 表1 不同動量梯度算法求解算例的結(jié)果 從表1可以看出,與HB算法和NAG算法相比,PID算法比常用的動量梯度方法更有效。由于PMG算法能夠較好地利用目標(biāo)函數(shù)的二次信息,在4種算法中,PMG算法的迭代次數(shù)和運(yùn)行時間都有一定的優(yōu)勢,說明PMG算法可以有效提升算法的效率。 為了更直觀比較算法效率,針對測試函數(shù)例1的迭代收斂過程,分別從目標(biāo)函數(shù)值和梯度范數(shù)值兩個角度說明變化情況,結(jié)果如圖1所示。 圖1 不同算法測試部分函數(shù)隨迭代步數(shù)變化的情況 從圖1可以看出,HB算法與NAG算法都有明顯的震蕩,而PMG算法和PID算法均能克服超調(diào)現(xiàn)象,其中PMG算法表現(xiàn)更好。 圖2 不同算法訓(xùn)練數(shù)據(jù)集精度隨迭代變化的情況 從圖2可以看出,PMG算法的預(yù)測精度最高,表明高階信息的有效利用使得PMG算法的性能得到較大提升。 動量梯度算法因積累過多歷史梯度信息會導(dǎo)致超調(diào)問題,阻礙算法的收斂。針對這個不足,本文將預(yù)條件因子與動量梯度法相結(jié)合,提出一種預(yù)條件動量梯度算法,在提高算法效率的同時克服了超調(diào)問題,有效改善了迭代過程中出現(xiàn)的震蕩現(xiàn)象。但是,預(yù)條件因子生成方法是多樣化的,選取合適的預(yù)條件會花費(fèi)額外的時間,后期將針對最優(yōu)預(yù)條件因子的選取問題展開進(jìn)一步研究。3 收斂性分析
4 數(shù)值實(shí)驗(yàn)
4.1 測試函數(shù)
4.2 CFIAR數(shù)據(jù)集
5 結(jié)束語