PCA-改进RPROP方法的BP算法在音乐信号分类中的应用

2019-09-19 10:47
测控技术 2019年7期
关键词:识别率权值贡献率

(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种语音信号进行识别,通过试验结果对比发现,本算法确实可以达到加快网络收敛速度和提高泛化能力的目的。

1 改进的RPROP算法

1.1 变学习速率方法

Harris根据均方误差的梯度分量符号来估计与最小均方误差的距离,当检测到连续符号变化时,步长减小。当检测到的符号连续变化相同时,步长增加。该算法用均方误差梯度分量符号来估计与均方误差全局极小值间的距离,具体算法为

S(n+1)=S(n)×f(λ)

(1)

其中,

(2)

式中,λ为选择的常数;m0和m1为自己选择的正整数参数,实验证明m0=3,m1=3会取得良好的实验效果。

1.2 Resilient Backpropagation(RPROP)方法

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时,算法可以取得比较好的效果。

1.3 改进后的算法

综合上述几种算法的优点,提出一种新的算法,该算法的推导过程为

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。

2 PCA-改进BP神经网络算法

① 获取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)

3 实验结果及分析

为了验证算法的有效性,对音乐分类的问题进行实验。采用所提出的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的波动较小。

4 结束语

本文推导出一种PCA-改进RPROP方法的BP算法,通过对重金属音乐、山歌音乐、流行音乐、笛子音乐四种音乐进行识别实验,证明了算法的可行性,同时可以看出算法在收敛速度,平均识别率方面均高于标准算法及其部分改进算法。但在重金属音乐的最终识别率方面,改进算法要低于标准算法及其改进算法。

猜你喜欢
识别率权值贡献率
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
一种通用的装备体系贡献率评估框架
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
基于MATLAB的LTE智能天线广播波束仿真与权值优化
提升高速公路MTC二次抓拍车牌识别率方案研究
关于装备体系贡献率研究的几点思考
基于权值动量的RBM加速学习算法研究
高速公路机电日常维护中车牌识别率分析系统的应用