一种基于遗传算法优化BP神经网络的水声目标识别方法与流程

专利2022-06-29  65


本发明涉及水声领域,尤其是一种水声目标识别方法。



背景技术:

在海洋中,主要靠声波来传递和获取各种信息。在水声目标处理中,水声目标的识别分类一直是重要的研究方向之一。

水声目标识别技术主要包括特征提取方法和分类器的设计。特征提取的任务是选取表征目标身份的有效且稳定可靠的特征。实际的水下目标信号不仅发声机理复杂,而且成分多样。水声目标的特征分析方法经历了单纯从时域、频域分析发展到从时间-频率联合域分析,从二阶距到高阶统计量分析。对水声目标提取的特征不再局限于某一特定类的特征而是考虑到各种类型的特征。多种特征分析方法和多种类型特征量联合运用将更加全面、准确的反映水声目标的性质;希尔伯特一黄变换(hilbert-huangtransform,简称hht),是1998年由nordene.huang等人提出的一种新的信号分析方法,它是非平稳信号处理方法的一大突破,它不受傅里叶分析的局限,能够更加精确的表达出具有物理意义的时频图,是一种更具适应性的时频局部化分析方法;基于听觉模型和听觉特征的水下目标识别是近年来比较关注的一个方向。声纳员在经过训练后能够较准确的判断水下噪声源的种类,说明人耳能够提取这些噪声源辐射信号中的关键特征。在声音辨识(speechrecognition)方面,最常用到的声音特征就是梅尔倒谱系数(mel-frequencycepstrumcoefficients,mfcc),此参数考虑到人耳对不同频率的感受程度,特别适合用在声音辨识领域。

分类器设计的任务是对训练和识别的特征模式做准确的类别划分。高斯混合模型(gaussianmixturemodel,gmm)在说话人识别中取得了很好的识别率;支持向量机(supportvectormachine,svm)具有结构风险最小化(适用于中小型样本)以及全局最优的特点,已成为水下声目标识别中的主要分类器设计方法;bp神经网络(backpropagationneuralnetwork)无论在网络理论还是在性能方面已比较成熟。其突出优点就是具有它具有大规模并行处理、分布式信息存储、非线性动力学和网络全局作用等特性,具有很强的自适应和学习能力、运行的鲁棒性和容错能力。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。在水声目标识别领域,目标信号十分不稳定。这主要是由于水下环境和水声信号的复杂性造成的,另外很难掌握水声信号的先验数学知识,也很难对其进行准确的描述。水声目标的分类是一个非线性问题,非常复杂。而利用神经网络可以很好地解决以上这些问题,也正是因为神经网络的自身特点使其在水声目标识别领域得到了广泛的应用。

但是bp神经网络在实际的应用中其网络拓扑结构的选取和初始权重的确定缺乏理论依据,且其训练主要依靠bp算法,存在收敛速度慢、容易陷入局部极值及“过学习”的问题。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于遗传算法优化bp神经网络的水声目标识别方法。本发明在matlab环境下提取水声信号的mfcc水声特征,水声特征作为bp神经网络分类器的样本;然后随机初始化遗传算法的种群,种群中的个体包含需要优化的bp神经网络的权值和阈值,权值和阈值作为遗传算法的目标优化函数,目标优化函数代入bp神经网络获得仿真误差,优化种群中每个个体的仿真误差,获得bp神经网络的最佳初始权重和阈值;最后利用遗传算法优化后的bp神经网络对水声特征进行训练和识别,获得分类算法的正确率。

本发明解决其技术问题所采用的技术方案的步骤如下:

步骤1:读取已知标签为1、2、3的三种水声目标样本,分别提取3种水声目标样本的12维水声信号的mfcc系数,获得mfcc系数矩阵,在mfcc系数矩阵前加1维类别向量获得新的矩阵,新的矩阵中第1维为标签,第2维到13维为系数矩阵,存入mat文件中;

步骤2:提取3种水声目标的mat文件,将3个文件中的矩阵合成一个数据集矩阵,数据集矩阵中第1维为标签,第2维到第13维为mfcc系数矩阵,数据集矩阵中的第2维到第13维作为输入p,根据数据集矩阵第1维标签设定水声目标的期望输出t;标签为1时,期望输出向量t为:

标签为2时,期望输出向量t为:

标签为3时,期望输出向量t为:

步骤3:确定bp神经网络的拓扑结构;由输入p和期望输出t确定bp神经网络输入层为12,输出层为3,隐含层设置为18,所以bp神经网络的拓扑结构为12-18-3;

步骤4:在用bp神经网络进行训练和测试前,使用遗传算法对神经网络输入层到隐含层的连接权值ωij、隐含层到输出层的连接权值ωjk、隐含层阈值a和输出层阈值b这4个参数进行优化;待优化变量个数为n:

n=ωij ωjk a b(4)

使用遗传算法获得最优权值和阈值的步骤如下:

(1)随机初始化种群;种群中有m个个体,m为正整数,每个个体的长度为待优化变量n;

(2)确定目标函数;将初始化的种群中的每一个个体带入bp神经网络训练、测试,获得每一个个体测试数据预测误差的范数error(i):

error(i)=||y(i)-t_text(i)||i=1,2,…,m(5)

其中,error(i)是第i个个体预测误差的范数,即第i个个体的目标函数,y(i)是第i个个体测试数据的仿真结果(实际输出),t_text(i)是第i个个体测试数据的期望输出,第i个个体和第i个个体的目标函数一一对应;

将m个error(i)i=1,2,...,m组成一个列向量error,error作为遗传算法的目标函数进行优化;目标函数越小,优化效果越好;

(3)计算种群适应度值:由目标函数构造种群适应度值,种群适应度值为目标函数的倒数;

(4)选择操作,在种群中以一定的概率选择适应度值高的个体组成子种群;一定的概率是指遗传算法中设定的代沟参数的取值,在0到1之间;代沟参数为0.95,选择适应度值高的个体的方法采用遗传算法选择操作中常用的轮盘赌法进行选择;

(5)交叉操作,随机选择子种群中的2个个体,2个个体间对应待优化变量进行交换,获得新的子种群;

(6)变异操作,随机选择子种群中的1个个体,再从该个体中随机选择一部分待优化变量,待优化变量的数量由遗传算法中设定的变异概率确定,变异概率的取值在0到1之间,对待优化变量进行随机突变,获得最终的子种群;

(7)将子种群中的每一个个体带入bp神经网络训练、测试,获得子种群中每一个个体测试数据预测误差的范数error(i)和子种群的目标函数error,i是小于m的正整数;

(8)将子种群重插入原始种群中原数据集对应位置,将子种群目标函数重插入原始目标函数,获得新种群和新目标函数,新种群和新种群目标函数一一对应,将新种群目标函数中的最小值作为第1代最优解,第1代最优解所对应的个体即为第1代最优权值和阈值;

(9)新种群重复步骤(3)到(7),获得第2代到第n代最优解;最优解随着遗传代数的增加逐渐减小,直到最优解不再减小时,此时的最优解收敛,收敛于一个最小的最优解,遗传算法结束;最小值对应的个体即为bp神经网络最佳的权值和阈值;

步骤5:新建bp神经网络,使用步骤4获得的最佳的权值和阈值训练、测试网络,获得测试数据的仿真结果y,y与t_text都是3维矩阵,列数与测试数据列数相同,将y与t_text逐列比较,若某列y=t_text,判断正确,否则判断错误;获得判断错误仿真结果的标签,即若判断错误仿真结果为:

则对应的标签为1;

若判断错误仿真结果为:

则对应的标签为2;

若判断错误仿真结果为:

则对应的标签为3;

对每个标签下判断错误仿真结果进行统计,获得分类算法的识别正确率rightridio:

其中,j为标签,rightridio(j)为标签为j的水声目标的识别正确率,sum为标签为j的测试数据的仿真结果的总数,f为标签j下判断错误的测试数据的仿真结果的总数。

本发明的有益效果在于使用遗传算法优化后的bp神经网络对水声目标的特征进行识别分类,与直接使用bp神经网络相比,用遗传算法优化后的bp神经网络训练和预测水声目标可获得更高的识别率,识别性能更稳定。

附图说明

图1是本发明水声目标识别系统流程示意图。

图2是本发明遗传算法优化bp神经网络算法流程图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

针对这些特点可以采用遗传算法对神经网络进行优化。遗传算法(geneticalgorithm,ga)是一种进化算法,是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息,最终生成符合优化信号的染色体。遗传算法全局搜索能力极强。本发明结合了两种智能算法的优点,一方面采用遗传算法进行全局搜索,一方面采用bp神经网络算法进行局部搜索,以获得问题的全局最优。

本发明用mfcc提取水声目标特征,提出了将bp神经网络和遗传算法相结合应用于水声目标识别的方法。该方法具有鲁棒性,识别率高,避免了bp神经网络陷入局部最优。

现结合实例、附图详细描述本发明的水声目标识别方法,水声目标识别系统流程如附图1所示。本实例在matlab环境中编程实现基于遗传算法优化bp神经网络的水声目标识别方法。遗传算法部分使用sheffield遗传算法工具箱。bp神经网络部分使用matlab自带的神经网络工具箱。

本发明解决其技术问题所采用的技术方案的步骤如下:

步骤1:读取已知标签为1、2、3的三种水声目标样本,分别提取3种水声目标样本的12维水声信号的mfcc系数,获得mfcc系数矩阵,在mfcc系数矩阵前加1维类别向量(标签)获得新的矩阵,新的矩阵中第1维为标签,di2到13维为系数矩阵,存入mat文件中;

步骤2:提取3种水声目标的mat文件,将3个文件中的矩阵合成一个数据集矩阵,数据集矩阵中第1维为标签,第2维到第13维为mfcc系数矩阵,数据集矩阵中的第2维到第13维作为输入p,根据数据集矩阵第1维标签设定水声目标的期望输出t;标签为1时,期望输出向量t为:

标签为2时,期望输出向量t为:

标签为3时,期望输出向量t为:

对于小规模数据集(数据集规模小于百万)数据的划分,传统的机器学习中有70%/30%的划分原则,即随机取数据集矩阵中的70%作为训练数据训练神经网络,30%作为测试数据测试训练后的神经网络的识别性能;本发明使用上述数据划分原则,训练测试的效果会比较好。当然也可以用其它的比例对数据进行划分。

步骤3:确定bp神经网络的拓扑结构;由输入p和期望输出t确定bp神经网络输入层为12,输出层为3,隐含层设置为18,所以bp神经网络的拓扑结构为12-18-3;

步骤4:在用bp神经网络进行训练和测试前,需要使用遗传算法对神经网络输入层到隐含层的连接权值ωij、隐含层到输出层的连接权值ωjk、隐含层阈值a和输出层阈值b这4个参数进行优化;待优化变量个数为n:

n=ωij ωjk a b(4)

使用遗传算法获得最优权值和阈值的步骤如下:

(1)随机初始化种群;种群中有m个个体,m为正整数,每个个体的长度为待优化变量n;

(2)确定目标函数;将初始化的种群中的每一个个体带入bp神经网络训练、测试,获得每一个个体测试数据预测误差的范数error(i):

error(i)=||y(i)-t-text(i)||i=1,2,…,m(5)

其中,error(i)是第i个个体预测误差的范数,即第i个个体的目标函数,y(i)是第i个个体测试数据的仿真结果(实际输出),t_text(i)是第i个个体测试数据的期望输出,第i个个体和第i个个体的目标函数一一对应;

将m个error(i)i=1,2,...,m组成一个列向量error,error作为遗传算法的目标函数进行优化;目标函数越小,优化效果越好;

(3)计算种群适应度值:种群中个体适应度值越大,个体越优。由目标函数构造种群适应度值,种群适应度值为目标函数的倒数;

(4)选择操作,在种群中以一定的概率选择适应度值高的个体组成子种群;一定的概率是指遗传算法中设定的代沟参数的取值,在0到1之间。代沟参数的设定可以调整,本实验设定代沟参数为0.95。选择适应度值高的个体的方法采用遗传算法选择操作中常用的轮盘赌法进行选择。

(5)交叉操作,随机选择子种群中的2个个体,2个个体间对应待优化变量进行交换,获得新的子种群;

(6)变异操作,随机选择子种群中的1个个体,再从该个体中随机选择一部分待优化变量,待优化变量的数量由遗传算法中设定的变异概率确定,变异概率的取值在0到1之间。变异概率的设定可以调整,本实验设定变异概率为0.01;对待优化变量进行随机突变,获得最终的子种群;

(7)将子种群中的每一个个体带入bp神经网络训练、测试,获得子种群中每一个个体测试数据预测误差的范数error(i)和子种群的目标函数error,此处的i是小于m的正整数;

(8)将子种群重插入原始种群中原数据集对应位置,将子种群目标函数重插入原始目标函数,获得新种群和新目标函数,新种群和新种群目标函数一一对应,将新种群目标函数中的最小值作为第1代最优解,第1代最优解所对应的个体即为第1代最优权值和阈值;

(9)新种群重复步骤(3)到(7),获得第2代到第n代(n为大于1的整数)最优解。最优解随着遗传代数的增加逐渐减小,直到最优解不再减小时,此时的最优解收敛,收敛于一个最小的最优解,遗传算法结束;最小值对应的个体即为bp神经网络最佳的权值和阈值;

步骤5:新建bp神经网络,使用步骤4获得的最佳的权值和阈值训练、测试网络,获得测试数据的仿真结果y,y与t_text都是3维矩阵,列数与测试数据列数相同,将y与t_text逐列比较,若某列y=t_text,判断正确,否则判断错误;获得判断错误仿真结果的标签,即若判断错误仿真结果为:

则对应的标签为1;

若判断错误仿真结果为:

则对应的标签为2;

若判断错误仿真结果为:

则对应的标签为3;

对每个标签下判断错误仿真结果进行统计,获得分类算法的识别正确率rightridio:

其中,j为标签,rightridio(j)为标签为j的水声目标的识别正确率,sum为标签为j的测试数据的仿真结果的总数,f为标签j下判断错误的测试数据的仿真结果的总数。

实施例如下:

步骤1:读取3组水声目标数据,每组15个音频文件,3组水声目标都用matlab中的voicebox工具箱的melcepst.m函数提取12维水声特征信号。3组水声特征信号分别用1,2,3标识,提取出的信号分别存储于data1.mat,data2.mat,data3.mat数据库文件中,每组数据为13维,第1维为类别标识,后12维为水声特征信号。

步骤2:提取上述3个文件,将文件中的数据合成一个数据矩阵,取数据的2到13维数据作为输入p,第1维数据作为输出t。要做3种水声目标的分类,将输出t从1维变成3维,使网络算法的输出t为以下三种可能情形之一:

随机取25651组数据作为训练数据,取8000组数据作为测试数据。将所有数据中的输入p用matlab中的mapminmax函数进行归一化处理。

步骤3:遗传算法优化bp神经网络算法流程图如附图2所示。确定神经网络的拓扑结构为12-18-3,即输入层有12个节点,隐含层有18个节点,输出层有3个节点。对网络的权值和阈值编码,获得初始种群。种群中有40个个体,每个个体包含需要优化的bp网络的权值和阈值n共291个。将解码后的40个个体分别带入bp神经网络对网络进行训练和测试获得error,error作为遗传算法的目标函数进行优化。error越小表示网络的预测精度越高,在遗传算法部分得到的该个体的适应度值也越大。用遗传算法对error进行优化,获得最佳神经网络权值和阈值。

步骤4:新建bp神经网络,使用优化后的权值和阈值训练、测试网络。测试中3种水声目标分类识别正确率都在90%以上,且比直接使用bp神经网络分类识别正确率高。同时发现,当bp网络训练次数较少时,用遗传算法优化后的网络识别率提高更加显著,有效地证明了本发明的有效性。


技术特征:

1.一种基于遗传算法优化bp神经网络的水声目标识别方法,其特征在于包括下述步骤:

步骤1:读取已知标签为1、2、3的三种水声目标样本,分别提取3种水声目标样本的12维水声信号的mfcc系数,获得mfcc系数矩阵,在mfcc系数矩阵前加1维类别向量获得新的矩阵,新的矩阵中第1维为标签,第2维到13维为系数矩阵,存入mat文件中;

步骤2:提取3种水声目标的mat文件,将3个文件中的矩阵合成一个数据集矩阵,数据集矩阵中第1维为标签,第2维到第13维为mfcc系数矩阵,数据集矩阵中的第2维到第13维作为输入p,根据数据集矩阵第1维标签设定水声目标的期望输出t;标签为1时,期望输出向量t为:

标签为2时,期望输出向量t为:

标签为3时,期望输出向量t为:

步骤3:确定bp神经网络的拓扑结构;由输入p和期望输出t确定bp神经网络输入层为12,输出层为3,隐含层设置为18,所以bp神经网络的拓扑结构为12-18-3;

步骤4:在用bp神经网络进行训练和测试前,使用遗传算法对神经网络输入层到隐含层的连接权值ωij、隐含层到输出层的连接权值ωjk、隐含层阈值a和输出层阈值b这4个参数进行优化;待优化变量个数为n:

n=ωij ωjk a b(4)

使用遗传算法获得最优权值和阈值的步骤如下:

(1)随机初始化种群;种群中有m个个体,m为正整数,每个个体的长度为待优化变量n;

(2)确定目标函数;将初始化的种群中的每一个个体带入bp神经网络训练、测试,获得每一个个体测试数据预测误差的范数error(i):

error(i)=||y(i)-t_text(i)||i=1,2,...,m(5)

其中,error(i)是第i个个体预测误差的范数,即第i个个体的目标函数,y(i)是第i个个体测试数据的仿真结果(实际输出),t_text(i)是第i个个体测试数据的期望输出,第i个个体和第i个个体的目标函数一一对应;

将m个error(i)i=1,2,...,m组成一个列向量error,error作为遗传算法的目标函数进行优化;目标函数越小,优化效果越好;

(3)计算种群适应度值:由目标函数构造种群适应度值,种群适应度值为目标函数的倒数;

(4)选择操作,在种群中以一定的概率选择适应度值高的个体组成子种群;一定的概率是指遗传算法中设定的代沟参数的取值,在0到1之间;代沟参数为0.95,选择适应度值高的个体的方法采用遗传算法选择操作中常用的轮盘赌法进行选择;

(5)交叉操作,随机选择子种群中的2个个体,2个个体间对应待优化变量进行交换,获得新的子种群;

(6)变异操作,随机选择子种群中的1个个体,再从该个体中随机选择一部分待优化变量,待优化变量的数量由遗传算法中设定的变异概率确定,变异概率的取值在0到1之间,对待优化变量进行随机突变,获得最终的子种群;

(7)将子种群中的每一个个体带入bp神经网络训练、测试,获得子种群中每一个个体测试数据预测误差的范数error(i)和子种群的目标函数error,i是小于m的正整数;

(8)将子种群重插入原始种群中原数据集对应位置,将子种群目标函数重插入原始目标函数,获得新种群和新目标函数,新种群和新种群目标函数一一对应,将新种群目标函数中的最小值作为第1代最优解,第1代最优解所对应的个体即为第1代最优权值和阈值;

(9)新种群重复步骤(3)到(7),获得第2代到第n代最优解;最优解随着遗传代数的增加逐渐减小,直到最优解不再减小时,此时的最优解收敛,收敛于一个最小的最优解,遗传算法结束;最小值对应的个体即为bp神经网络最佳的权值和阈值;

步骤5:新建bp神经网络,使用步骤4获得的最佳的权值和阈值训练、测试网络,获得测试数据的仿真结果y,y与t_text都是3维矩阵,列数与测试数据列数相同,将y与t_text逐列比较,若某列y=t_text,判断正确,否则判断错误;获得判断错误仿真结果的标签,即若判断错误仿真结果为:

则对应的标签为1;

若判断错误仿真结果为:

则对应的标签为2;

若判断错误仿真结果为:

则对应的标签为3;

对每个标签下判断错误仿真结果进行统计,获得分类算法的识别正确率rightridio:

其中,j为标签,rightridio(j)为标签为j的水声目标的识别正确率,sum为标签为j的测试数据的仿真结果的总数,f为标签j下判断错误的测试数据的仿真结果的总数。

技术总结
本发明提供了一种基于遗传算法优化BP神经网络的水声目标识别方法,提取水声信号的MFCC水声特征,水声特征作为BP神经网络分类器的样本;然后随机初始化遗传算法的种群,种群中的个体包含需要优化的BP神经网络的权值和阈值,权值和阈值作为遗传算法的目标优化函数,目标优化函数代入BP神经网络获得仿真误差,优化种群中每个个体的仿真误差,获得BP神经网络的最佳初始权重和阈值;最后利用遗传算法优化后的BP神经网络对水声特征进行训练和识别,获得分类算法的正确率。本发明使用遗传算法对水声目标的特征进行识别分类,用遗传算法优化后的BP神经网络训练和预测水声目标可获得更高的识别率,识别性能更稳定。

技术研发人员:曾向阳;杨爽;王海涛;乔彦
受保护的技术使用者:西北工业大学
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-18725.html

最新回复(0)