文/岳曉峰 劉天
金屬工件精加工表面缺陷主要分為三類:劃痕、斑點(diǎn)、凹坑。金屬工件表面缺陷常用分類方法有三種:人工神經(jīng)網(wǎng)絡(luò)分類法、支持向量機(jī)分類法和樹(shù)狀分段線性分類法。人工神經(jīng)網(wǎng)絡(luò)分類算法對(duì)非線性擬合問(wèn)題表現(xiàn)突出,模擬大腦神經(jīng)網(wǎng)絡(luò)處理、記憶信息的方式進(jìn)行信息處理。在1985年,Powell提出了多變量插值的RBF函數(shù)(Radical Basis Function,簡(jiǎn)稱RBF)方法。1988年,Moody和Darken提出了一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),即RBF神經(jīng)網(wǎng)絡(luò),屬于前向類型的神經(jīng)網(wǎng)絡(luò),它具有以任意精度逼近連續(xù)函數(shù),特別適合于解決分類問(wèn)題。RBF神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)是,若RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)選取不當(dāng),則會(huì)導(dǎo)致網(wǎng)絡(luò)收斂慢甚至造成網(wǎng)絡(luò)發(fā)散。針對(duì)標(biāo)準(zhǔn)RBF神經(jīng)網(wǎng)絡(luò)算法的不足,本文提出了一種基于粒子群算法改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)的分類方法,利用粒子群算法優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的基函數(shù)的中心xi、方差σ、輸出權(quán)值ω,并對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練提高分類準(zhǔn)確率。
RBF網(wǎng)絡(luò)的結(jié)構(gòu)與多層前向網(wǎng)絡(luò)類似,它是一種三層前向網(wǎng)絡(luò)。第一層為輸入層,由信號(hào)源節(jié)點(diǎn)組成;第二層為隱含層,隱含層的單元數(shù)量由所描述問(wèn)題決定,隱含層單元的變換函數(shù)是對(duì)中心點(diǎn)徑向?qū)ΨQ且衰減的非負(fù)非線性函數(shù);第三層為輸出層,對(duì)輸入模式的作用作出響應(yīng)。從輸入空間到隱含層空間的變換是非線性的,而從隱含層空間的輸出層空間變換是線性的。由輸入層、單一隱含層和輸出層構(gòu)成的RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
RBF神經(jīng)網(wǎng)絡(luò)的激活函數(shù)一般使用RBF函數(shù)(如Gaussian函數(shù))作為激活函數(shù),以輸入向量和權(quán)值向量之間的距離||dist||作為自變量的。RBF神經(jīng)網(wǎng)絡(luò)激活函數(shù)的一般表達(dá)式為:
RBF神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法需要求解的參數(shù)有3個(gè):基函數(shù)的中心xi、方差σ、隱含層到輸出層的權(quán)值ω。根據(jù)RBF函數(shù)中心選取的方法不同,RBF神經(jīng)網(wǎng)絡(luò)有多種學(xué)習(xí)方法,如隨機(jī)選取中心法、自組織選取中心法、有監(jiān)督選取中心法和正交最小二乘法等。本文采用K-均值聚類方法,學(xué)習(xí)算法具體步驟如下。
(1)網(wǎng)絡(luò)初始化。
隨機(jī)選取h個(gè)訓(xùn)練樣本作為聚類基函數(shù)中心xi(i=1,2,…,h)。
(2)將輸入的訓(xùn)練樣本集合按最近鄰規(guī)則分組。
按照xp與中心為xi之間的歐式距離將xp分配到輸入樣本的各個(gè)聚類集合?p(p=1,2,…,P)中。
(3)重新調(diào)整基函數(shù)的聚類中心。
計(jì)算各個(gè)聚類集合?p中訓(xùn)練樣本的平均值,即新的基函數(shù)聚類中心xi,如果新的基函數(shù)聚類中心不再發(fā)生變化,則所得到的xi即為RBF神經(jīng)網(wǎng)絡(luò)最終的基函數(shù)中心,否則返回①,進(jìn)入下一輪基函數(shù)中心的求解。
(4)求解方差σi。
RBF神經(jīng)網(wǎng)絡(luò)的基函數(shù)為Gaussian函數(shù),因此方差σi可由下式求解。
式中,cmax為所選取聚類中心之間的最大距離。
(4)計(jì)算隱含層和輸出層之間的權(quán)值。
隱含層至輸出層之間神經(jīng)元的連接權(quán)值可以通過(guò)最小二乘法直接求得ω,計(jì)算公式如下。
圖2:RBF神經(jīng)網(wǎng)絡(luò)分類流程圖
圖3:PSO算法流程圖
在RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖中,輸入層到隱含層的權(quán)值是1,隱含層的激活函數(shù)為徑向基函數(shù),關(guān)鍵要求解出基函數(shù)的中心xi、方差σ、隱含層到輸出層的權(quán)值ω。首先運(yùn)用K-均值聚類方法確定基函數(shù)的中心xi,并通過(guò)公式(2)的計(jì)算求解出方差σi,由公式(3)求得隱含層到輸出層的權(quán)值ω。由分類數(shù)決定輸出節(jié)點(diǎn)數(shù)。將標(biāo)準(zhǔn)RBF神經(jīng)網(wǎng)絡(luò)應(yīng)用于金屬工件表面缺陷分類處理。金屬工件表面缺陷分類3類,那么劃痕的期望輸出向量為L(zhǎng)1(1,0,0),斑點(diǎn)的期望輸出向量為L(zhǎng)2(0,1,0),凹坑的期望輸出向量為L(zhǎng)3(0,0,1)。經(jīng)過(guò)以上步驟,便構(gòu)建完成RBF神經(jīng)網(wǎng)絡(luò)分類器的設(shè)計(jì),RBF神經(jīng)網(wǎng)絡(luò)分類器的分類流程圖如圖2所示。
圖4:PSO改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)分類流程圖
粒子群算法,也稱粒子群優(yōu)化算法或鳥(niǎo)群覓食算法(Particle Swarm Optimization),是由J. Kennedy和R. C. Eberhart等提出的一種新的進(jìn)化算法。在PSO算法中每個(gè)優(yōu)化問(wèn)題的潛在解都可以想象成搜索空間中的一只鳥(niǎo),稱之為“粒子”。在每一次迭代中,粒子通過(guò)跟蹤兩個(gè)“極值”來(lái)更新自己,第一個(gè)極值是粒子本身所找到的最優(yōu)解,這個(gè)解叫作個(gè)體極值pbest;另一個(gè)極值是整個(gè)種群當(dāng)前找到的最優(yōu)解,這個(gè)極值是全局極值gbest。粒子群算法的流程圖如圖3所示。其具體過(guò)程如下
(1)粒子群初始化,包括群體規(guī)模N,每個(gè)粒子的位置xi和速度vi。
(2)計(jì)算每個(gè)粒子的適應(yīng)度值Fit[i]。
(3)用適應(yīng)度值Fit[i]和個(gè)體極值pbest(i)比較,若Fit[i]>pbest(i),則用Fit[i]替換掉pbest(i)。
(4)用適應(yīng)度值Fit[i]和全局極值gbest(i)比較,若Fit[i]>gbest(i),則用Fit[i]替換掉gbest(i)。
(5)根據(jù)公式:
式中c1,c2為學(xué)習(xí)因子,更新每個(gè)粒子當(dāng)前的速度和位置。
(6)如果滿足結(jié)束條件(尋找到個(gè)體極值pbest和全局極值gbest或者達(dá)到最大循環(huán)次數(shù))退出,否則返回(2)。
表1:分類準(zhǔn)確率
圖5:3種方法性能對(duì)比圖
PSO算法最大的優(yōu)點(diǎn)是不需要調(diào)節(jié)過(guò)多的參數(shù),但是算法中的群體規(guī)模N、慣性權(quán)重ω、加速度常數(shù)c1和c2卻直接影響算法的性能和收斂性。其中慣性權(quán)重ω是最重要的參數(shù)。增大ω的值可以提高算法的全局搜索能力,減小ω的值可以提高算法的局部搜索能力。常見(jiàn)的PSO算法有自適應(yīng)權(quán)重法、隨機(jī)權(quán)重法和線性遞減權(quán)重法等。本文采用線性遞減權(quán)重法確定PSO算法中的慣性權(quán)重。針對(duì)PSO算法容易早熟及后期容易在全局最優(yōu)解附近產(chǎn)生振蕩現(xiàn)象,采用了線性遞減權(quán)重法,即使慣性權(quán)重依照線性從大到小的遞減,其變化公式為:
式中ωmax為慣性最大值;ωmin為慣性最小值;t為當(dāng)前迭代次數(shù)。
線性遞減權(quán)重法的計(jì)算步驟如下:
(1)隨機(jī)設(shè)置各個(gè)粒子的速度和位置。
(2)評(píng)價(jià)每個(gè)粒子的適應(yīng)度,將粒子的位置和適應(yīng)值儲(chǔ)存在粒子的個(gè)體極值pbest中,將所有pbest中最優(yōu)適應(yīng)值的個(gè)體位置和適應(yīng)值保存在全局極值gbest中。
(3)更新粒子位移和速度:
(4)更新權(quán)重:
(5)將每個(gè)粒子的適應(yīng)值與粒子的最好位置比較,如果相近,則將當(dāng)前值作為粒子最好的位置。比較當(dāng)前所有的pbest和gbest,更新gbest。
(6)當(dāng)算法達(dá)到其停止條件,則停止搜索并輸出結(jié)果,否則返回(3)繼續(xù)搜索。
基于PSO 的RBF神經(jīng)網(wǎng)絡(luò)分類具體過(guò)程:
(1)讀取輸入樣本和測(cè)試樣本。
L1,L2,L3分別表示劃痕、斑點(diǎn)、凹坑。每種缺陷的訓(xùn)練樣本和測(cè)試樣本各100幅圖片。
(2)數(shù)據(jù)歸一化處理。
在建立神經(jīng)網(wǎng)絡(luò)之前需要對(duì)訓(xùn)練樣本和測(cè)試樣本數(shù)據(jù)進(jìn)行歸一化處理,提高神經(jīng)網(wǎng)絡(luò)的收斂速度和泛化能力,同時(shí)增加每個(gè)樣本之間的關(guān)聯(lián)信息,使其擬合效果更好。實(shí)驗(yàn)中將數(shù)據(jù)歸一化到[0,1]之間并找出樣本X中的最大值Xmax和最小值Xmin,用如下公式計(jì)算:
Xi表示歸一化后的數(shù)據(jù),這樣所有的數(shù)據(jù)都在[0,1]之間。
(3)RBF神經(jīng)網(wǎng)絡(luò)核函數(shù)參數(shù)的優(yōu)化。
初始化粒子群及RBF神經(jīng)網(wǎng)絡(luò),建立PSO算法中粒子與神經(jīng)網(wǎng)絡(luò)連接權(quán)值之間的映射;計(jì)算各粒子之間的適應(yīng)值,將神經(jīng)網(wǎng)絡(luò)的方差作為PSO算法的適應(yīng)函數(shù),適應(yīng)度函數(shù)值越大說(shuō)明粒子的位置越好,其公式如下:
式中Fit[i]為第i個(gè)粒子的適應(yīng)度值,D為神經(jīng)網(wǎng)絡(luò)的方差,p為訓(xùn)練樣本總數(shù),m是輸出層的節(jié)點(diǎn)數(shù),為實(shí)際輸出值,為期望輸出值;根據(jù)公式(4)和(5)更新粒子的速度和位置;重復(fù)上述步驟,直到找到粒子的最優(yōu)解或者最大循環(huán)次數(shù)。
(4)運(yùn)用經(jīng)過(guò)PSO改進(jìn)后的RBF神經(jīng)網(wǎng)絡(luò)對(duì)測(cè)試樣本進(jìn)行缺陷分類,分類流程圖如圖4所示。
圖7
本文通過(guò)MATLAB R2016a軟件進(jìn)行編程,為了驗(yàn)證算法的有效性,首先使用標(biāo)準(zhǔn)RBF神經(jīng)網(wǎng)絡(luò)算法和PSO改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)算法以及之前研究的BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行性能對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示。從圖中可以看出在取得相同均方差時(shí),PSO改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)所需的迭代次數(shù)更少。
為驗(yàn)證程序的穩(wěn)定性,將程序運(yùn)行20次求得迭代次數(shù)平均值,如圖6所示。
運(yùn)用RBF神經(jīng)網(wǎng)絡(luò)、PSO改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)對(duì)金屬工件表面的缺陷進(jìn)行分類。采集含有缺陷的圖片300幅,其中含有劃痕、斑點(diǎn)、凹坑三種缺陷的圖片各100幅。三種典型缺陷圖片如圖7所示。
對(duì)抽取的測(cè)試樣本進(jìn)行試驗(yàn),分類結(jié)果如表1所示。
從表1中可以看出,劃痕的分類識(shí)別準(zhǔn)確率最高,達(dá)到97.8%,其次是斑點(diǎn)和凹坑,缺陷的平均識(shí)別率在94%。為證明本文中PSO改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)分類方法優(yōu)于RBF神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)分類方法,進(jìn)行對(duì)比試驗(yàn)。采集含有缺陷的圖片300幅,其中含有劃痕、斑點(diǎn)、凹坑三種缺陷的圖片各100幅,統(tǒng)計(jì)結(jié)果如圖8所示。
圖8:分類方法對(duì)比實(shí)驗(yàn)
本文應(yīng)用PSO算法對(duì)RBF神經(jīng)網(wǎng)絡(luò)基函數(shù)的中心xi、方差σ、隱含層到輸出層的權(quán)值ω進(jìn)行訓(xùn)練尋求最優(yōu)值,消除了人為因素選取RBF神經(jīng)網(wǎng)絡(luò)中心參數(shù)導(dǎo)致網(wǎng)絡(luò)收斂慢甚至造成的網(wǎng)絡(luò)發(fā)散問(wèn)題。在標(biāo)準(zhǔn)PSO算法的基礎(chǔ)上引進(jìn)線性遞減權(quán)重法對(duì)ω進(jìn)行優(yōu)化,提高了PSO算法的收斂速度和精度。對(duì)比實(shí)驗(yàn)表明PSO算法改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)比標(biāo)準(zhǔn)RBF神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)分類識(shí)別準(zhǔn)確率有較大提高。