⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ebp4.m

📁 用“提前停止”方法提高BP网络推广能力 本例将用提前停止和训练函数TRAINGDX相结合来避免“过度拟合”产生的误差
💻 M
字号:
%BP网络实例4_用“提前停止”方法提高BP网络推广能力
%本例将用提前停止和训练函数TRAINGDX相结合来避免“过度拟合”产生的误差
close all
clear
clc
%使用的主要函数如下:
%NEWFF——生成一个新的前向神经网络
%TRAIN——对BP神经网络进行训练
%SIM——对BP神经网络进行仿真
disp('Press any key to start');
echo on
pause
clc
%定义输入矢量P
P=[-1:.05:1];
%定义目标矢量T
randn('seed',78341223);  %设置随机数生成器
T=sin(2*pi*P)+.1*randn(size(P));
%绘制样本数据点
plot(P,T,'+');
echo off
hold on
plot(P,sin(2*pi*P),':');   %绘制不含噪声的正弦曲线以作对比
echo on
clc
pause
clc
%定义验证样本
val.P=[-.975:.05:.975];    %验证样本的输入矢量
val.T=sin(2*pi*val.P)+.1*randn(size(val.P));   %验证样本的目标矢量
pause
clc
%创建一个新的前向神经网络
net=newff(minmax(P),[5 1],{'tansig','purelin'},'traingdx');
pause
clc
%设置训练参数
net.trainParam.epochs=500;
net=init(net);
pause
clc
%训练BP网络
[net,tr]=train(net,P,T,[],[],val);
pause
clc
%对BP网络进行仿真
A=sim(net,P);
%计算仿真误差
E=T-A;
MSE=mse(E)
pause
clc
%绘制仿真拟合的结果曲线
close all
plot(P,A,P,T,'+',P,sin(2*pi*P),':');
pause
clc
echo off

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -