基于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是以群体协同合作搜索的模因算法为基础,通过启发式算法搜寻全局最优解。基于模因之间或内部可进行经验、知识和信息的共享和交流[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算法和神经网络的飞艇控制