BP 神经网络的设计实例(MATLAB 编程)例 1 采纳动量梯度下降算法训练 BP 网络。训练样本定义如下:输入矢量为 p =[—1 -2 3 1 -1 1 5 —3]目标矢量为 t = [—1 —1 1 1]解:本例的 MATLAB 程序如下: close all clear echo on clc % NEWFF—-生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 pause % 敲任意键开始 clc % 定义训练样本 % P 为输入矢量 P=[—1, —2, 3, 1; -1, 1, 5, -3];% T 为目标矢量 T=[-1, —1, 1, 1]; pause; clc % 创建一个新的前向神经网络 net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')% 当前输入层权值和阈值 inputWeights=net。IW{1,1} inputbias=net.b{1} % 当前网络层权值和阈值 layerWeights=net.LW{2,1} layerbias=net。b{2} pause clc % 设置训练参数 net。trainParam。show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0。9; net。trainParam.epochs = 1000; net。trainParam。goal = 1e—3; pause clc % 调用 TRAINGDM 算法训练 BP 网络 [net,tr]=train(net,P,T); pause clc % 对 BP 网络进行仿真 A = sim(net,P) % 计算仿真误差 E = T — A MSE=mse(E) pause clc echo off 例 2 采纳贝叶斯正则化算法提高 BP 网络的推广能力。在本例中,我们采纳两种训练方法,即 L—M 优化算法(trainlm)和贝叶斯正则化算法(trainbr),用以训练 BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采纳如下 MATLAB 语句生成: 输入矢量:P = [—1:0。05:1]; 目标矢量:randn(’seed’,78341223); T = sin(2*pi*P)+0.1*randn(size(P)); 解:本例的 MATLAB 程序如下: close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN-—对 BP 神经网络进行训练% SIM-—对 BP 神经网络进行仿真 pause % 敲任意键开始 clc % 定义训练样本矢量 % P 为输入矢量 P = [-1:0.05:1]; % T 为目标矢量 randn('seed',78341223); T = sin(2*pi*P)+0.1*randn(size(P)); % 绘制样本数据点 plot(P,T,’+’); echo off hold on; plot(P,sin(2*pi*P),’:’); % 绘制不...