4.BP神经网络信号拟合(附matlab程序)

1.简述

 学习目标:利用BP神经网络对信号曲线进行拟合
关键词: 函数逼近  数据压缩   模式识别
考虑要素:网络层数  输入层的节点数  输出层的节点数  隐含层的节点数  传输函数  训练方法

       数据拟合是在假设模型结构已知的条件下最优确定模型中未知参数使预测值与数据吻合度最高,本文选取线性项加激活函数组成一个非线性模型,利用神经网络算法最优确定模型中的未知参数,利用随机搜索的方式确定函数模型,从而达到很好的拟合效果

       数据拟合问题普遍存在,拟合问题本质上是在假设模型结构已知的条件下最优确定模型中未知参数以使得模型预测与数据的吻合度最高,即数据拟合问题往往描述为一个参数优化问题。复杂工业过程对于模型精度的要求,线性模型往往不能满足。因此模型结构假设为非线性更为合理。

         首先从名称中可以看出,Bp神经网络可以分为两个部分,bp和神经网络。bp是 Back Propagation 的简写 ,意思是反向传播。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

         其主要的特点是:信号是正向传播的,而误差是反向传播的。

         举一个例子,某厂商生产一种产品,投放到市场之后得到了消费者的反馈,根据消费者的反馈,厂商对产品进一步升级,优化,一直循环往复,直到实现最终目的——生产出让消费者更满意的产品。产品投放就是“信号前向传播”,消费者的反馈就是“误差反向传播”。这就是BP神经网络的核心。

(1)对信号曲线进行拟合

4.BP神经网络信号拟合(附matlab程序)_第1张图片

 (2)对神经网络模型进行训练

 (3)画图

2.代码

%%  对信号曲线进行拟合
clear all;
clear all;
P=-1:0.04:1;
T=sin(2*pi*P)+0.1*randn(size(P));
net=newff(P,T,18,{},'trainbr');    %%   隐含层神经元个数是18
net.trainParam.show=10;
net.trainParam.epochs=100;         %%  训练100次
net=train(net,P,T);
Y=sim(net,P);
figure;
plot(P,T,'-',P,Y,'+');
legend('原始信号','网络输出信号');
set(gcf,'position',[20,20,500,400]);

3.运行结果

4.BP神经网络信号拟合(附matlab程序)_第2张图片

4.BP神经网络信号拟合(附matlab程序)_第3张图片

你可能感兴趣的:(神经网络,数学建模,人工智能,matlab)