黃富幸,韓文花
(上海電力大學自動化工程學院,上海 200090)
深度學習[1]是機器學習領域中的一個熱門的研究方向。能夠通過無監督或有監督的方式[2-3],表現出高效強大的分類能力和特征學習能力。深度學習是學習樣本數據的內在規律和表示層次,使得模型能夠識別文字、圖像和聲音等數據。通過不斷研究發展,許多深度學習模型[4-7]相繼被研究開發出來。使得分類模型在垃圾分類、損傷識別、醫療和故障診斷等方面運用也越來越熱門[8-10]。分類模型在實際應用中對提取到的不平衡數據特征進行分類時,其準確率要求也越來越高,也有越來越多的學者對分類算法進行優化。羅金滿等[11]提出了一種結合K最近鄰分類算法和改進粒子群算法的變電站設備分類識別方法提高了設備的分類識別精度。劉宇韜等[12]提出了一種基于自適應增強學習框架的最小二乘支持向量機算法(adaptive boosting-least squares support vector machines,AdaBoost-LSSVM),應用于玻璃纖維損傷識別問題來提高損傷識別的準確率。雖然以上方法分類準確率效果尚可,但是分類模型中或多或少都有存在一定的分類錯誤,分類模型的準確率還有得提高。
深度學習中有關神經網絡的研究有很多,但相比之下,反向傳播(back propogation,BP)神經網絡的理論是最完善的,具備良好的泛化能力、自適應、魯棒性和學習性。BP神經網絡的輸入層、隱含層和輸出層這簡單的三層結構能夠很好地處理精度低的數據。現階段BP神經網絡現在已經被廣泛應用在圖像處理、函數逼近和分類識別等方面Comes等[13]使用遺傳算法(genetic algorithm,GA)來優化人工神經網絡對來復合材料層合板的損傷位置和嚴重程度進行識別,使得識別變得準確。耿文莉等[14]提出了一種灰色神經網絡的安全風險評估模型,對風險信息準確分類,能確保網絡云平臺大數據存儲的安全性能。鐘蒙等[15]提出了BP 神經網絡與灰色關聯度分析結合起來對公路的貨運量進行預測,得到了較高的準確率。王麗等[16]用混沌天牛優化算法群優化BP神經網絡,使得網絡分類準確率提高。雖然總體優化使得網絡效果有所提升,但BP神經網絡還是存在收斂速度差,容易掉入局部最優的陷阱的缺點[17]。
因此,為了提高分類的準確率,現使用改進蜉蝣算法(improved mayfly algorithm,IMA)優化BP神經網絡,并將其作為弱分類器,再將多個弱分類器得出的結果通過集成學習投票(Voting)機制進行融合,來進一步提高分類性能,最終形成一個Voting機制的IMA-BP多分類算法模型。最后將該模型與其他分類模型用數據庫中的數據集來進行測試對比,來驗證本文所構建的分類算法模型的準確性和有效性。
BP神經網絡是一種多層前饋神經網絡[18-19],它的主要結構可分為3層:輸入層、隱含層和輸出層,如圖1所示。BP神經網絡的性能主要由它的網絡結構、閾值、權重和學習效率等因素決定。網絡結構主要是隱藏神經元,其主要影響BP神經網絡所需的訓練次數。隱含層神經元太少需要增加訓練次數來取得更好的結果,若隱含層神經元太多,那么訓練時間會綿長且容易過擬合。所以經過多次實驗,隱含層神經元需要滿足關系式

圖1 BP神經網絡結構

(1)
式(1)中:x為輸入層;z為輸出層;y為隱含層神經元;a為[0,10]的自然數。
BP神經網絡包括信號的前向傳播和誤差的反向傳播兩個過程。在前向傳播階段時,輸入信號通過隱含層處理,再通過非線性變換,產生輸出信號,如果實際輸出與期望輸出不相符,那就進入下一個階段誤差的反向傳播。誤差的反向傳播是將從各層獲得的誤差信號作為調整各單元權值的依據,通過預測使得誤差沿梯度方向下降,經過多次學習訓練,確定與最小誤差相對應權值和閾值,從而使BP神經網絡的預測輸出靠近期望輸出。
蜉蝣算法(mayfly algorithm,MA)[20-22]的靈感主要來源于蜉蝣的社會行為,尤其是蜉蝣的交配過程。蜉蝣算法的尋優過程大體可分為:雄性蜉蝣的運動、雌性蜉蝣的運動和雄雌優異個體的交配。蜉蝣算法結合了飛行算法和進化算法的優點,在結構上也結合改進了粒子群算法和遺傳算法,是一種新型元啟發式優化算法,具有尋優性能好、收斂速度快的特點。
1.2.1 雄性蜉蝣的運動
(2)
考慮到蜉蝣的運動特性,將雄性蜉蝣的速度定義為
(3)
(4)
式(4)中:ibest代表pbest和gbest;ibest,j表示在j維度時pbest和gbest的取值,xi表示雄性蜉蝣i;xij表示在j維度時雄性蜉蝣i的取值;n為雄性蜉蝣維度的上限。
依據蜉蝣特性,種群中最好的蜉蝣會表演它們特有的上下舞蹈,所以將這種行為表示為
(5)
式(5)中:d為隨機舞蹈系數;r為[-1,1]的一個隨機數。
1.2.2 雌性蜉蝣的運動

(6)
考慮到雌雄蜉蝣相互吸引的隨機性,將雌性蜉蝣的速度表示為
(7)
1.2.3 雄雌蜉蝣的交配
雄雌蜉蝣交配過程,可以使用交叉算子來表示,從雄性蜉蝣種群中選擇一個樣本為父本,從雌性蜉蝣種群中選擇一個樣本為母本。這兩個樣本在各自種群適應度排名相同。采用優勝劣汰的機制,將最優個體的雄性和雌性蜉蝣進行繁殖得到最優個體,將其表示為
(8)
式(8)中:O為雌雄蜉蝣繁衍的后代;xmale為父本;yfemale為母本;L為[-1,1]的一個隨機數。
雖然蜉蝣算法與其他群智能優化算法相比有擁有良好的性能和優勢,但是算法在前期的全局搜索能力較弱,這可能會導致后期難以達到理想解。為了提高蜉蝣算法的全局搜索能力,同時加強局部搜索能力,使用以下兩種方法改進。
(1)阻尼比系數。
借鑒粒子群改進算法中粒子速度權重g的改變能優化算法的思想。在調試蜉蝣算法中,發現隨機舞蹈系數d和隨機游走系數f的改變同樣對算法有所影響,因此引入阻尼比系數damp,使得隨機舞蹈系數d和隨機游走系數f隨著迭代次數的變化而穩定遞減,表達式為
(9)
引入阻尼比系數后,每一次迭代都會將隨機舞蹈系數d和隨機游走系數f進行一次運算,同時將運算結果給下一次迭代使用。此方法能夠加強算法的全局搜索和局部搜索,防止算法陷入局部最優。
(2)非線性慣性權重因子。
慣性權重因子對算法的搜索能力和開發能力有著良好的指導性作用。當慣性權重因子較大時算法有較好的全局搜索能力,較小時算法的開發能力較強,有較好的局部搜索能力。因此,為了達到前期慣性權重因子較大,后期慣性權重因子較小的要求,循環時的慣性因子計算公式為
(10)
式(10)中:t為迭代次數;Tmax為最大迭代次數。
當算法中引入非線性慣性權重因子后,雌性蜉蝣和雄性蜉蝣的位置更新表示為
(11)
當算法進行迭代運算時,慣性權重因子會從最大非線性的減小到0。通過加入非線性慣性權重因子能夠提升算法在前期的全局搜索能力,同時能夠加強后期局部搜索能力。
將改進的蜉蝣算法與基礎的蜉蝣算法MA、粒子群算法(particle swarm optimization,PSO)、遺傳算法GA這3種優化算法進行比較。將這4種優化算法應用于函數尋優中,找到函數最小值時的最優解,然后對算法的優化效果進行比較,函數表達式為
F=x2-6x+9
(12)
在尋優時,將4種算法的初始種群都設為20,迭代次數都設置為10,解的上下限范圍都設為(2,4)。最后各個優化算法得出的最優解與迭代次數如圖2所示。從圖2中可以看出,PSO和GA得到最優解次數分別為第8次和第7次,而MA得出的最優解在第3次,改進后的IMA在第2次就得到了最優解,可以表明IMA優化效果好,且改進后算法能夠提升算法前期全局搜索能力和后期局部搜索能力,使算法能夠更快地搜索到最優解。

圖2 各優化算法比較
針對傳統BP神經網絡模型對數據分類結果精度低的問題,引入改進蜉蝣算法 (improved mayfly algorithm,IMA)來對BP神經網絡的權值和閾值進行優化,流程圖如圖3所示。通過改進后的蜉蝣算法與BP神經網絡相結合,改進后的蜉蝣算法可以優化網絡的權值和閾值。將通過算法優化后的網絡權值和閾值傳遞到BP神經網絡分類模型中,再對數據進行訓練與分類,通過這種方法能有效預防BP神經網絡在分類時陷入一個局部極值,能夠提高BP神經網絡的訓練效率、速度和學習能力,且優化了網絡的性能,獲得更加準確的分類結果。IMA-BP模型的步驟如下。

圖3 IMA-BP流程圖
步驟1輸入數據,將數據劃分為了測試集和訓練集。
步驟2初始化蜉蝣算法的參數,主要為迭代次數、種群大小、蜉蝣的初始位置和速度等參數。
步驟3將BP神經網絡分類模型和訓練集得出的分類準確率作為適應度函數來計算蜉蝣個體的適應度值。
步驟4根據適應度值對蜉蝣群體歷史最優位置pbest和蜉蝣個體歷史最優位置gbest進行更新。
步驟5根據引入的阻尼比系數和非線性慣性權重因子對雄性蜉蝣和雌性蜉蝣的速度和位置進行更新。
步驟6雄雌蜉蝣進行交配,若生成子代后的適應度值較優則替換掉對應的較差個體,此時子代的初始速度為0。
步驟7判斷是否滿足輸出條件(迭代次數是否達到限定次數).如果滿足條件則輸出最優值,如果不滿足則返回步驟3。
步驟8將步驟7中輸出的最優值,即經過蜉蝣算法優化后的最優權值和閾值分別傳遞反饋給BP神經網絡分類模型,再將準備好的訓練集放入模型對模型進行學習與訓練,最后將測試集放入模型中進行分類,得出分類結果和準確率。
IMA-BP混合模型的算法偽代碼如下所示。

IMA-BP混合模型偽代碼輸入:訓練集train,測試集test輸出:準確率Accuracy建立神經網絡模型初始化神經網絡參數W,b初始化雄性和雌性蜉蝣的種群和速度求出各蜉蝣適應度值(網絡對訓練集的分類準確率)得出gbestWhile 未滿足中止條件 更新雌雄蜉蝣的速度和解 評估解 雌雄蜉蝣排序 雌雄蜉蝣交配 評估子代 將子代劃為雌性和雄性種群 更新pbest和gbestEnd將gbest給W,b賦值通過優化后的網絡對測試集進行分類計算出準確率Accuracy
通過偽代碼可以對算法進行復雜度分析。算法執行所消耗的時間可以稱為時間復雜度,可以檢驗算法的性能。在算法中,包含著雌性蜉蝣和雄性蜉蝣兩個種群,假設種群數量分別為N和M,當算法的維度為k,且迭代次數為G時,那么該算法的時間復雜度為O[(N+M)kG]。
集成學習(ensemble learning,EL)在機器學習、深度學習中有重要的應用。集成學習顧名思義就是把所建立的不同模型通過某些機制或按要求設定的標準進行集成融合,從而能夠得到一個更加強大穩健的模型。集成學習的方法有多數票機制、套袋法和Adaboost等。
由于BP神經網絡的分類具有隨機性,為了提升分類算法的準確率,將IMA-BP分類算法作為一個弱分類器,把多個弱分類器得出的結果通過集成學習中投票(Voting)機制來進行融合,形成一個強分類器,如圖4所示。

圖4 集成學習
集成學習中的投票(Voting)機制可以分為硬投票(hard voting)和軟投票(soft voting)。硬投票表示各弱分類器在權重相同的情況下進行投票,其原理為多數投票原則,滿足少數服從多數。同時投票中如果弱分類器的某一分類結果超過半數,那么選擇該結果,如果沒有半數,那么結果則無輸出。軟投票也稱加權平均概率投票,雖然軟投票的原理也是多數投票原則,但是軟投票是基于弱分類投票所占的權重來進行投票,每次投票都可以將 器的準確率作為權重,最終選擇值最大的一個,通過n個分類器分類的一組數據的各個分類結果值的運算公式為
(13)
式(13)中:S(Label=A)代表分類標簽為A時求得的值;Acc為第i個弱分類器的準確率;n為弱分類器的個數;P(A)的值為1或0,當第i個弱分類器的結果為A時P(A)=1,否則P(A)=0。
為了能夠驗證IMA-BP分類算法的有效性,使用Vehicle 數據集來進行測試。Vehicle數據集是加利福尼亞大學公開的UCI 數據庫中的公開數據集,該數據集中包含846 組車輛的數據,每組數據有18維特征,這846組數據中的共計4個車型類別。
在仿真實驗中,將數據庫中4類總計150組數據劃分為了測試集,將剩余696組數據劃分為訓練集。通過訓練集和測試集來比較該方法與BP、PSO-BP、GA-BP和MA-BP這4種模型的分類準確率。將每種模型進行5次測試,最后得出平均準確率,如表1所示。從表1中可以看出,IMA-BP算法在數據庫相同的情況下相比其他4種算法準確率更高,證明了IMA-BP分類算法能夠更好地進行多分類。

表1 UCI數據集測試結果
為了進一步提高分類的準確率,將IMA-BP作為弱分類器后,通過投票機制對結果進行融合分析,為了確認軟投票和硬投票的效果,將IMA-BP弱分類器進行25次分類運算,將分類得出的數據從5、10、15、20和25組數據通過兩種投票方式進行計算,以此來區分兩種方法的效果,實驗結果如表2所示。從表中可以看出,軟投票在5組、10組、15組和20組的數據下的分類準確率要高于硬頭票,同時硬投票在有25組數據下得出的分類準確率要高于軟投票。這表明在數據較少時,軟投票的分類準確率的分類效果優于硬投票,當數據量足夠時,硬投票的效果較好。

表2 軟投票和硬投票
為了確定當有幾個弱分類器時其分類效果更好,通過IMA-BP分類得出的25組數據,依次遞加數據組個數來進行軟投票和硬投票的計算,得出的結果如圖5和圖6所示。從圖5中可以看出在弱分類器有3個準確率最高達到了88.666 7%,而從圖6中可以看出在弱分類器有2個準確率最高達到了87.333 3%,相比之下軟投票的效果要優于硬投票。

圖5 軟投票弱分類器個數與準確率

圖6 硬投票弱分類器個數與準確率
實驗仿真結果表明軟投票機制下的IMA-BP分類模型的效果相較于其他模型效果好,該模型的準確率達到了88.666 7%。為進一步研究該分類算法模型的效果,繪制了混淆矩陣,如圖7所示。從圖7混淆矩陣中可以直觀地看出,混淆矩陣中斜角方向的藍色方塊中的數字表示被分類準確的樣本個數,其他顏色方塊中的數字則表示被分類錯誤的樣本個數,行列方向都表示4個類別的標簽??梢悦黠@看出類別為1和2的樣本的分類準確率較高,而類別3和4的樣本的分類準確率較低,容易將類別3和類別4分類結果相反,偶爾會分類成類別1和類別2。但是整體的分類準確率很可觀。

圖7 測試集分類結果混淆矩陣
將本文所構建的分類模型和其他分類模型進行比較。其他分類模型選取KNN、PSO-NBC和AB-LSSVM這3個分類模型。將這3種分類模型對相同的訓練樣本和測試樣本進行分類,分類出的結果如表3所示。從表3中可以看出KNN和粒子群優化的樸素貝葉斯分類這兩個分類模型的效果不太好,KNN甚至相差了22.67個百分點,而基于AdaBoost算法的最小二乘支持向量機分類模型準確率雖然很高但是比本文模型少了將進7個百分點。通過實驗仿真結果表明,本文構建的分類算法模型與其他分類模型相比有更高的準確率。

表3 不同分類模型測試結果
為了進一步驗證本文模型對不同數據集的分類效果,將本文所構建Voting IMA-BP分類模型和BP、MA-BP、PSO-BP、GA-BP、KNN、PSO-NBC、AB-LSSVM其他分類模型使用其他的數據集進行比較。數據集選取了UCI中除Vehicle數據集外的數據集,包含Iris、WIL(wireless indoor localization)和CE(car evalution)。這些數據集中包含是樣本數、特征維度、類別、劃分的訓練集和測試集樣本數如表4所示。每個數據集的測試集通過不同的分類算法模型得到的分類結果如表5所示。

表4 數據集信息

表5 不同數據集分類準確率
從表5中通過比較分類的準確率可以看出,在對Iris、WIL和CE數據集進行分類時,本文提出的Voting IMA-BP分類模型相比于其他的分類模型都有較高的分類準確率。從表中的數據進行確切的分析,Voting IMA-BP分類模型與BP、PSO-BP、GA-BP和MA-BP這些分類模型的相比較下,分類準確率都有不俗的提升,相比之下雙方的分類準確率最大相差了13.34個百分點,最小也有相差1.19個百分點,表明了IMA相比于其他優化算法能夠更好地優化BP神經網絡的權值和閾值,能更好地加強BP神經網絡的學習效率。把Voting IMA-BP的準確率于其他KNN、PSO-NBC、AB-LSSVM這些分類模型相比,發現Voting IMA-BP的準確率更高,對分類的準確率都有不小的提升,相比之下雙方的分類準確率最大相差了20個百分點,最小也有相差3.34個百分點,表明Voting機制下的IMA-BP分類算法相對于其他分類模型來說對不平衡數據有更好的分類準確率。
為了能夠更好地對不平衡數據進行分類,構建出了基于集成學習Voting機制的IMA-BP分類算法模型,同時使用公開的UCI 數據庫中的數據集進行仿真實驗驗證,得出以下結論。
(1)IMA優化的BP神經網絡對Vehicle數據集分類準確率為84.24%,比MA、PSO、GA優化的BP神經網絡的準確率都高,說明了IMA優化算法相對于MA、PSO、GA優化算法能更好地對BP神經網絡的權值和閾值進行優化,提高BP神經網絡的學習效率。
(2)Voting機制的IMA-BP分類模型對4個數據集的分類準確率分別為88.67%、96.67%、91.25%、93.52%,且分類準確率都要高于其他模型,表明了Voting機制下的IMA-BP分類算法分類效果好,與其他分類模型相比有更好的分類準確率。
本文分類模型有著很強的潛力,在面對不同分類任務如車型識別、垃圾分類、損傷識別和故障診斷等方面,較容易收集到不平衡數據特征,將本文模型應用到這些任務中,能夠減小不平衡數據的影響,使分類具有較好的精度,對這些分類任務具有指導作用和較強的應用價值。