运行MATLAB BP神经网络后,得到了误差曲线(mse),图例里有四个量,其中,Validation代表什么意思啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行MATLAB BP神经网络后,得到了误差曲线(mse),图例里有四个量,其中,Validation代表什么意思啊?相关的知识,希望对你有一定的参考价值。
代表检验这个网络的训练结果。
mse表示均方差,当然越小越好。但是这与你训练样本的多少,训练次数都有很大关系。
这个其实没有统一的标准,任何人都知道0偏差当然是最好。但是根绝神经网络本身致命的缺陷,由于它是迭代收敛逼近解析式,所以不可能达到0误差。
这只有根据使用者的工程技术要求来加以判断,这个误差指标肯定应该在小于工程误差范围内啊。但是对于科研研究,也只能具体情况具体分析。定量一说没有具体绝对一说的。
扩展资料:
BP神经网络的计算过程由正向计算过程和反向计算过程组成。正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每~层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。
参考资料来源:百度百科-BP神经网络
参考技术A 是校验的意思吧!在训练样本中一部分用来进行训练,一部分用来校验!然后用别的样本来进行测试test!本回答被提问者采纳 参考技术B 代表检验你这个网络的训练结果 参考技术C 和楼主遇到了同样的问题,这四条线都应该如何解释?在看了案例二中的BP神经网络训练及预测代码后,我开始不明白BP神经网络究竟能做啥了。。。 程序最后得到
在看了BP神经网络训练及预测代码后,我开始不明白BP神经网络究竟能做什么了。。。
程序最后得到的结果好像就是预测输出值与实际输出值之间的误差吧,但是在应用中,实际输出值应该是没法作为已知条件出现的,只有给控制器给定一个输入,才能得到作为输出信号的实际输出值。也就是说在代码中的实际输出值应该是不可知的,这样就无法得到BP神经网络预测的误差了。
在以上分析的基础上,BP神经网络仅能得到一个控制器的预测输出值,而无法根据误差值的大小对其进行调整优化,BP神经网络的作用仅限于此吗?
我知道我上面的这些理解肯定在哪里出现了一点偏差,但是我无法找到问题出在哪里,往高手指教。。谢谢。。
比如BP应用在分类,网络的训练是指的给你一些样本,同时告诉你这些样本属于哪一类,然后代入网络训练,使得这个网络具备一定的分类能力,训练完成以后再拿一个未知类别的数据通过网络进行分类。这里的训练过程就是先伪随机生成权值,然后把样本输入进去算出每一层的输出,并最终算出来预测输出(输出层的输出),这是正向学习过程;最后通过某种训练算法(最基本的是感知器算法)使得代价(预测输出与实际输出的某范数)函数关于权重最小,这个就是反向传播过程。
您所说的那种不需要预先知道样本类别的网络属于无监督类型的网络,比如自组织竞争神经网络。追问
能具体举个应用的例子么?比如我想用在股票走势预测上,应该怎么处理?
追答经济学的具体应用我不太了解,你说的这个例子叫做回归型神经网络。具体的应用例子很简单,比如你拿到一组特征x=[x1 x2 x3 x4 ...],然后有一组输出y,现在知道x和y满足某种函数关系y=f(x),假如知道这个函数是哪一类函数,那么通过数论(数值计算方法)就可以解决,这个就是典型的数学上的回归问题,但是假如你连f(x)长的什么样子都不知道,那么就可以使用神经网络。方法是采集到x和y的数据,比如x=x0的时候y=y0,x=x1的时候y=y1,依次类推,这个就是训练样本,通过训练样本训练网络,训练完成以后开始应用,这个应用解决的问题就是我们拿到一个未知的x,可以通过网络运算出来对应的y是多少。
你要用在股票走势上,首先就是要确定特征,y肯定是你要知道的股票走势,这组x是你要确定的哪些经济学上的数据,然后采集过去的股票数据(x,y),产生样本,对网络进行训练。训练完成以后,这个网络就可以解答:当前的x出现的时候,股票走势y是什么样的数据。
您下面提到的那个输出节点设置的问题,很简单,输出的数据就是你要预测的数据,比如上证指数。假如已知上证指数和某些经济学参数x有关,那么就采集过去的x和上证指数去训练网络,最后得到的网络目的就是当获取一组新的x而需要知道上证指数的时候,运算出来上证指数。
意思我明白了,但是具体操作还是有点迷糊。。。比如程序编写,在MATLAB中有现成的神经网络函数,训练我是会的,但是 怎样用一组新的x去推未知的上证指数,这一步我就不知道怎么处理了
追答训练完成以后把网络保存下来,然后使用命令a=sim(net,x),这里a是你的返回变量,它就等于你预测出来的数据,net是你训练好的网络名,x就是你那组新的x。
追问x不是程序开头设定的输入值么?怎么又变成新的了?
追答x是代表的输入,例如通过纽约股指推断上证的,这个x就是指代的纽约股指,你训练的时候用的是昨天的x,前天的x,大前天的x,依次类推,那么训练好以后拿来算的是今天的x,我在前面的说明当中不是给样本加了下标吗?“比如x=x0的时候y=y0,x=x1的时候y=y1,依次类推,这个就是训练样本”。我们算的时候用的就是x=今天的x这种情况。
追问我写的程序,训练过程是有的,但预测过程还是不清楚。想请你改一下,这里发不了,我发到你空间了,你帮我看看吧,谢谢了。
追答你做的这个必然不行。首先是数据量太小,甚至连小样本问题都算不上。其次是违背客观规律,昨天的股指和今天的股指怎么可能存在某一个确定性函数关系呢?今天的股指肯定和今天的经济学数据相关。就好比你用昨天的温度去预测今天的温度一样荒唐,因为今天的温度肯定是和今天的气象学参数有关,忽视客观规律是不可能成功的。
神经网络不适合你的模型,你的这种情况需要使用数学方法解决。通过数论来拟合马尔科夫链模型,把问题转化为求昨天与今天股指的概率密度函数或者状态转移矩阵。
或者是你通过经济学的有关成果研究一下特征提取,但是我的观点即使是这样,恐怕这个模型只能是用来做理论探讨,不太可能用到股指的预测。经济学的参数本来就不靠谱,有着非常大的误差和干扰信息,神经网络做预测也并不向数学回归那样能给出准确的误差估计,说白了你用非常不靠谱数据来进行不太靠谱的处理,想得到一个靠谱的数据那是不现实的。科学的力量固然强大,但是也要遵循客观情况,千万不要陷入神经网络万能的误区。
那请问有没有什么可以改进的办法?比如我用今晚的道指,以及其他因素比如投资者的情绪等做为因变量来预测明天的开盘价,这样可行么?至于样本假如我收集到近两百个样本,这样是否可行。还望指点迷津!
追答对不起,这一点我帮不到你。我只能就模型本身的特点帮你分析,你提到的问题是属于建模、特征提取、样本预处理、网络优化的内容,如果是到了这样一个层面的话必须一个专门的课题或者项目支持才能做。这种工作凭借个人的力量和经费是难以完成的,您如果铁了心要做的话我建议您先写一份项目要求,带着它到您当地的经济学科研机构,他们如果有兴趣会接下项目并申请国家社会科学基金或者教育部、科工委的基金,然后给您经费预算,如果成功这些基金会替您分担项目经费的40%左右,失败的话只能按照自筹经费的项目来做,这样需要您提供全额经费,项目完成后他们会按照项目要求给您需要的成果。
参考技术A BP网络的作用类似于人脑的类推学习过程,分为训练过程:已知条件+已知结果===神经网络
和应用过程:待解答条件+神经网络===模拟结果
比如我们在认知过程中,
看到[黑猫]我们会联想到[猫]
看到[白猫]我们会联想到[猫]
看到[黄猫]我们会联想到[猫]
神经网络训练完毕
在应用中
我们看到一只[花猫]
能够识别是[猫]
这就是神经网络,输入的是已知的条件和结果
就像举例说明
对于未知的输入进行变量匹配
如果匹配不成功,就算误差,然后更新认知
直到匹配成功
对神经网络进行训练后,追问
还是有点不明白,感觉自己陷入一个误区。。。可不可以加你Q谈一下,其实我现在的主要问题是在输出节点的设定上。不知道该怎么处理!
追答通过输入/输出样本对产生一个网络,用这个网络来对新的输入值进行处理,这个就是神经网络
样本中一个输入对应一个输出,需要输出几个属性就设计几个节点
以上是关于运行MATLAB BP神经网络后,得到了误差曲线(mse),图例里有四个量,其中,Validation代表什么意思啊?的主要内容,如果未能解决你的问题,请参考以下文章
使用 BP 神经网络进行深度学习时在训练时获得平坦的误差曲线
优化预测基于matlab鲸鱼优化算法优化BP回归预测含Matlab源码 W002期