?

基于SFLA優化BP神經網絡的語音信號分類

2017-05-24 14:45葉紅衛戴光智
計算機測量與控制 2017年5期
關鍵詞:模因語音神經網絡

葉紅衛,戴光智

(1.河源職業技術學院 電子與信息工程學院,廣東 河源 517000;2.深圳職業技術學院 計算機工程學院,廣東 深圳 518055)

基于SFLA優化BP神經網絡的語音信號分類

葉紅衛,戴光智

(1.河源職業技術學院 電子與信息工程學院,廣東 河源 517000;2.深圳職業技術學院 計算機工程學院,廣東 深圳 518055)

BP神經網絡是一種多層前饋網絡,數據經過網絡的輸入層、隱含層逐層處理后,由輸出層進行輸出,通過和期望輸出的對比進行反向傳播,調整網絡參數使輸出不斷逼近期望輸出;在使用BP神經網絡對語音特征信號進行分類的過程中,會出現BP神經網絡易陷入局部最優解、學習收斂速度慢的問題;針對此問題提出一種基于SFLA優化BP神經網絡權值和閥值的方法,引入SFLA算法優化網絡權值和閥值,利用SFLA優化后的BP網絡模型進行語音特征信號分類;仿真結果表明,經SFLA優化后的BP神經網絡與未優化的神經網絡相比,不僅訓練速度快, 而且誤差小,語音特征信號分類的正確率平均提高1.31%。

BP神經網絡;SFLA;優化;分類

0 引言

BP神經網絡在工程領域有著廣泛的應用,BP神經網絡也存在自身的缺點,在訓練網絡時學習收斂速度慢。同時,易陷入局部的最優解而非全局最優解。為了改進BP神經網絡的缺點,提出了許多優化BP網絡的方法,利用遺傳算法優化[1]、基于粒子群算法優化[2]、利用螢火蟲算法優化[3]、克隆選擇粒子群優化[4]?;旌贤芴惴?SFLA)廣泛應用在優化問題的求解,SFLA算法結合了元算法和粒子群優化算法的優點[5],SFLA具有參數少,運算速度快、尋優能力強的特點,對BP神經網絡的各層之間的初始權值與閥值,采用SFLA算法進行優化。利用得到的最優值去訓練網絡,應用于語音特征信號分類。

1 混合蛙跳算法

1.1 算法簡介

SFLA是以群體協同合作搜索的模因算法為基礎,通過啟發式算法搜尋全局最優解?;谀R蛑g或內部可進行經驗、知識和信息的共享和交流[6]。在SFLA中,種群由許多蛙構成,每只蛙表示待解決問題的解向量。種群被劃分成多個子群,由一定數量的蛙組成一個子群,稱為一個模因(memeplex)。蛙群由不同的模因構成,每個模因中的蛙都有自己的信息,同時受到同一模因中蛙的影響,彼此之間進行信息交流。通過Memetic算法來進化發展。經過一定次數的交流和跳躍后,不同的交流信息在所有模因組中進行傳播。然后根據給定的優化條件,繼續進行局部迭代搜索和跳躍,直到達到迭代次數或滿足優化目標。

SFLA的流程如圖1所示。首先,隨機生產初始蛙群,對于一個S維解的優化問題,每個蛙表示為Xi=(xi1,xi2,…xiS),根據自由度對蛙群進行降序排序,然后,整個蛙群劃分為m個模因組,每個模因組分配n只蛙。例如m=3,則分配原則為:第1只蛙劃分到模因組1,第2只蛙劃分到模因組2,第3只蛙劃分到模因組3,第4只蛙劃分到模因組1,第m只蛙劃分到模因組m,第m+1只蛙劃分到模因組1,以此類推[7-8]。在模因組中進行設定次數的局部搜索,在每一個模因組中具有最好適應度的蛙和最差適應度的蛙分別記為Xb和Xω,具有全局最優適應度的蛙記為Xg。在每一輪的循環中,對具有最差適應度的蛙進行演化運算,對其位置按式(1)和式(2)進行更新。

(Di)=rand()·(Xb-Xw)

(1)

(2)

其中為[0,1]的隨機數,為蛙的目前所處的位置,為更新后的位置,為更新的最大步長,在此演化過程中,用得到的更好的蛙去替代最差的蛙,否則,若更新后沒有得到更好的蛙,則隨機產生一只蛙替代Xω,在模因組中重新進行迭代,達到局部搜索迭代次數為止。接著對全部模因組中的蛙重新混雜,并按適應度進行排序。更新種群最蛙的位置,然后重新劃分蛙群,進行局部深度搜索,次數達到全局循環次數或滿足終止的優化目標[9]。

圖1 SFLA算法流程

1.2 算法實現

SFLA算法搜尋最優解通過啟發式算法,實現SFLA算法首先初始化蛙群的各個參數。蛙群模因組個數為m,每個模因組中蛙的個數為n,種群中蛙的個數F=m*n;每只蛙包含解空間維數為S。全局迭代最大次數LoopMax,局部迭代最大次數(每個模因組的最大迭代次數)Nmax,初始種群范圍上下限分別為Pmax、Pmin。模因組內青蛙位置的最大變化步長為Smax,適應度fitness的計算由自定義的fun函數決定。全局最優蛙為Frog_GlobalBest,局部最優蛙為Frog_LocalBest,局部最差蛙為Frog_localWorse,SFLA算法MATLAB實現的偽代碼如下:

Initialize:m,n,F,S,LoopMax,……

For LoopNum=1:LoopMax

Compute fitness

For im=1:m

For i=1:Nmax

Determine the Frog_LocalBest and Frog_localWorse

Improve the Frog_localWorse using equations (1) or (2)

End

End

Shuffle the evolved memeplexes

Sort(fitness)

Save the Frog_GlobalBest

Check if termination=true

End

2 BP神經網絡

BP神經網絡是一種多層前饋網絡,BP神經網絡結構如圖2所示,由輸入層、隱含層、輸出層組成。網絡的節點數包含了i個輸入節點,j個隱含節點和k個輸出節點,所有的輸入節點通過權值ωji和隱含節點相連,隱含節點通過權值ωkj相連。通過有監督的訓練,參數的調整在BP網絡中分為兩個階段,第一階段,在BP網絡中通過輸出層得到輸入層的預測值,通過預測值和實際值的比較,調整各層之間的連接權值和參數,得到新的參數值。同時,進行不斷的更新學習,若滿足設定的訓練目標,則停止網絡的參數調整[10]。

圖2 BP網絡結構

BP神經網絡訓練的具體步驟如下:

步驟1:BP網絡初始化,確定BP神經網絡層次結構,輸入層節點個數n,隱含層節點個數p,輸出層節點個數q。初始化網絡輸入層和隱含層、隱含層和輸出層神經元之間的連接權值ωij和ωjk,隱含層和輸出層的閥值分別為h和s。同時,確定神經元的激勵函數和學習速率。

步驟2:計算隱含層輸出,隱含層輸出Hj。

其中,p為隱含層節點個數,f為隱含層的激勵函數,x為輸入向量。

步驟4:計算預測誤差。ek=TK-Okk=1,2,…,qTK為期望輸出向量。

ωjk=ωjk+ηHjek

sk=sk+ekk=1,2,…q

步驟7:訓練次數和設定的次數進行比較,若沒有達到。返回步驟2。若達到,則BP神經網絡訓練結束。

3 實驗仿真

3.1 數據處理

語音特征信號分類過程為:對獲取到語音信號進行預處理后,采用合適的算法把語音特征信號從中提取出來。該語音特征信號可看成語音的一個模式,再通過對已有參考模式的比對。獲得最佳匹配的參考模式,從而得到該語音的分類結果。本實驗選用了古箏、民歌、搖滾和流行四類不同音樂,每段音樂采用倒譜系數法提取500組24維語音特征信號[11],部分語音特征數據如表1所示。

表1 部分語音特征數據

在訓練BP神經網絡之前,為了減少數據對網絡預測誤差的影響,將各維的數據進行數據歸一化處理,將各維數據轉換到在[0,1]的數。歸一化樣本數據計算由式(3)確定,Xn為歸一化后的數據,xmin為語音類別序列最小值,xmax為語音類別序列最大值。

(3)

3.2 算法流程

實驗流程如圖3所示,首先確定網絡結構、網絡輸入參數和各層的節點數,然后初始化網絡的各層之間的連接權值和閥值。通過SFLA進行優化,獲得優化后網絡進行預測。

圖3 SFLA優化BP網絡流程圖

網絡的預測精度與網絡隱含層節點數的選取有關,節點數過大,訓練時間久,易出現過擬合;節點數過小,訓練時間短,但網絡訓練過早結束,精度較低。最佳網絡隱含層節點數k由式(4)確定。其中,m為網絡輸入層節點數,n為網絡輸出層節點數,l為0~10的常數。取最佳網絡隱含層節點數k=9。

(4)

使用24-9-4的BP神經網絡結構,24個輸入層節點,9個隱含層節點,4個輸出層節點。網絡訓練次數為20,網絡訓練誤差值為0.000 1,網絡學習速率為0.1。共有2 000組樣本語音數據,前1 500組數據為訓練數據,后500組為測試數據。蛙群的適應度F由如式(5)確定。

(5)

其中,q為BP網絡輸出層的輸出節點,yi為第i個測試數據,oi為BP網絡的第i個預測數據。適應度F越高,得到的BP網絡參數越優。

3.3 實驗結果與分析

實驗硬件環境:CPU Intel(R) Core(TM)i5-6500 3.20 GHz,內存:16 GB,軟件環境:Win7 x64操作系統,算法實現軟件采用MATLAB R2012b。SFLA算法的初始參數:m=5,n=5,LoopMax=5,Nmax=10,Smax=0.01。通過對算法的編程和MATLAB的仿真計算,得到了實驗的仿真結果。BP神經網絡訓練的均方誤差如圖4所示,SFLA優化后的BP神經網絡均方誤差如圖5所示。未優化的網絡在第14次訓練時均方誤差達到最小值0.0494 78。優化后的網絡在第12次訓練時均方誤差達到最小值0.0334 84,誤差比未優化的網絡優。通過實驗的數據分析與對比,SFLA-BP在訓練次數和均方誤差,都比未優化的BP神經網絡更優。

圖4 BP神經網絡訓練均方誤差

為了測試優化后網絡的穩定性,對樣本數據進行混雜處理,進行100次的優化循環測試。最終的分類誤差如圖6所示,語音類別分類正確率如表2所示。第一類語音的分類正確率提高0.99%,第二類幾乎相同,第三類正確率提高2.35%,第四類正確率提高1.94%,語音特征信號分類的正確率平均提高1.31%。實驗驗結果表明,優化后的BP神經網絡在語音特征信號分類中取得了更好的分類效果。

圖5 SFLA-BP神經網絡訓練均方誤差

圖6 分類誤差

語音類別1234正確率(BP)08284099990937509601正確率(SFLA-BP)08383099960961009795

4 結語

使用BP神經網絡對語音特征信號進行分類,選取4類不同音樂類別數據,建立了24-9-4的BP神經網絡結構,以24維的特征數據為輸入,以4類類別為輸出的BP神經網絡分類模型,利用全局尋優能力強的SFLA算法對網絡的權值和閥值進行優化。優化后的BP神經網絡預測誤差小、分類結果優,具有良好的穩定性。

[1] 王志斌,等.遺傳算法優化BP神經網絡的大功率LED結溫預測[J].光電子·激光,2014,25(7):1303-1309.

[2] 李祚泳,等.PSO 算法優化BP 網絡的新方法及仿真實驗[J].電子學報,2008,36(11):2224-2228.

[3] 王改革,等.基于螢火蟲算法優化BP神經網絡的目標威脅估計[J].吉林大學學報(工學版),2013,43(4):1064-1069.

[4] 李 翔,等.克隆選擇粒子群優化BP神經網絡電力需求預測[J].湖南大學學報(自然科學版),2008,35(6):41-45.

[5] 龍 騰,等.基于改進蛙跳算法的WSN移動節點部署研究[J].計算機工程,2012,38(5):96-98.

[6] Eusuff M M,Lansey K E.,Optimization of water distribution network design using the shuffled frog-leaping algorithm[J].J.water Resour.Planing Mgmt, 2003,19:43-53.

[7] Afzalan E, Taghikhani M A,Sedighizadeh M.Optimal Placement and Sizing of DG in Radial Distribution Networks Using SFLA[J].International Journal of Energy Engineering ,2012,2:73-77.

[8]Eusuff M M,Lansey K,Pasha F.Shuffled frog-leaping agorithm:a memetic meta-heuristic for discrete optimization[J].Engineering Optimization,2006,38:129-154.

[9] 駱劍平,等.求解TSP的改進混合蛙跳算法[J].深圳大學學報(理工版),2010,2:173-179.

[10] Ennedy K,Eberhart J,R.Particle swarm optimization in Proceedings IEEE International Conference on Neural Networks [J].IEEE Service Center,Piscataway,NJ, 1995,1942-1948.

[11] MATLAB中文論壇.MATLAB神經網絡30個案例分析[M].北京:北京航空航天大學出版社,2010.

Classification of Speech Based on BP Neural Network Optimized by SFLA

Ye Hongwei,Dai Guangzhi

(1.School of Electronic and Information Engineering,Heyuan Polytechnic, Heyuan 517000, China 2.School of Computer engineering,Shenzhen Polytechnic, Shenzhen 518055, China)

A back-propagation (BP) neural network consists of an input layer,one or more hidden layers and an output layer.An input vector is presented to the network, it is propagated forward through the network, layer by layer, until it reaches the output layer. The output of the network is then compared to the desired output, using a loss function, The error values are then propagated backwards, starting from the output, until each neuron has an associated error value which roughly represents its contribution to the original output.The BP neural network easily falls into a local extreme values and the slow convergence,during the Classification of Speech using it.A new method is put forward to optimize weights and threshold of BP neural network using SFLA. The new model was used in the classification of four typical speech, results of which were analysed and compared with that BP neural network. BP neural network based on SFLA has both fast training speed and small number of errors, produced average increase of 1.31 % in the accuracy.

BP neural network; SFLA; optimization; Classification

2017-02-20;

2017-03-13。

國家自然科學基金(61671309)。

葉紅衛(1979-),男,廣東省河源市人,講師,碩士,主要從事智能算法、機器學習方向的研究。

戴光智(1974-),男,內蒙人,副教授,博士,主要從事計算機視覺方向的研究。

1671-4598(2017)05-0225-03

10.16526/j.cnki.11-4762/tp.2017.05.062

TP273

A

猜你喜歡
模因語音神經網絡
基于遞歸模糊神經網絡的風電平滑控制策略
神經網絡抑制無線通信干擾探究
模因視角下的2017年網絡流行語
魔力語音
基于MATLAB的語音信號處理
基于MQ3與MP3的價廉物美的酒駕語音提醒器
基于神經網絡的中小學生情感分析
對方正在輸入……
模因論研究綜述
基于Q-Learning算法和神經網絡的飛艇控制
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合