首页 分享 基于KH

基于KH

来源:萌宠菠菠乐园 时间:2024-09-19 16:14

鸟类作为环境生态系统不可或缺的指示生物之一,其种类的确定对生物多样性保护和生态平衡优化等起着十分重要的作用。鸟鸣声蕴含了丰富的鸟类生态学信息,其相关的研究成果可应用于鸟类行为分析与监护和生态环境状态监测等领域[1]。20世纪50年代开始国内外学者不断提出特征提取算法[2-3]和各个分类模型[4-5]来实现特定声音的识别和分类。各种语音信号处理方法也被应用于鸟类声音特征的提取和分类中[6],并不断有学者提出新的优化算法来提高分类准确率。早在1997年,McIlraith等[7]利用反向传播和多元统计数据分析6种原产于曼尼托巴的鸟类鸟鸣特点,并获得了82%~93%的泛化性能的正确识别率。Lucio等[8]用支持向量机(support vector machines, SVM)分类器对鸟类鸣声频谱图提取出的3种纹理特征进行分类识别,实现最佳识别率77.56%。魏静明等[9]在提取纹理特征的算法上增加和差统计法,验证了对鸟鸣声识别的有效性。程龙等[10]在Mel频率倒谱系数(Mel frequency cepstral coefficient, MFCC)算法对鸟鸣信号进行快速傅里叶变换之前,增加经验模态分解算法,改进后的MFCC算法算对7种鸟声的识别率达到70.09%。谢云澄[11]在基于图像识别的传统驱鸟设备中加入基于深度学习的声音检测模块,对包含3种鸟类和3种环境声音的6种声音进行识别,最后得到最高93.9%的识别准确率。

极限学习机(extreme learning machine, ELM)是一种自提出以来一直被很多学者,用来解决生活中的很多回归和分类问题的单隐层前向神经网络训练算法。Yang等[12]采用局部三元模式提取面部图像特征,并构建面部图像的性别识别极限分类系统,识别准确率达到87.13%。林伟铭等[13]将ELM应用于阿尔茨海默病的诊断,准确率达到87.62%。张婷慧等[14]使用粒子群算法(particle swarm optimization, PSO)优化混合核极限学习机(kernel extreme learning machine, KELM)参数,构建遥感影像信息分类模型,可达到92.67%的分类准确率。

鸟类对环境质量的变化很敏感,通过户外放置拾音器采集飞过的鸟类声音并识别其种类,分析鸟类种类的变化从而反馈环境质量的变化,并对变化做出相应措施,更好保护生态环境。为了验证KELM在鸟类声音识别方面的效果,本文在ELM理论的研究基础上,结合核函数理论和磷虾群算法(krill herd algorithm, KHA)对使用MFCC算法特征提取的上海常出现的30种鸟类鸟鸣信号进行识别和分类,最后与ELM、反向传播神经网络(back propagation, BP)、SVM、KELM分类模型进行对比研究,通过识别的准确率来确定其结果的可靠性。

1.   KELM原理

1.1   KELM

ELM是Huang等[15]提出的一种单隐层前向神经网络(single-hidden layer feed forward network, SLFN)的训练算法,它随机分配隐藏层并分析确定SLFN的输出权重。ELM训练指对输入数据先进行随机特征映射,再进行线性参数求解从而得出分类或预测结果。相比于传统的很多模型训练算法,ELM是一种具有竞争力的机器学习技术,ELM理论简单,实现速度快,有较强的泛化性能和鲁棒性,提出的框架可以使用多种特征映射函数或内核,而且所提出的方法可以直接应用于多分类任务。SLFN网络结构如图1所示。

图  1  SLFN网络结构

Figure  1.  Network structure of SLFN

对于N个不同的训练数据$left{ {{x_i},{t_i}} right}$,$i = 1,2, cdots , N$,${x_i}$是一个$1 times n$(n为输入数据的维度)输入向量,${t_i}$是一个$1 times m$($m$为类的数量)的条目等于1的输出向量。含有Ñ个隐藏节点且激活函数为$gleft( x right)$的数学模型可表示为:

$$begin{split} &displaystyle sum _{i=1}^{tilde{N}}{beta }_{i}{g}_{i}left({x}_{j}right)=displaystyle sum _{i=1}^{tilde{N}}{beta }_{i}gleft({omega }_{i}{x}_{j}+{b}_{i}right)=\ &{o}_{j} ,;j=1,2,cdots ,tilde{N} end{split} $$ (1)

式中:$ {beta _i} $为第i个隐藏节点的权值;$ ({omega _i},{b_i}) $是随机产生的隐藏节点参数。式(1)也可表达为:$ {boldsymbol{H}}beta = {boldsymbol{T}} $。其中:

$$ begin{split} {boldsymbol{H}}=;&{left[begin{array}{ccc}gleft({omega }_{1}{x}_{1}+{b}_{1}right)& cdots & gleft({omega }_{tilde{N}}{x}_{1}+{b}_{tilde{N}}right)\ vdots& vdots & vdots\ gleft({omega }_{1}{x}_{N}+{b}_{1}right)& cdots & gleft({omega }_{tilde{N}}{x}_{N}+{b}_{tilde{N}}right)end{array}right]}_{Ntimes tilde{N}},\ beta =;&{left[begin{array}{c}{beta }_{1}^{{rm{T}}}\ vdots\ {beta }_{tilde{N}}^{{rm{T}}}end{array}right]}_{tilde{N}times m} ,;{boldsymbol{T}}={left[begin{array}{c}{t}_{1}^{{rm{T}}}\ vdots\ {t}_{N}^{{rm{T}}}end{array}right]}_{Ntimes m}\[-25pt] end{split} $$ (2)

式中:H为隐藏层输出矩阵;$gleft( {{omega _i},{b_i},{x_i}} right)$是激活函数,通常用Sigmoid函数;T是训练数据的目标矩阵。

ELM明显不同于传统的前馈神经网络的是,训练过程中唯一需要优化的参数是隐藏节点和输出节点之间的输出权重$ beta $。在数学上,通过ELM训练SLFN可以转化为解决正则化最小二乘问题,不需要额外的迭代步骤来调整SLFN的参数,这比BP类算法更有效。

ELM通过最小化以下损失函数来确定输出权重:

$$ {min {boldsymbol{H}}beta - {{boldsymbol{T}}^2},;beta in {R^{tilde N times m}}} $$ (3)

推导可得式(3)的最优解为:

$$ {beta ^{text{*}}} = {{boldsymbol{H}}^{ - 1}}{boldsymbol{T}} $$ (4)

式中,$ {boldsymbol{H}}^{-1} $为$ boldsymbol{H} $的逆矩阵。

实际问题中,训练样本的数量N明显大于隐藏节点的数量Ñ,这种情况下,不存在H方阵,故也不存在H的逆矩阵。Huang等[16]提供了另一种寻找最小范数最小二乘解的方法:

$$ beta = {left( {{{boldsymbol{H}}^{rm{T}}}{boldsymbol{H}} + frac{1}{C}{boldsymbol{I}}} right)^{ - 1}}{{boldsymbol{H}}^{rm{T}}}{boldsymbol{T}} $$ (5)

式中:${{boldsymbol{H}}^{rm{T}}}$是H的转置;C是惩罚系数;I是$tilde N times tilde N$的单位矩阵。

由于ELM在训练前随机选择参数,难以保证其稳定性和持续性,此时可以定义1个核函数:

$$begin{split} {varOmega}_{{rm{ELM}}}=;&{boldsymbol{H}}{{boldsymbol{H}}}^{{rm{T}}}{text{:}}varOmega_{{rm{ELM}}i,j}=\ &hleft({x}_{i}right).hleft({x}_{j}right)=Kleft({x}_{i},{x}_{j}right) end{split} $$ (6)

式中:$Kleft( {{x_i},{x_j}} right)$为核函数;$h( cdot )$为隐藏层神经元输出函数。

KELM的分类模型的输出可表达为:

$$begin{split} fleft( x right) =;& hleft( x right){{boldsymbol{H}}^{rm{T}}}{left( {frac{1}{C}{boldsymbol{I}} + {boldsymbol{H}}{{boldsymbol{H}}^{rm{T}}}} right)^{ - 1}}\ {boldsymbol{T}} =;& {left[ {begin{array}{*{20}{c}} {Kleft( {x,{x_1}} right)} \ vdots \ {Kleft( {x,{x_n}} right)} end{array}} right]^{rm{T}}}{left( {frac{1}{C}{boldsymbol{I}} + {{{varOmega }}_{ELM}}} right)^{ - 1}}{boldsymbol{T}} end{split} $$ (7)

KELM模型无需使用随机参数,即不需要知道隐藏层输出矩阵$ boldsymbol{H} $,可有效增加模型的鲁棒性和稳定性。

1.2   核函数选择

针对鸟类声音识别问题,核函数的选取很重要,对比多项式核函数、径向基(radial basis function, RBF)核函数、线性核函数和Sigmoid核函数,发现RBF核函数的ELM的分类模型对鸟类识别有更好表现。RBF核函数是一种学习能力强、所需确定的参数比较少的局部性核函数[17],其定义如下:

$$ begin{array}{*{20}{c}} {Kleft( {x,{x_i}} right) = exp left( { - gamma |x - {x_i}{|^2}} right),;gamma > 0} end{array} $$ (8)

式中:${x_i}$为核函数中心;$gamma $为函数宽度参数。

2.   磷虾群寻优算法

KHA是Gandomi等[18]提出的一种优化算法,以磷虾群中每只磷虾觅食过程中的活动和状态的更新创建KHA的寻优过程。KHA中,磷虾个体i的第k次移动速度${M_i}^{left( k right)}$由诱导运动${N_i}^{left( k right)}$、觅食运动${F_i}^{left( k right)}$以及随机扩散${R_i}^{left( k right)}$组成,可以表示为:

$$ begin{array}{*{20}{c}} {{M_i}^{left( k right)} = {N_i}^{left( k right)} + {F_i}^{left( k right)} + {R_i}^{left( k right)}} end{array} $$ (9)

(1) 磷虾个体$ i $的诱导运动${N_i}^{left( k right)}$定义为:

$$ begin{array}{*{20}{c}} {{N_i}left( k right) = {N^{{rm{max}}}}{a_i}^{left( k right)} + {omega _{rm{r}}}{N_i}^{left( {k - 1} right)}} end{array} $$ (10)

式中:${N^{{rm{max}}}}$为最大诱导速度;${omega _{rm{r}}} in left[ {0,1} right]$为诱导运动的惯性权重;${N_i}^{left( {k - 1} right)}$为前一次诱导运动;${a_i}^{left( k right)}$为诱导运动源;${a}_i^{left( k right)} = a_i^{{left( k right)}}{}_{{rm{local}}} + a_i^{{left( k right)}}{}_{{rm{target}}}$,$a_i^{{left( k right)}}{}_{{rm{local}}}$为相邻磷虾之间产生的方向引导;$a_i^{{left( k right)}}{}_{{rm{target}}}$为最优磷虾产生的方向引导。

(2) 磷虾个体$ i $的觅食运动${F_i}^{left( k right)}$定义为:

$$ begin{array}{*{20}{c}} {{F_i}^{left( k right)} = {v_{rm{f}}}beta _i^{left( k right)} + {omega _{rm{f}}}F_i^{left( {k - 1} right)}} end{array} $$ (11)

式中:${v_{rm{f}}}$为觅食速度;${omega _{rm{f}}} in [0,1]$为觅食运动的惯性权重;${F_i}^{left( {k - 1} right)}$为前一次觅食运动;${beta _i}^{left( k right)}$为觅食运动源;$beta _i^{left( k right)} = beta _i^{{left( k right)}}{}_{{rm{food}}} + beta _i^{{left( k right)}}{}_{{rm{best}}}$,$beta _i^{{left( k right)}}{}_{{rm{food}}}$为食物对磷虾$ i $的吸引力;$beta _i^{{left( k right)}}{}_{{rm{best}}}$为从迭代开始到当前时刻的最优适应度对磷虾$ i $的吸引力。

(3) 磷虾个体$ i $的随机扩散过程:

$$ {{R_i}^{left( k right)} = {R^{{rm{max}}}}left( {1 - frac{I}{{{{boldsymbol{I}}_{{rm{max}}}}}}} right){delta _i}^{left( k right)}} $$ (12)

式中:${R^{max }}$为最大扩散速度;${delta _i}^{left( k right)}$为随机方向向量,是区间$ [-mathrm{1,1}] $的随机数;${{boldsymbol{I}}_{max }}$为最大迭代次数。

(4) 磷虾i从t时刻经$Delta t$时间后的状态更新:

$$ begin{array}{*{20}{c}} {{X_i}left( {t + Delta t} right) = {X_i}left( t right) + Delta t{M_i}} end{array} $$ (13)

式中:$Delta t$为速度矢量比例因子;${M_i}$为磷虾i的移动速度。

磷虾在附近磷虾和食物位置影响下不断更新位置,直到移动到最优位置或者达到算法中设置的最大迭代次数后寻优停止。将KHA优化后得到的食物位置对应的最优值设置为KELM分类器的参数,达到分类模型最优的识别效果。

3.   实验仿真

3.1   鸟鸣信号预处理

由于气候差异,不同地区有各自的生物群落,鸟的种类也有差异,由于鸟鸣采集在上海进行,故选择上海具有代表性的30种鸟类作为研究对象,30种鸟的鸟鸣声音音频来自实地录制的部分鸟类音频和鸟类鸣声数据网xeno-canto上下载的鸟鸣音频,使用GoldWave音频处理软件初步筛选各个鸟鸣样本,并对噪声杂音大、鸟鸣音频音量小、多鸟鸣杂音干扰大的样本进行预处理,构建鸣声特征明显的有效鸟鸣信号样本音频数据库。预处理后的样本,再裁剪无声区较长的音频样本,只保留有效鸣声信号区域,以便提取MFCC特征。四声杜鹃的一段鸣声信号处理前后样本状态,如图2所示。

图  2  一段四声杜鹃鸣声信号样本

Figure  2.  Birdsong signal sample of a cuculus micropteru

3.2   鸟鸣信号特征提取

使用MFCC特征提取函数提取信号的特征参数,输入需要分析的语音信号的音频帧和采样频率,选择输出12、24或36阶MFCC参数。如图3所示,将鸟鸣信号进行预加重和分帧,再进行快速傅里叶变换(fast fourier transform, FFT)得到信号的幅度谱,然后将变换得到的谱信号通过一组Mel滤波器组,之后将Mel滤波器输出的能量取对数得到对数能量谱,最后将对数能量谱进行离散余弦变换(discrete cosine transformation, DCT),得到MFCC参数:

图  3  MFCC特征提取过程

Figure  3.  Feature extraction process of MFCC

$$ begin{split} &{rm{MFCC}}left( {i,n} right) = \ &mathop sum limits_{m = 0}^{M - 1} log left[ {Sleft( {i,m} right)} right]{text{cos}}left[ {frac{{pi nleft( {2m - 1} right)}}{{2M}}} right] end{split} $$ (14)

式中:i为第i帧;n为离散余弦变换后的谱线;M为Mel滤波器组中滤波器的数量;$S(i,m)$为通过Mel滤波器后的对数能量,m为第几个滤波器。

建立30种鸟类鸣声样本集,使用MFCC算法提取各类鸟类声音信号的特征参数,图4为本文采集的30种鸟类声音信号集某个样本中一帧的MFCC特征参数。提取30类鸟鸣信号的12维静态MFCC参数,再提取30类鸟鸣信号包含12维静态和其一阶差分后得到的12维动态的24阶MFCC参数,对比2次提取到的参数可知,12维静态MFCC参数差异比较明显,12维动态MFCC参数差异很小,特征很难分辨。故选取12维静态MFCC参数表示30类鸟类声音信号的特征参数。

图  4  30种鸟鸣信号的MFCC特征参数

Figure  4.  MFCC characteristic parameters of 30 birdsong signals

3.3   鸟鸣分类识别

鸟类鸣声分类识别流程如图5所示,将各类鸟鸣样本提取的特征参数作为每类鸟鸣样本特征数据集,特征数据集随机选取70%样本数据构成训练样本数据集,剩余30%数据构成测试样本数据集。核函数ELM模型对训练样本数据集进行训练,运用KHA有限次迭代寻找最佳适应度优化核函数ELM的参数$ C $和$ gamma $,并将最优参数更新到模型中,对测试数据样本进行分类。

图  5  鸟鸣信号分类识别流程

Figure  5.  Birdsong signals recognition process

选取的上海周边30种鸟类名称、各种鸟类的语音段、特征提取后的训练数据和测试数据如表1所示。

表  1  鸟类样本数据集

Table  1.  Bird sample datasets

鸟类名称语音段数训练集测试集白鹡鸰113252108白鹭40314134白头鹎96269115翠鸟94599256噪鹊104554274四声杜鹃54235100灰椋鸟33321138家燕120379163喜鹊130580249珠颈斑鸠83255109大白鹭5214060豆雁361183507雀鹰62332142北红尾鸲60697299柳莺661984850黄脚银鸥44535230白头鹤301338574灰喜鹊38710305白腰杓鹬5310243乌鸫65991425棕头鸦雀54307158北蝗莺74505216树鹨1041 918822震旦鸦雀44633271红喉潜鸟331678719北灰鹟58708303白腰雨燕2519282凤头麦鸡81633271大杜鹃1062310990戴胜89794340

基于鸟鸣信号识别与分类实验,对比10种鸟类的测试数据集识别分类中Polynomial核函数、RBF核函数、Linear核函数和Sigmoid核函数的分类准确率,如图6所示,RBF核函数的识别准确率最高。

图  6  鸟鸣信号ELM分类器不同核函数比较

Figure  6.  Comparison of different kernel functions of ELM classifiers for Birdsong signals

对KH-KELM分类模型使用训练样本数据集进行模型训练,使用测试样本数据集验证模型的分类效果。其中,磷虾群优化算法的迭代次数设置为迭代100次,磷虾种群数量设置为30个,参数$ C $和$ gamma $搜索区间为$ left[mathrm{1,100}right] $。由于ELM模型的参数具有随机性,所以ELM相关分类模型分类准确率取20次实验的准确率平均值。为验证KH-KELM分类模型分类性能,将其与ELM、BP、SVM、KELM分类模型比较,并与用遗传算法(genetic algorithm, GA)、PSO、蚁群算法(ant colony optimization, ACO)分别优化KELM的分类模型比较,分析分类效果。

表2为ELM、BP、SVM、KELM和KH-KELM分别对鸟类进行分类识别测试的准确率结果。由表2可知,KH-KELM对5、10、20和30种鸟类分类测试的准确率分别达到99.65%,97.79%,94.48%和89.21%,20次的实验结果范围为±0.5%;分类准确率比ELM、BP、SVM和KELM分类模型的分类准确率都高,从分类5类扩展到分类30类鸟,分类效果稳定且分类性能较好。

表  2  KH-KELM和其他分类模型识别准确率比较

Table  2.  Comparison of recognition accuracy between KH-KELM and other classification models

分类模型5类识别准
确率/%10类识别准
确率/%20类识别准
确率/%30类识别准
确率/%ELM93.1587.0370.3158.24BP95.2491.2188.6379.82SVM99.7094.1590.6386.72KELM98.9393.1788.0282.45KH-KELM99.6597.7994.4889.21

表3为GA、PSO、ACO和KH分别优化KELM模型对鸟鸣信号识别的准确率结果。由表3可知,从分类5类扩展到分类30类鸟,KH优化的KELM分类模型的识别准确率最高。

表  3  KH-KELM和其他优化算法识别准确率比较

Table  3.  Comparison of recognition accuracy between KH-KELM and other optimization algorithms

优化算法5类识别
准确率/%10类识别
准确率/%20类识别
准确率/%30类识别
准确率/%GA-KELM98.9794.4588.6779.39PSO-KELM99.5497.0393.0286.93ACO-KELM96.9589.3279.3161.54KH-KELM99.6597.7994.4889.21

4.   结 语

本文在KELM的基础上提出基于磷虾群优化的KELM模型对鸟类声音进行识别与分类。通过MFCC算法提取30种上海周边常栖息鸟类的声音信号的差异较明显的12阶特征参数作为待分类识别的鸟类特征参数,建立KH-KELM分类模型,即通过KHA迭代优化核函数极限学习机的惩罚系数和核函数宽度参数,提高模型泛化性能和分类准确率。分析实验结果可知:与ELM、BP、SVM和KELM分类模型相比,KH-KELM分类模型能够快速完成学习任务,且分类效果最好,准确率最高;与基于GA、PSO、ACO优化KELM分类模型相比,KH-KELM分类模型的优化效果最好。从5类扩展到30类,KH-KELM模型具有较明显的优越性和稳定性,其分类效果能满足对鸟类声音识别分类的预期效果。在今后的研究中,会对鸟类声音的特征因素更多的研究和提取,并继续优化分类模型的识别效果和算法的稳定性,使得更好的应用于大自然生物多样性监测。

相关知识

基于KH
基于PHP的猫咪宠物网
宠物虾走红 一只售价一万多
基于android的宠物app
海水水族箱日常维护
基于java的宠物交流网站/基于ssm的宠物论坛系统
基于springboot的宠物论坛系统
基于java+springboot+vue的宠物咖啡馆平台
基于ssm+vue基于Vue技术的流浪动物管理系统的设计与实现【开题+程序+论文】
基于Python的猫狗宠物展示系统

网址: 基于KH https://www.mcbbbk.com/newsview189484.html

所属分类:萌宠日常
上一篇: 如何通过鸟鸣声辨别鸟类?
下一篇: 生态智能感知,闻声辨鸟—WD

推荐分享