史柏迪,莊曙東,韓 祺
(1.河海大學(xué)機(jī)械工程學(xué)院,江蘇 常州 213022;2.梅特勒-托利多國(guó)際貿(mào)易(常州)有限公司,江蘇 常州 213022;3.南京航空航天大學(xué)江蘇省精密儀器重點(diǎn)實(shí)驗(yàn)室,南京 21009)
金屬零件加工后表面粗糙度直接決定零部件的配合性質(zhì)、耐磨性、疲勞強(qiáng)度、接觸剛度、使用壽命及各類(lèi)力學(xué)性能,為必須被約束的重要參數(shù)。當(dāng)前機(jī)械加工日益趨向超高精密化[1],傳基于統(tǒng)計(jì)學(xué)原理的多元線性[2]、以及非線性[3]回歸預(yù)測(cè)模型以及無(wú)法滿足實(shí)際加工需求。
當(dāng)前機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的浪潮之下為表面粗糙度預(yù)測(cè)提供了新的方案。國(guó)內(nèi)外已經(jīng)有了諸多研究,在機(jī)器學(xué)習(xí)算法中支持向量機(jī)(SVM)[4],決策樹(shù)[5]、K近鄰[6]等在預(yù)測(cè)以及分類(lèi)任務(wù)中均有廣泛使用。但近年來(lái)深度學(xué)習(xí)算法在圖像識(shí)別、特征工程、數(shù)據(jù)分析等領(lǐng)域相對(duì)機(jī)器學(xué)習(xí)算法均有更好的精度表現(xiàn)。且隨著近年來(lái)國(guó)內(nèi)外學(xué)者的進(jìn)一研究,目前其可讀性、表達(dá)能力、優(yōu)化等問(wèn)題有了較大改善[7-9]。但經(jīng)網(wǎng)絡(luò)初始化、梯度消失等“黑盒”問(wèn)題依舊存在,在工程運(yùn)用中直接影響神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)精度?;诖藛?wèn)題本文提出一種在初始化以及算法優(yōu)化器兩方面進(jìn)行改進(jìn)的神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)初始化目前一般最為簡(jiǎn)單的方法為對(duì)各層神經(jīng)元節(jié)點(diǎn)填充服從均值為0方差為1的高斯分布隨機(jī)數(shù)。其次便是使用群體智能算法對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行預(yù)先篩選。目前常見(jiàn)有PSO-BP[10]、GA-BP[11],但其本質(zhì)為建立多個(gè)隨機(jī)正態(tài)分布神經(jīng)網(wǎng)絡(luò)在此基礎(chǔ)上對(duì)其參數(shù)按照特定算法進(jìn)行更新,最終篩選出最佳個(gè)體。本模型使用Xavier[12]初始化來(lái)提高初始群體,減少模型陷入局部最小無(wú)法優(yōu)化的概率。其次算法優(yōu)化器為另一決定預(yù)測(cè)精度的方面,目前大多神經(jīng)網(wǎng)絡(luò)工具箱使用隨機(jī)梯度下降(SGD)更新模型參數(shù),但近年來(lái)優(yōu)化器有著較大的突破[13-14]。本模型使用Ada Mod[15]優(yōu)化器,經(jīng)測(cè)試相對(duì)SGD與Adam優(yōu)化器可有效提高模型收斂速度及預(yù)測(cè)精度。
機(jī)械加工過(guò)程中表面粗糙度(Ra)受到材料特性、切削參數(shù)、機(jī)床特性、刀具選擇等諸多因素的影響。本模型所使用的樣本材料為U71Mn高錳鋼因力學(xué)性能良好,具有較好的抗沖擊與耐磨性能[16],為中國(guó)鐵軌的主要原材料。但當(dāng)切削參數(shù)配置不合理時(shí)容易導(dǎo)致材料表面馬氏體粗大,力學(xué)性能急速下降。為提高數(shù)據(jù)樣本精確度,綜合考慮實(shí)際加工情況以及材料特性,選擇加工條件為三菱公司的M-V5CN組合機(jī)床,刀具為4齒平底立銑刀,刀具直徑20 mm如圖1所示。選取主軸轉(zhuǎn)速n(r/min)、每齒進(jìn)給量f(mm/z)、銑削深度ap(mm)、銑削寬度ae(mm)為輸入特征。
圖1 4齒硬質(zhì)平底銑刀
輸出特征為Ra(μm)由光電輪廓儀任選加工后表面三處均勻表面取均值獲得,最終獲取100組數(shù)據(jù)樣本,表1為部分樣本數(shù)據(jù)。
表1 部分樣本數(shù)據(jù)
為使模型模型具有良好的泛化性避免過(guò)擬合現(xiàn)象,對(duì)數(shù)據(jù)集按照?qǐng)D2進(jìn)行劃分。
圖2 5折交叉驗(yàn)證
此外從表1易知輸入特征n較其他特征而言數(shù)值量較大為減少其對(duì)梯度傳播的影響將4個(gè)輸入特征按照公式(1)進(jìn)行歸一化處理:
(1)
式中,numnor為歸一化后的數(shù)據(jù),下標(biāo)min與max為該輸入特征的最小與最大值。i為該樣本序號(hào)1≤i≤100。
在隱藏層層數(shù)為n的BP網(wǎng)絡(luò)中如果使用高斯分布初始化易得其前向傳播通項(xiàng)公式(2):
(2)
式中,n為隱藏層總數(shù),i為當(dāng)前隱藏層序號(hào)。m為在第i層情況下神經(jīng)元的數(shù)目,j為在第i層的第j個(gè)神經(jīng)元。w為i層第j個(gè)神經(jīng)元的權(quán)值(w),b為偏置(b)。PRelu為激活函數(shù)。
從式(2)中可知雖然其權(quán)值與閾值的分布均滿足正態(tài)分布,可在一定程度里緩解激活值異常的情況,但是當(dāng)網(wǎng)絡(luò)隱藏層增加時(shí)激活值彌散情況依舊無(wú)法避免。經(jīng)式(1)處理后所有輸入值均分布在[0,1]取隱藏層數(shù)目依次為1、10、50,神經(jīng)元數(shù)目固定為100,可得激活值變動(dòng)如圖3所示。
圖3 高斯初始化輸出激活值
由圖3可知激活值伴隨著層數(shù)的增加逐步平緩趨向0。根據(jù)統(tǒng)計(jì)學(xué)原理易知數(shù)據(jù)方差越大其包含的信息量越大。僅對(duì)各層神經(jīng)網(wǎng)絡(luò)權(quán)值與閾值基于隨機(jī)高斯分布式(2)初始化,在模型后續(xù)訓(xùn)練會(huì)帶來(lái)的梯度飽和現(xiàn)象,易對(duì)模型精度造成影響。
Xavier初始化創(chuàng)始者Glorot發(fā)現(xiàn)在一個(gè)m層的多層神經(jīng)網(wǎng)絡(luò)中初始化若僅使權(quán)值與閾值服從高斯分布,在輸出時(shí)無(wú)法保留輸入數(shù)據(jù)的方差特性。一個(gè)良好的網(wǎng)絡(luò)初始化因使數(shù)據(jù)激活輸出值服從高斯分布且保證輸入時(shí)的方差特性保持不變即滿足如下條件:
(3)
式中,Cost為代價(jià)函數(shù)因采用BP結(jié)構(gòu)即為均方誤差;h為隱藏層;z為實(shí)際激活輸出值;i,j為任意兩個(gè)神經(jīng)網(wǎng)絡(luò)的索引。
對(duì)于任何一個(gè)d層神經(jīng)網(wǎng)絡(luò)如果所有層規(guī)格一致且采用相同的初始化方法可得式(4)分布規(guī)律。
(4)
式中,W為權(quán)值的向量矩陣。
以上即為Glorot條件認(rèn)為初始化不應(yīng)僅從w與b著手,而應(yīng)使各層的輸出激活值和狀態(tài)梯度的方差在傳播過(guò)程中的方差保持一致。
結(jié)合式(2)~式(4)可知若各隱藏層神經(jīng)元數(shù)目為k,為滿足Glorot條件第i層權(quán)值矩陣,需滿足式(5)分布規(guī)律。
(5)
式中,m為隱藏層層數(shù);i,j滿足1≤i≤m;1≤j≤k;當(dāng)神經(jīng)網(wǎng)絡(luò)采用式(5)初始化時(shí)可得值如圖4所示。
圖4 Xavier初始化輸出激活值
由圖4可知,隨著神經(jīng)層數(shù)量增加其各神經(jīng)網(wǎng)絡(luò)激活值的方差特性得到了最大程度的保留,有效解決了高斯初始化帶來(lái)的梯度飽和問(wèn)題。
PSO算法源于對(duì)鳥(niǎo)類(lèi)捕食行為的模擬,每個(gè)粒子僅擁有速度與位置兩個(gè)屬性。在迭代中通過(guò)將個(gè)體極值與群體共享,所有粒子根據(jù)最優(yōu)的個(gè)體極值決定下一輪的速度與位置。上述思想在BP神經(jīng)網(wǎng)絡(luò)中的運(yùn)用可描述為在T次迭代之中,由n個(gè)粒子組成特征數(shù)量為D的大小為[n×D]種群矩陣X且其初始化符合神經(jīng)網(wǎng)絡(luò)規(guī)格為M的Xavier原則式(5),粒子速度V為長(zhǎng)度為D的向量。Pi為長(zhǎng)度為n的向量對(duì)個(gè)體極值進(jìn)行記錄。Pg為群體極值。屬性X與V按照式(6)進(jìn)行迭代更新。
(6)
式中,ω為為慣性權(quán)重在后續(xù)進(jìn)行討論;d為當(dāng)前維度1≤d≤D;i為當(dāng)前粒子1≤i≤n;k為當(dāng)前迭代次數(shù)1≤k≤T;c1,c2為加速因子取[0,1]常數(shù);r1,r2為[0,1]的隨機(jī)數(shù)通過(guò)添加擾動(dòng)來(lái)阻止模型陷入局部最小值;為避免盲目搜索設(shè)置將速度約束在[-Vmax,Vmax];位置約束在[-Xmin,Xmax]。
在式(5)、式(6)的基礎(chǔ)上可以給出該模型的PSO初始化模塊算法流程如圖5所示。
圖5 基于Xavier的PSO初始化
圖5即為算法流程,且在PSO中其超參數(shù)相對(duì)于基因遺傳算法(GA)更易調(diào)節(jié)且,對(duì)于數(shù)據(jù)無(wú)需進(jìn)行二進(jìn)制編碼重組具有極強(qiáng)的算法可移植性,以及較低的算法復(fù)雜度因此在PID控制、模糊邏輯控制以及神經(jīng)網(wǎng)絡(luò)初始化中有著廣泛的運(yùn)用。
在PSO算法中慣性系數(shù)直接決定模型繼承上一輪速度的能力,直接決定模型的收斂性以及全局搜索能力。傳統(tǒng)常系數(shù)法雖可降低模型的算法時(shí)間復(fù)雜度但隨著迭代的進(jìn)行在經(jīng)驗(yàn)區(qū)間[0,4,0.9]內(nèi)選取任一常數(shù)在深層網(wǎng)絡(luò)初始化中顯然欠佳。Shi Y首先提出線性遞減慣性系數(shù)法見(jiàn)式(7)。在此基礎(chǔ)上還有如下常見(jiàn)策略式(8)~式(10)。
ω(k)=ωstart(ωstart-ωend)(T-k)/T
(7)
(8)
(9)
(10)
式(7)~式(10)中,各項(xiàng)參數(shù)在3.1節(jié)中均已說(shuō)明。大量工程實(shí)踐證明ω在開(kāi)始時(shí)取0.9最終取0.4可使算法在中期有最佳的搜索能力在迭代終止前也可有效收斂。
設(shè)置粒子群數(shù)量(n)為100,最大迭代次數(shù)(T)為100。神經(jīng)網(wǎng)絡(luò)采取5層隱藏層可得神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖6所示。在圖6結(jié)構(gòu)之中計(jì)算可得神經(jīng)網(wǎng)絡(luò)有4×(100+1)+100×(100+1)×4+(100+1)項(xiàng)參數(shù)需要被初試化,即系數(shù)矩陣W為[101×405]。
圖6 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
本測(cè)試環(huán)境為pytorch使用cuda進(jìn)行GPU并行運(yùn)算。主機(jī)配置,CPU:i7 9750H,GPU:GTX1660TI,ROM:16G設(shè)置粒子群數(shù)量(n)為100,最大迭代次數(shù)(T)為100。按照式(7)~式(10)以及常系數(shù)0.6設(shè)置慣性系數(shù)ω得到表2。
表2 ω對(duì)模型影響
式(7)~式(10)實(shí)際耗時(shí)致均屬于一個(gè)量級(jí)。固定系數(shù)法最終模型誤差較線性遞減法差距較大故不采用。在線性遞減法中考慮最終均方誤差直接決定初試訓(xùn)練精度故采用式(8)進(jìn)行慣性系數(shù)更新。
Adam算法為Kingma與Ba在2015年提出。并且經(jīng)過(guò)大量工程證明在非凸函數(shù)優(yōu)化以及非線性問(wèn)題中相對(duì)SGD有著更為優(yōu)秀的表現(xiàn)。目前在深度學(xué)習(xí)以及自然語(yǔ)言處理中有著廣泛的運(yùn)用。
傳統(tǒng)隨機(jī)梯度下降(SGD)算法選用一個(gè)固定的學(xué)習(xí)速率對(duì)所有w、b按照一個(gè)維度進(jìn)行更新。雖實(shí)際工程表現(xiàn)較好,但尚缺乏可解讀性。ADam算法在SGD算法的基礎(chǔ)上引入誤差梯度的一階與二階指數(shù)加權(quán)矩陣以此為依據(jù)在迭代中根據(jù)模型的實(shí)際訓(xùn)練情況對(duì)各神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)的w、b采取合適的η步長(zhǎng),w的修正可表達(dá)為式(8):
(8)
式中,β慣性系數(shù);m、v為一階與二階動(dòng)量項(xiàng);g為均方誤差。η初始學(xué)習(xí)率。τ正則化常數(shù)量默認(rèn)為108作用為限制修正量。t為當(dāng)前次數(shù)。采用Adam算法優(yōu)化器進(jìn)行模型訓(xùn)練可以得到如圖7訓(xùn)練結(jié)果。
隨著迭代的進(jìn)行,采用Adam算法基于式(8)對(duì)神經(jīng)模型進(jìn)行參數(shù)更新可有效降低訓(xùn)練集誤差,對(duì)樣本特征進(jìn)行有效學(xué)習(xí),最終在固定105迭代次數(shù)下累計(jì)訓(xùn)練集誤差為0.375綜合考慮測(cè)試集樣本數(shù)量,訓(xùn)練效果良好。使用測(cè)試集樣本對(duì)模型進(jìn)行泛化性測(cè)試如圖8所示。
圖7 Adam算法訓(xùn)練誤差 圖8 Adam算法預(yù)測(cè)
由圖8可知模型在20個(gè)訓(xùn)練集樣本之下累計(jì)絕對(duì)可控制在0.5 μm之下結(jié)合python工作臺(tái)可知誤差最大項(xiàng)為0.031 μm。綜上有理由相信Adam可有效作為表面粗糙度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的優(yōu)化器。且相對(duì)SGD算法,Adam在神經(jīng)網(wǎng)絡(luò)參數(shù)更新過(guò)程中對(duì)步長(zhǎng)的調(diào)整以及梯度修正量更加具有針對(duì)性,一般來(lái)說(shuō)當(dāng)參數(shù)設(shè)置合理時(shí)可以使模型更快收斂且具有更好的擬合精度。
Ada Mod由北大孫栩課題組提出為Adam算法的一種改進(jìn),通過(guò)對(duì)參數(shù)的長(zhǎng)期學(xué)習(xí)速率進(jìn)行緩沖可使得模型在提高學(xué)習(xí)精度的基礎(chǔ)上更快收斂。在T次學(xué)習(xí)迭代中設(shè)初始化參數(shù)θ;步長(zhǎng)α為長(zhǎng)度為T(mén)的向量;動(dòng)量β1,β2為一階與二階動(dòng)量M、V對(duì)應(yīng)的慣性系數(shù);設(shè)代價(jià)損失函數(shù)ψ,正則化常數(shù)τ,則可得圖9算法流程。
圖9 Ada Mod算法流程
替換表3中θ為w、b即可得到神經(jīng)網(wǎng)絡(luò)參數(shù)更新公式。對(duì)比章節(jié)4.1及式(8)可知Ada Mod在迭代中增加超參數(shù)β3對(duì)訓(xùn)練中參數(shù)記憶長(zhǎng)短進(jìn)行了記錄,可有效避免Adam算法在自適應(yīng)學(xué)習(xí)時(shí)初期即使有正則化系數(shù)τ進(jìn)行限制依舊會(huì)導(dǎo)致學(xué)習(xí)率過(guò)大導(dǎo)致學(xué)習(xí)異常的現(xiàn)象。且具有RAdam算法的特征無(wú)需進(jìn)行預(yù)熱開(kāi)始訓(xùn)練時(shí)便具有一定的算法穩(wěn)定性。選擇同樣的測(cè)試指標(biāo)可得如圖10所示。
(a) Ada Mod算法訓(xùn)練誤差 (b) Ada Mod算法預(yù)測(cè)圖10 Ada Mod算法
結(jié)合圖7、圖8、圖10,可以直觀發(fā)現(xiàn)Ada Mod優(yōu)化器無(wú)論在訓(xùn)練集誤差還是測(cè)試集誤差上均相對(duì)Adam有著更好的表現(xiàn)。且最終測(cè)試集累計(jì)絕對(duì)誤差可以控制到0.02 μm,各項(xiàng)平均誤差為0.001 μm,誤差最大項(xiàng)為0.023 μm。有理由相信作為一種新的算法優(yōu)化器Ada Mod不僅可以在卷積神經(jīng)網(wǎng)絡(luò)、自然語(yǔ)言處理模型上對(duì)模型有效訓(xùn)練,在表面粗糙度預(yù)測(cè)模型上也有著十分優(yōu)秀的表現(xiàn)。
(1)基于Xavier的粒子群優(yōu)化算法進(jìn)行神經(jīng)網(wǎng)絡(luò)初始化相對(duì)傳統(tǒng)傳統(tǒng)PSO-BP可以有效降低神經(jīng)網(wǎng)絡(luò)模型的初始均方誤差,獲得更好的初始化狀態(tài)。
(2)Ada Mod算法優(yōu)化器通過(guò)對(duì)Adam進(jìn)行算法改進(jìn),在神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型中可使模型參數(shù)更新更加有效,有效降低訓(xùn)練集誤差,并提高模型預(yù)測(cè)能力。