p神经网络的输入数据越多越好,输出数据需要反映网络的联想记忆和预测能力。
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。BP网络具有高度非线性和较强的泛化能力,但也存在收敛速度慢、迭代步数多、易于陷入局部极小和全局搜索能力差等缺点。
扩展资料:
BP算法主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。
1、初始化,随机给定各连接权及阀值。
2、由给定的输入输出模式对计算隐层、输出层各单元输出
3、计算新的连接权及阀值,计算公式如下:
4、选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。
参考资料来源:
谷歌人工智能写作项目:小发猫
归一化,就是为了限定你的输入向量的最大值跟最小值不超过你的隐层跟输出层函数的限定范围神经网络输入输出标准化。比如,你的隐层的传递函数为logsig,那么你的输出就在0~1范围内,如果你的传递函数为tansig,你的隐层的输出在-1~·范围内,用归一化,这也是为了你的隐层传递函数的输出着想。
标准化,只是对数据进行了统一的标准,其大小可能已经超出了隐层传递函数的界定范围,在后续的运行时,容易出错。
你所说的应该是输入数据的预处理 即pre-processing,你使用ST Nueral Networks的话,里面有自动的预处理,你输入定性数据(nominal variable)后,软件可以自动预处理后转化为神经网络可以识别的数值.
或者你自己设置
例1 根据年鉴记载的某些地区经度,纬度与台风类型的关系预测任意经纬度下台风类型(台风A或者台风B),
台风类型就属于定性数据在STNN中你可以现将输出变量设置为nominal variable,然后设置输出变量的数目为2,分别是V1和V2,构建网络的时候经纬度对应台风A的,设置输出值为V1,为台风B的设置为V2,预测时,网络可以给出结果V1或者V2,你就知道是哪种台风了.
例2 根据现有的水质标准以及数种污染物的采样值预测该河流的水质级别
输出值为水质级别,同样为nominal variable,你可以将输出值作一个标准化处理,设总共有五个水质级别,你可以将输出变量区间化分为0-0.2,0.2-0.4,0.4-0.6,0.6-0.8,0.8-1,设置第一级别水质对应的输出值为0.2 第2级水质对应0.4,等等,第5级水质对应1
神经网络的基本原理是:每个神经元把最初的输入值乘以一定的权重,并加上其他输入到这个神经元里的值(并结合其他信息值),最后算出一个总和,再经过神经元的偏差调整,最后用激励函数把输出值标准化。基本上,神经网络是由一层一层的不同的计算单位连接起来的。我们把计算单位称为神经元,这些网络可以把数据处理分类,就是我们要的输出。
神经网络常见的工具:
以上内容参考:在众多的神经网络工具中,NeuroSolutions始终处于业界领先位置。它是一个可用于windows XP/7高度图形化的神经网络开发工具。其将模块化,基于图标的网络设计界面,先进的学习程序和遗传优化进行了结合。该款可用于研究和解决现实世界的复杂问题的神经网络设计工具在使用上几乎无限制。
以上内容参考:
一般看你的激活函数而定,大多数情况下是把数据整理到【-1,1】或【0,1】区间上。
从理论上将,BP网络对其输入无限制,因此对输入变量可以不归一化。但是还是建议归一化到一个统一范围,这样做的目的是为了一开始就使各变量的重要性处于同等地位
你所说的应该是输入数据的预处理 即pre-processing,你使用ST Nueral Networks的话,里面有自动的预处理,你输入定性数据(nominal variable)后,软件可以自动预处理后转化为神经网络可以识别的数值.
或者你自己设置
例1 根据年鉴记载的某些地区经度,纬度与台风类型的关系预测任意经纬度下台风类型(台风A或者台风B),
台风类型就属于定性数据在STNN中你可以现将输出变量设置为nominal variable,然后设置输出变量的数目为2,分别是V1和V2,构建网络的时候经纬度对应台风A的,设置输出值为V1,为台风B的设置为V2,预测时,网络可以给出结果V1或者V2,你就知道是哪种台风了.
例2 根据现有的水质标准以及数种污染物的采样值预测该河流的水质级别
输出值为水质级别,同样为nominal variable,你可以将输出值作一个标准化处理,设总共有五个水质级别,你可以将输出变量区间化分为0-0.2,0.2-0.4,0.4-0.6,0.6-0.8,0.8-1,设置第一级别水质对应的输出值为0.2 第2级水质对应0.4,等等,第5级水质对应1
神经网络各个网络参数设定原则:
①、网络节点 网络输入层神经元节点数就是系统的特征因子(自变量)个数,输出层神经元节点数就是系统目标个数。隐层节点选按经验选取,一般设为输入层节点数的75%。如果输入层有7个节点,输出层1个节点,那么隐含层可暂设为5个节点,即构成一个7-5-1 BP神经网络模型。在系统训练时,实际还要对不同的隐层节点数4、5、6个分别进行比较,最后确定出最合理的网络结构。
②、初始权值的确定 初始权值是不应完全相等的一组值。已经证明,即便确定 存在一组互不相等的使系统误差更小的权值,如果所设Wji的的初始值彼此相等,它们将在学习过程中始终保持相等。故而,在程序中,我们设计了一个随机发生器程序,产生一组一0.5~+0.5的随机数,作为网络的初始权值。
③、最小训练速率 在经典的BP算法中,训练速率是由经验确定,训练速率越大,权重变化越大,收敛越快;但训练速率过大,会引起系统的振荡,因此,训练速率在不导致振荡前提下,越大越好。因此,在DPS中,训练速率会自动调整,并尽可能取大一些的值,但用户可规定一个最小训练速率。该值一般取0.9。
④、动态参数 动态系数的选择也是经验性的,一般取0.6 ~0.8。
⑤、允许误差 一般取0.001~0.00001,当2次迭代结果的误差小于该值时,系统结束迭代计算,给出结果。
⑥、迭代次数 一般取1000次。由于神经网络计算并不能保证在各种参数配置下迭代结果收敛,当迭代结果不收敛时,允许最大的迭代次数。
⑦、Sigmoid参数 该参数调整神经元激励函数形式,一般取0.9~1.0之间。
⑧、数据转换。在DPS系统中,允许对输入层各个节点的数据进行转换,提供转换的方法有取对数、平方根转换和数据标准化转换。
扩展资料:
神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。主要的研究工作集中在以下几个方面:
1.生物原型
从生理学、心理学、解剖学、脑科学、病理学等方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。
2.建立模型
根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。
3.算法
在理论模型研究的基础上构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。
神经网络用到的算法就是向量乘法,并且广泛采用符号函数及其各种逼近。并行、容错、可以硬件实现以及自我学习特性,是神经网络的几个基本优点,也是神经网络计算方法与传统方法的区别所在。
参考资料:百度百科-神经网络(通信定义)
在命令栏敲nntool,按提示操作,将样本提交进去。
还有比较简单的是用广义RBF网络,直接用grnn函数就能实现,基本形式是y=grnn(P,T,spread),你可以用help grnn看具体用法。GRNN的预测精度是不错的。
广义RBF网络:从输入层到隐藏层相当于是把低维空间的数据映射到高维空间,输入层细胞个数为样本的维度,所以隐藏层细胞个数一定要比输入层细胞个数多。从隐藏层到输出层是对高维空间的数据进行线性分类的过程,可以采用单层感知器常用的那些学习规则,参见神经网络基础和感知器。
注意广义RBF网络只要求隐藏层神经元个数大于输入层神经元个数,并没有要求等于输入样本个数,实际上它比样本数目要少得多。因为在标准RBF网络中,当样本数目很大时,就需要很多基函数,权值矩阵就会很大,计算复杂且容易产生病态问题。另外广RBF网与传统RBF网相比,还有以下不同:
径向基函数的中心不再限制在输入数据点上,而由训练算法确定。
2.各径向基函数的扩展常数不再统一,而由训练算法确定。
3.输出函数的线性变换中包含阈值参数,用于补偿基函数在样本集上的平均值与目标值之间的差别。
因此广义RBF网络的设计包括:
1.结构设计--隐藏层含有几个节点合适
2.参数设计--各基函数的数据中心及扩展常数、输出节点的权值。