我是靠谱客的博主 懦弱水池,最近开发中收集的这篇文章主要介绍MATLAB 拟合神经网络—— fitnet建立神经网络参数设置训练网络预测数据模型评价程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

建立神经网络

  • 语法:net = fitnet(hiddenSizes,trainFcn)

  • hiddenSize 为隐藏层数,是一个行向量,分别表示从左到右的隐藏层神经元数。
  • trainFcn 为训练函数,如下表所示
名称函数
‘trainlm’Levenberg-Marquardt
‘trainbr’Bayesian Regularization
‘trainscg’Scaled Conjugate Gradient
‘trainbfg’BFGS Quasi-Newton
‘trainrp’Resilient Backpropagation
‘traincgb’Conjugate Gradient with Powell/Beale Restarts
‘traincgf’Fletcher-Powell Conjugate Gradient
‘traincgp’Polak-Ribiére Conjugate Gradient
‘trainoss’One Step Secant
‘traingdx’Variable Learning Rate Gradient Descent
‘traingdm’Gradient Descent with Momentum
‘traingd’Gradient Descent
  • 黄色标出的是常用方法,也是工具箱中提供的三种方法

参数设置

  • 以下参数通常不修改,采用默认值
名称说明默认值
net.trainParam.epochs最大训练次数1000
net.trainParam.goal训练要求精度0
net.trainParam.time最大训练时间inf
net.trainParam.max_fail最大不下降步数6
net.trainParam.show显示训练过程false
net.trainParam.showWindow显示训练窗口true
  • 设置训练样本数据、验证样本数据、测试样本数据比例
名称说明默认值
net.divideParam.trainRatio训练样本比例0.7
net.divideParam.valRatio验证样本比例0.15
net.divideParam.testRatio测试样本比例0.15

训练网络

  • 语法:[net,tr] = train(net,x,y);

  • 用已知数据训练网络 net ,返回训练好的网络 net ,训练的相关数据在结构体 tr 中。
  • 注意 x、y 和习惯上方向是相反的,每一行表示一个指标,每一列是一个样本。
  • y 可以是多个预测数据

预测数据

  • 语法:y = sim(net,x)

  • 和训练网络一样,注意 x、y 每一行是指标,每一列是样本。

模型评价

  • tr 结构中记录了模型的相关数据,主要数据如下表所示
  • 总体特征数据
名称说明
num_epochs训练次数
best_epoch最佳训练次数
best_perf最佳均方误差(MSE)
best_vperf验证样本最佳均方误差
best_tperf测试样本最佳均方误差
trainInd选取训练样本序号
valInd选取验证样本序号
testInd选取测试样本序号
  • 记录每次训练数据
名称说明
epoch行向量,训练步数标号,0~(步数-1)
time训练时间
perf训练样本均方误差
vperf验证样本均方误差
tperf测试样本均方误差
  • 计算总体均方误差
    • 语法:performance = perform(net, origin_y, predict_y)
    • 其中 predict_y = sim(net,x)

程序

% 转置
x = X'; y = Y';

% 一个隐藏层,神经元数为5
hiddenLayerSize = 5;

% 训练函数为 trainlm
trainFcn = 'trainlm';

% 初始化网络
net = fitnet(hiddenLayerSize,trainFcn);

% 设置比例
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

% 训练网络
[net,tr] = train(net,x,y);

% 计算所有训练样本预测值
yp = sim(net,x);

% 计算总体均方误差
performance = perform(net,y,yp);

% 查看网络结构
view(net)

最后

以上就是懦弱水池为你收集整理的MATLAB 拟合神经网络—— fitnet建立神经网络参数设置训练网络预测数据模型评价程序的全部内容,希望文章能够帮你解决MATLAB 拟合神经网络—— fitnet建立神经网络参数设置训练网络预测数据模型评价程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部