【MATLAB第14期】#源码分享| 基于多层前馈神经网络的回归预测模型代码分享,多参数多图调整

【MATLAB第14期】#源码分享| 基于多层前馈神经网络的回归预测模型代码分享,多参数多图调整

一、前馈网络和BP网络的区别

1.前馈神经网络

一种单向多层的网络结构,信息从输入层开始,逐层向一个方向传递,一直到输出层结束。前馈是指输出入方向是前向,此过程不调整权值。神经元之间不存在跨层连接、同层连接,输入层用于数据的输入,隐含层与输出层神经元对数据进行加工。

2.反向传播算法

(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

3.BP神经网络:

也是前馈神经网络,只是它的参数权重值是由反向传播学习算法调整的。

4.总结:

前馈描述的是网络的结构,指的是网络的信息流是单向的,不会构成环路。它是和“递归网络”(RNN)相对的概念;BP算法是一类训练方法,可以应用于FFNN,也可以应用于RNN,而且BP也并不是唯一的训练方法,其他可用的还有比如遗传算法(GA)等。所以BP神经网络属于前馈网络,前馈网络不一定是BP网络(还可以用别的算法训练权值参数)

二、源码分享

close all;
clear all;
clc
load data.mat; % 载入数据
net = feedforwardnet([10,10]); % 创建网络,n为隐藏层神经元个数
net.divideFcn = 'dividerand'; % 随机分配
net.divideMode = 'sample'; %分割每个样本
net.divideParam.trainRatio = 70/100; % 训练集分配比例
net.divideParam.valRatio = 30/100; % 预测集分配比例
net.divideParam.testRatio = 0/100;  % 测试集分配比例
net.trainFcn = 'trainlm';  % LM
net.performFcn = 'mse';  % MSE
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', 'plotregression'};  % 画图
net.trainParam.show = 5;
net.trainParam.epochs = 10000;
net.trainParam.goal = 1e-7; % 训练目标
net.trainParam.max_fail = 25;  % 最大失败次数 25
inputs = inputs';
targets = targets';
% 训练网络
[net,tr] = train(net,inputs,targets)
% 测试网络
outputs = net(inputs);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)
% 获得训练、验证和测试的结果
trainTargets = targets .* tr.trainMask{1};
valTargets = targets .* tr.valMask{1};
testTargets = targets .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,outputs)
valPerformance = perform(net,valTargets,outputs)
testPerformance = perform(net,testTargets,outputs)
% 根据画图的结果,决定是否满意
figure, plotperform(tr)
figure, plottrainstate(tr)
figure, plotconfusion(targets,outputs)
figure, ploterrhist(errors)

三、数据获取

后台私聊,回复“14”即可免费获取下载链接。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘摇的土木狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值