神经网络预测模型输出预测结果为什么总在0-1之间

神经网络预测模型输出预测结果为什么总在0-1之间,第1张

模型归一化,预测肯定也要反归一化。输出再反归一化就好了。比如,一组训练的数据,有最大值max,最小值min,假设区间长度cd=max-min。归一化就是(x-min)/cd,反归一化就是xcd+min

plot(x1,x2,;DisplayName;,;x2 vs x1;,;XDataSource;,;x1;,;YDataSource;,;x2;);figure(gcf)x1,x2就是2组数据。

神经网络最开始是机器学习的一种模型,但其训练的时间和其他几种模型相比不占优势,且结果也不尽人意,所以一直没有被广泛使用。但随着数学的深入研究以及计算机硬件质量的提高,尤其是GPU的出现,给深度学习的广泛应用提供了基础。GPU最初是为了给游戏玩家带来高质量的视觉体验,由于其处理矩阵运算的能力特别优秀,也被用于深度学习中模型的训练,以往数十天才能训练好的模型在GPU上训练几天就可以训练好,大大减少了深度学习的训练时间,因而深度学习的应用越来越多。

神经网络作为深度学习最主要的模型,人工神经网络ANN是最基础的神经网络结构,其工作原理很像人类大脑中的神经。神经元是ANN的工作单元,每个神经元含有权重和偏置,神经元将上一层神经元传递过来的值通过权重和偏置的运算,得到新的结果,将该结果传递给下一层神经元,通过不断的传递,最终获得输出结果。

要想用神经网络实现连续型变量的回归预测,需要将该N维变量的数据作为输入,中间再设置隐藏层和每一层的神经元个数,至于隐藏层的层数则需要多次训练才能得出较准确的层数。而最后输出层的值和实际变量的值会有误差,神经网络会通过不断地训练,更改权重和偏置的值来使误差尽可能的小,当误差小到一定程度,该神经网络的回归预测就算成功了。

通常使用Python来搭建神经网络,Python自带深度学习的一些库,在进行回归预测时,我们只需用调用函数,设定几个参数,如隐藏层层数和神经元个数等,剩下的就是等模型自行训练,最终便能完成回归预测,非常的方便。

首先数据初始化[nb,minb,maxb,na,mina,maxa]=premnmx(traindata,trainlabels);

[nc,minc,maxc]=premnmx(testdata);

用这个函数newff就可以得到BP神经网络模型

net=newff(minmax(traindata),[7,1],{'tansig','purelin'});

参数可以用默认的,具体参数可以help一下看看如何设置

训练神经网络

net=train(net,nb,na); 测试输出

nd= sim(net,nc);

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

原文地址:https://54852.com/zaji/12178575.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存