BP神经网络matlab应用实例

题:采用贝叶斯正则化算法提高BP网络的推广能力。用来训练BP网络,使其能够拟合某一附加有白噪声的正弦样本数据。

解:仿真结果如下:
(1)构建一个3层BP神经网络,输入层节点数为1个,隐含层节点数为3个,隐含层的激活函数为‘transig’,输出层节点数为1个,输出层的激活函数为‘logsig’。
(2)采用贝叶斯正则化算法‘trainbr’训练神经网络,目标误差goal=1*10^-3,
学习率lr=0.05,最大迭代次数epochs=500,拟合附加有白噪声的样本数据,拟合数据均方差为0.0054.
在这里插入图片描述
源程序:

clear all; 
close all;
clc;
%% 定义训练样本矢量%%
P = [-1:0.05:1]; %输入矢量
T = sin(2*pi*P)+0.1*randn(size(P));%目标矢量
figure %绘制
plot(P,T,'+');
 hold on
plot(P,sin(2*pi*P),':')
net = newff(minmax(P),[20,1],20);
net.trainFcn = 'trainbr' ; %训练方法是贝叶斯函数
net.trainParam.show = 50; %显示中间结果的周期
net.trainParam.lr = 0.05; %学习率0.05
net.trainParam.epochs = 500; %迭代次数500
net.trainParam.goal = 1e-3; %目标误差
[net,tr] = train(net,P,T);%训练BP网络
A = sim(net,P);%开始仿真
E = T-A; %误差
MSE=mse(E);,
plot(P,A,P,T,'+',P,sin(2*pi*P),':');
legend('样本点','标准正弦曲线','拟合正弦曲线')

最终结果
在这里插入图片描述

  • 2
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值