(1.青島大學 機電工程學院,山東 青島 266071; 2.青島大學 商學院,山東 青島 266071)
傳統的BP神經網絡采用梯度修正法作為權值和閾值更新的方法,僅從預測誤差負梯度方向修正權值和閾值,學習過程收斂緩慢,并且容易陷入局部最小值,導致泛化能力不足[1-4]。為了解決在此方面的問題,朱江森[5]等人提出一種應用在氫原子鐘鐘差預測上的改進BP神經網絡,通過加入誤差懲罰項的措施,減小了平均預測誤差,提高了預測精度并減少了收斂時間。Zweiri[6]等人提出三項BP算法,除了學習速率和動量因子外,添加了第3個權重調節參數,從一定程度上改善了收斂速度慢和易陷入局部最小值導致的泛化能力不足的問題。文獻[7]~文獻[9]也分別提出了改善BP算法的方法,但是這些算法均是基于梯度大小改變權值和閾值的方式,雖然可以通過在梯度方面加入參數,但實質很難避免偏導數大小對網絡收斂速度和網絡的泛化能力的絕對影響。而Resilient Backpropagation[10](RPROP)方法是一種基于偏導數正負改變權值的方法,可以有效改善偏導數大小對網絡收斂的影響。楊存祥[11]等人利用RPROP 法改善BP神經網絡,建立了異步電動機故障診斷模型,相比標準BP算法診斷精度和網絡的訓練速度都明顯加快。文獻[12]和文獻[13]分別在BP網絡中應用了RPROP方法,但是這些算法均是對RPROP方法的直接應用,并沒有對RPROP方法做出改進。
基于梯度大小更新權值和閾值的方式確實很難回避偏導數大小對網絡收斂速度的影響,但是計算出梯度馬上利用梯度進行權值和閾值的更新讓算法比較簡練,而且只需存儲網絡下一次更新的梯度,消耗的存儲空間較小。RPROP方法是一種基于偏導數正負改變權值的方法,偏導數的大小并不影響網絡的收斂速度,完全避免了偏導數大小對網絡收斂影響。但是由于需要近兩倍于標準算法更新權值的存儲空間,使基于RPROP的算法對計算機資源消耗較大,特別是在網絡較復雜的情況下。近年來計算機硬件的發展使得存儲空間在一般情況下不會成為算法的瓶頸,又考慮到網絡訓練中步長的大小對網絡的收斂影響極大,于是為了充分加快網絡的收斂速度,引入了一種變步長的方法改善RPROP方法。Harris[14]等人提出的一種變步長的方法被認為是最有效的改變的方法,該方法需要根據多次網絡更新用到的偏導數情況來確定步長的大小,同時該算法保留了合適的振蕩幅度,在加快收斂的同時很好地避免了陷入局部最小值問題。本文將兩種算法進行融合,改進RPROP方法。同時考慮到網絡參數的數量對網絡的收斂速度和訓練所消耗的計算機資源有直接影響,為減少網絡的非必要參數,本文將PCA算法與改進后的BP神經網絡結合,提出了一種PCA-改進BP神經網絡算法。對重金屬音樂、山歌音樂、流行音樂和笛子音樂4種語音信號進行識別,通過試驗結果對比發現,本算法確實可以達到加快網絡收斂速度和提高泛化能力的目的。
Harris根據均方誤差的梯度分量符號來估計與最小均方誤差的距離,當檢測到連續符號變化時,步長減小。當檢測到的符號連續變化相同時,步長增加。該算法用均方誤差梯度分量符號來估計與均方誤差全局極小值間的距離,具體算法為
S(n+1)=S(n)×f(λ)
(1)
其中,
(2)
式中,λ為選擇的常數;m0和m1為自己選擇的正整數參數,實驗證明m0=3,m1=3會取得良好的實驗效果。
RPROP方法是由德國的Martin Riedmiller 和Heinrich Braun在1993年提出,RPROP方法用來指導批處理學習的學習方案,其原理是:若前次和本次兩次更新的偏導數的方向不同,則本次不論權重是增加或者減小,權重的增減幅度都變小;若前次和本次兩次更新的偏導數方向相同,則本次不論權重是增加還是減小,權重的增減幅度都變大。此方法可以加快網絡的收斂速度,具體算法為
W(t+1)=W(t)+ΔW(t)
(3)
(4)
(5)
式中,0<α<1<β,為自己確定的參數值。當α=0.5,β=1.2,Δt(0)=0,Δtmin=1×10-6,Δtmax=50時,算法可以取得比較好的效果。
綜合上述幾種算法的優點,提出一種新的算法,該算法的推導過程為
W(t+1)=W(t)+ΔW(t)
(6)
(7)
簡化得
(8)
所以,有
(9)
又因為
(10)
定義

(11)
所以有
(12)
考慮變學習率f(λ)的加入,
(13)
使得
(14)
式中,s(t-1)為第(t-1)次學習率的步長。
所以,最終更新的網絡權值為
(15)
式中,W(t)為網絡第t次的權值;E(t)為網絡的均方誤差函數;f(λ)為變學習速率;g(x)為自定義分段函數:

(16)
式中,α=0.5,β=1.2。
① 獲取M個n維的數據樣本構成M×n的矩陣XM×n,其中每行表示一個樣本,取前N行用于訓練,剩下n-N行用于測試。所以訓練集為XM×N,測試集為XM×(n-N)。
② 求取訓練集XM×N每維的均值為
(17)
③ 對RM×n進行零均值化處理,得
(18)
并且構造協方差矩陣為
(19)
④ 求出協方差矩陣的特征值λ1≥λ2≥…≥λn及對應的已經正交化的特征向量[u1,u2,…,un],其中ui=[ui1,ui2,…uin]。計算單個成分貢獻率為
(20)
前i個貢獻率的和是累計貢獻率,即
(21)
如果γ≥a(取a=85%)時,就認為前i個主成分為所求,構成了投影向量子空間。
⑤ 主成分的個數是i,測試數據向主成分向量進行投影,得F=[F1,F2,…,Fi],其中Fi為
Fi=ui1Y1+ui2Y2+…+uinYn
(22)
⑥ 對F進行歸一化處理,利用歸一化后的F建立i-p-q層神經網絡,其中i,p,q分別為輸入層、隱含層、輸出層神經元的數目,具體根據題目決定。
⑦ 以所提出的改進的RPROP算法作為網絡訓練的權值更新算法訓練網絡。
⑧ 測試集數據XM×(n-N)向投影向量子空間進行投影,并進行歸一化處理后,輸入訓練好的網絡進行測試,得到能正確識別的數目(n-N)′,網絡識別率為

(23)
為了驗證算法的有效性,對音樂分類的問題進行實驗。采用所提出的PCA-改進BP神經網絡和附加動量法改進的BP神經網絡及標準神經網絡從最高識別率、達到最高識別率90%的用時和平均識別率3個方面進行比較。實驗環境是PC機,Intel Xeon E3-1230 v2 CPU,四核心八線程,主頻3.3 GHz。Windows 10操作系統,Matlab 7.1實驗平臺。
選擇的4類音樂為:重金屬樂,山歌,通俗歌曲,笛子。每類音樂選擇一首樂曲并截取其中1段音樂,4段音樂信號分別用梅爾頻率倒譜系數法提取20維語音特征信號各2000幀,提取的音樂特征信號如圖1所示。
運用主成分分析法,對訓練集樣本數據R6400×20降維,得到的特征值、貢獻率和累計貢獻率如表1所示。
由表1可以看出,前11個特征值的貢獻率為87.52%,所以選擇協方差矩陣的前11個特征值對應的個特征值對應的特征向量組成的空間作為投影空間,對訓練和測試樣本集數據R20×8000進行降維,得到R11×8000,之后進行歸一化處理。
經過多次嘗試,隱含層節點數選擇13時,可以取得比較好的效果。建立11-13-4的BP神經網絡,分別用不同的權值更新方法訓練網絡,用測試樣本進行測試。進行50次測試后,分別找出改進后的BP神經網絡和標準梯度下降BP神經網絡能達到的最高識別率,最高識別率對比如表2所示。

序號特征值貢獻率/%累計貢獻率/%序號特征值貢獻率/%累計貢獻率/%165.2131.5831.58116.763.2787.52223.3811.3242.90126.413.1090.62315.767.2650.16136.032.9193.53413.216.4056.56145.612.7196.24511.925.7762.33155.062.4598.69611.435.5367.86160.914.4×10-399.0379.494.6072.46170.713.4×10-3100.0088.664.1976.65180.188.7×10-4100.0098.194.0080.65190.136.2×10-4100.00107.443.6084.25

表2 最高識別率對比
由表2可以看出,在最高識別率方面,改進的BP神經網絡與標準BP神經網絡相比,對每類音樂均有更高的識別率。
分別選擇1,2,3,…,9 s的訓練時間訓練網絡,對應每個訓練時間訓練和測試10次,分別做出每類音樂識別率和訓練時間的關系如圖2~圖5所示,兩種神經網絡訓練時間和平均識別率的關系如圖6所示。
由圖2可以看出,在重金屬音樂識別方面,標準算法與改進算法相比,開始有較高的識別率,訓練結束時,標準算法的識別率高于改進算法;由圖3可以看出,標準算法和改進算法在山歌音樂方面均有很高的識別率;由圖4和圖5可以看出,改進算法與標準算法相比,具有更高的識別率。3種算法的對比如表3所示。

圖2 重金屬音樂識別率和訓練時間的關系

圖3 山歌音樂識別率和訓練時間的關系

圖4 笛子音樂識別率和訓練時間的關系

圖5 通俗歌曲音樂識別率和訓練時間的關系

圖6 神經網絡訓練時間和平均識別率的關系

表3 3種算法的對比
由圖6和表3可以看出,當訓練時間在1s時,算法1平均識別率達78.8%,其識別率遠高于算法2的67.4%和算法3的69.0%,并且在整個訓練過程中一直保持最高識別率。最后算法1的識別率為93.4%,算法2的識別率為91.0%,算法3的識別率為91.6%。分別高出算法1識別率2.6%,算法3識別率1.9%。在達到最高識別率90%用時方面,算法1為2 s,算法2為5 s,算法3為3 s。算法2節省時間60%,算法3節省時間33%。而算法3的識別率在訓練過程中有較大波動,算法1的波動較小。
本文推導出一種PCA-改進RPROP方法的BP算法,通過對重金屬音樂、山歌音樂、流行音樂、笛子音樂四種音樂進行識別實驗,證明了算法的可行性,同時可以看出算法在收斂速度,平均識別率方面均高于標準算法及其部分改進算法。但在重金屬音樂的最終識別率方面,改進算法要低于標準算法及其改進算法。