BP神经网络matlab源程序代码讲解

BP神经网络matlab源程序代码讲解,第1张

newff 创建前向BP网络格式:

net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

其中:PR —— R维输入元素的R×2阶最大最小值矩阵; Si —— 第i层神经元的个数,共N1层; TFi——第i层的转移函数,默认‘tansig’; BTF—— BP网络的训练函数,默认‘trainlm’ BLF—— BP权值/偏差学习函数,默认’learngdm’ PF ——性能函数,默认‘mse’;(误差)

e.g.

P = [0 1 2 3 4 5 6 7 8 9 10]T = [0 1 2 3 4 3 2 1 2 3 4]

net = newff([0 10],[5 1],{'tansig' 'purelin'})net.trainparam.show=50 %每次循环50次net.trainParam.epochs = 500 %最大循环500次

net.trainparam.goal=0.01 %期望目标误差最小值

net = train(net,P,T) %对网络进行反复训练

Y = sim(net,P)Figure % 打开另外一个图形窗口

plot(P,T,P,Y,'o')

给个例子给你参考

%% 原始数据

P =[2056 2395 26002395 2600 22982600 2298 16342298 1634 1600...

1634 1600 18731600 1873 14781873 1478 19001478 1900 1500...

1900 1500 2046]

%% 目标数据

T = [2298 1634 1600 1873 1487 1900 1500 2046 1556]

%% 对原始数据和目标数据进行归一化处理

pmax = max(P)

pmax1 = max(pmax)

pmin = min(P)

pmin1 = min(pmin)

for i = 1 : 9

P1(i, :) = (P(i, :) - pmin1) / (pmax1 - pmin1)

T1(i) = (T(i) - pmin1) / (pmax1 - pmin1)

end

%% 建立BP网络

net = newff(P1', T1, [3 7], {'tansig' 'logsig'}, 'traingd')

%% 设置网络参数并进行训练

% for i = 1 : 9

net.trainParam.epochs = 15000

net.trainParam.goal = 0.00001

net.trainParam.lr = 0.1

net = train(net, P1(i,:)', T1(i))

% end

%% 将10-12月的数据输入网络进行预测来年一月的销售量(归一化后的数值)

y = sim(net, [1500 2046 1556]')

%% 反归一化求出来年一月份的销售量

y1 = y * (pmax1 - pmin1) + pmin1


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11301497.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存