因为最近项目要使用BP神经网络来做一些飞行预测,所以今天从图书馆借来了《Matlab神经网络30个案例分析》,这本书很不错推荐给大家,然后研究了下代码,使用语音分类这个例子做了源码实现与工具箱实现,源码实现过程中进行了小小的改变,工具箱用起来非常方便,但是手写一下BP神经网络的前向后向对于理解BP神经网络还是有极大帮助的,这里把这两种实现方式贴出来并带有结果截图。显然BP神经网络对于这种非线性拟合场合效果是非常好的。
(1) 源码实现
%% 清空环境变量
clc
clear
%% 训练数据预测数据提取及归一化
%下载四类语音信号
load data1 c1
load data2 c2
load data3 c3
load data4 c4
%四个特征信号矩阵合成一个矩阵
data(1:500,:) = c1(1:500,:);
data(501:1000,:) = c2(1:500,:);
data(1001:1500,:) = c3(1:500,:);
data(1501:2000,:) = c4(1:500,:);
%从1到2000产生随机数
k = rands(1,2000);
[m,n] = sort(k);
%%提取输入、输出数据
input= data(:,2:25);
output1= data(:,1);
%将输出数据由一维变为四维
for i = 1:1:2000
switch output1(i)
case 1
output(i,:) = [1 0 0 0];
case 2
output(i,:) = [0 1 0 0];
case 3
output(i,:) = [0 0 1 0];
case 4
output(i,:) = [0 0 0 1];
end
end
%随机提取1500个测试数据,500个样本为预测数据
input_train = input(n(1:1500),:)';
output_train = output(n(1:1500),:)';
input_test = input(n

本文介绍了如何在Matlab环境下使用BP神经网络进行飞行预测,详细探讨了源码实现与工具箱实现的过程。通过一个语音分类的案例,展示了源码实现中的调整以及工具箱使用的便捷性,强调手动编写BP神经网络对于理解其工作原理的重要性。实验结果显示,BP神经网络在非线性拟合任务中表现出色。

149

被折叠的 条评论
为什么被折叠?



