MATLAB程序代码神经网络基础问题整理_第1页
MATLAB程序代码神经网络基础问题整理_第2页
MATLAB程序代码神经网络基础问题整理_第3页
MATLAB程序代码神经网络基础问题整理_第4页
MATLAB程序代码神经网络基础问题整理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB程序代码-神经网络基础问题整理所选问题及解答大部分来源于 资料大部分为江南一纪收集整理 对其他参与整理的版友(不一一列举)及 资料的原创者一并表示感谢因江南对神经网络的理解也不是很多 错误之处难勉 请谅解有什么问题可以来 的人工神经网络专区交流*1神经网络的教材哪本比较经典神经网络原理Simon Haykin ? 叶世?史忠植译神经网络设计神经网络书籍神经网络模型及其matlab仿真程序设计 周开利(对神经网络工具箱函数及里面神经网络工具箱的神经网络模型的网络对象及其属性做了详细的论述,后者在神经网络理论与matlab7实现那本书里面是没有的)神经网络理论与matlab7实现(这本

2、书对初学这入门还是挺不错的,看过了,就对matlab神经网络工具箱有教好的了解)神经网络设计(我认为这是一本很好的书,讲理论不是很多,看过之后就会对神经网络的原理有更好的了解)神经网络结构设计的理论与方法(这本书对提高网络的泛化能力的一些方法做了讲述,并且书后有程序,对网络结构的设计应该是挺有帮助的)摘自给初学matlab神经网络的一点建议2 神经网络理论的发展与前沿问题神经网络理论的发展与前沿问题刘永?摘要系统地论述了神经网络理论发展的历史和现状,在此基础上,对其主要发展趋向和所涉及的前沿问题进行了阐述文中还作了一定的评论,并提出了新的观点 关键词神经网络理论,神经计算,进化计算,基于神经科

3、学和数学的研?查看原文3 神经网络的权值和阈值分别是个什么概念?权值和阈值是神经元之间的连接,将数据输入计算出一个输出,然后与实际输出比较,误差反传,不断调整权值和阈值假如p1=1 1 -1;p2=1 -1 -1;属于不同的类须设计分类器将他们分开这里用单层神经元感知器初始权值 w=0.2 0.2 0.3 b=-0.3输出 a1 a2a1=hardlims(w*p1+b)a2=hardlims(w*p2+b)如果不能分开,还须不断调整w,b 这里说明一下权值w 阈值b 而已简单地说,阈值也可以看作一维权值,只不过它所对应的那一维样本永远是 -1(也有的书上说是 1),这样就把输入样本增加了一维

4、,更有利于解决问题.4 神经网络归一化看了研学和ai创业研发俱乐部神经网络版及振动论坛部分帖子内容,对归一化做一下整理,冒昧引用了一些他人的观点,有的未列出其名,请谅解-关于神经网络归一化方法的整理由于采集的各数据单位不一致,因而须对数据进行-1,1归一化处理,归一化方法主要有如下几种,供大家参考:(by james)1、线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue)说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。2、对数函数转换,表达式如下:y=log10(x)说明:以10为底的对数函数转换。3、

5、反余切函数转换,表达式如下:y=atan(x)*2/PI-归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1-+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布; 当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使

6、得所有样本的输入信号其均值接近于0或与其均方差相比很小。归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用0.9 0.1 0.1就要比用1 0 0要好。但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。-关于用premnmx语句进行归一化:premnmx语句的语法格式是:Pn,minp,maxp,Tn,mint,maxt=premnmx(P,T)其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最

7、大值。premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在-1,1区间内。我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。下面介绍tramnmx函数:Pn=tramnmx(P,minp,maxp)其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。(by terry2008)matlab中的归一化处理有三种方法1. premnmx、postmnmx、tramnmx2. restd、poststd、trastd3. 自己编程

8、具体用那种方法就和你的具体问题有关了 (by happy)pm=max(abs(p(i,:); p(i,:)=p(i,:)/pm;和for i=1:27p(i,:)=(p(i,:)-min(p(i,:)/(max(p(i,:)-min(p(i,:);end 可以归一到0 1 之间0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分别表示样本最大值和最小值。这个可以归一到0.1-0.95 如何查看BP神经网络训练后的权值和阈值呀!训练好的权值、阈值的输出方法是:输入到隐层权值:w1=net.iw1,1隐层阈值:theta1=net.b1隐层到输出层权值:w2=net

9、.lw2,1;输出层阈值:theta2=net.b26 训练好的BP神经网络如何保存呀用命令save filename net;保存网络,调用时用命令load filename net;7 用BP逼近非线性函数,如何提高训练精度啊 (1)调整网络结构 增加网络的层数可以进一步降低误差 ,提高精度但会使网络复杂化 ,从而增加网络的训练时间 。精度的提高实际上也可以通过增加隐层神经 元的数目来获得 ,其效果更容易观察和掌握 ,所以应优先考虑 。 (2)初始值选取 为了使误差尽可能小 ,需要合理选择初始权重和偏置,如果太大就容易陷入饱和区,导致停顿 。一般应选为均匀分布的小数,介于 (一1,1) 。

10、 (3)学习速率调整 学习速率的选取很重要 ,大了可能导致系统不稳定 ,小了会导致训练周期过长、收敛慢 ,达不到要求的误差 。一般倾向于选取较小的学习 速率以保持系统稳定,通过观察误差下降曲线来判断 。下降较快说明学习率比较合适 ,若有较大振荡则说明学习率偏大。同时 ,由于网络规 模大小的不同,学习率选择应当针对其进行调整 。 (4)期望误差 期望误差当然希望越小越好 ,但是也要有合适值。8 关于BP网络优缺点的讨论9 对初学神经网络者的小提示10 神经网络学习的讨论11 权威!BP网络中隐层结点个数的确定!12 神经网络混合编程VB6.0中调用nnToolKit工具包程序在VC中使用nnto

11、olkit工具箱cb6.0中调用nnToolKit工具包程序13 用遗传算法优化BP神经网络的Matlab编程 由于BP网络的权值优化是一个无约束优化问题,而且权值要采用实数编码,所以直接利用Matlab遗传算法工具箱。以下贴出的代码是为一个19输入变量,1个输出变量情况下的非线性回归而设计的,如果要应用于其它情况,只需改动编解码函数即可。具体请查看14 帮我看一下BP神经网络程序出错在哪里,愁死我了p=1,15,25;2,15,25;3,15,25;4,15,25;1,15,25;2,5,25;2,7.5,25;2,10,25;2,15,25;t=0.6169;0.7068;0.7998;0

12、.9052;1.0881;3.4255;1.0509;0.8835;0.7068;pn,minp,maxp=premnmx(p);net=newff(minmax(pn),9,12,1,tansig,tansig,purelin,traingdm);net.trainparam.show=25;net.trainparam.mc=0.9;net.trainparam.lr=0.05;net.trainparam.epochs=1000;net.trainparam.goal=0.00001;net=init(net);net,tr=train(net,p,t);出错的原因是 Error usi

13、ng = network/trainTargets are incorrectly sized for network.Matrix must have 1 rows.-p t 的列数要相等在pn,minp,maxp=premnmx(p);前面加入:p=p;t=t。在使用工具箱进行网络训练时,要求训练样本的个体是列向量。15 问各位一个问题,我用一个前向神经网络作分类,希望输出1 ;0;0表示一类;但是输出的是0.9997;0.0001;0诸如此类,我该怎么判断分类的成功与否?判断一下:如果三个数中最大的一个在第一位置,就用1 ;0;0表示表示分类正确16 能不能给解释一下这些分别是设定一个网

14、络的什么参数?net.trainParam.show = 50;net.trainParam.lr = 0.05;net.trainParam.epochs = 10000;net.trainParam.goal = 1e-5;-net.trainParam.show = 50;/训练50次刷新一下训练图net.trainParam.lr = 0.05;/学习率net.trainParam.epochs = 10000;/训练次数net.trainParam.goal = 1e-5;/训练结束的目标17 神经网络的文件 如何转为simulinkhelp gensim- help for net

15、work/gensim.m -GENSIM Generate a SIMULINK block to simulate a neural network.Syntaxgensim(net,st)18 ann如何做 预测一个不错的例子19 小波神经网络小波神经网络就是小波分析理论与神经网络理论相结合的产物。从结构形式分有两大类:1、小波分析与神经网络的松散型结合;2、小波分析与神经网络的嵌入式结合。前者是指彼此虽紧密结合但却又相对独立,采集到的信号先经过小波变换后输入到常规神经网络以完成分类、函数逼近等。后者是指将常规单隐层的神经网络的隐节点激励函数用小波函数代替,相应的输入到隐层的圈值及阈值分

16、别由小波函数的伸缩因子和平移因子代替,这也是我们通常所说的小波网络。小波网络在训练的过程中同样采用普通BP算法,但是它对参数的初始化表现敏感,所以参数的初始在小波网络的训练中也是很重要的。20 那位有人工神经网络导论高教出版社出版的蒋宗礼编的电子版书啊? 21:网络的结构选择输入层和输出层节点数选择由应用要求决定。输入节点数一般等于要训练的样本矢量维数,可以是原始数据的维数或提取的特征维数;输出单元数在分类网络中取类别数m或log2m,在逼近网络中取要逼近的函数输出空间维数。当网络用于工业过程辨识或时间序列预测建模时,输入节点数的选择应由非线性系统定阶的结果确定。 网络的隐层数和隐节点数决定了

17、网络的规模,而网络的规模与其性能密切相关。神经网络的规模越大,网络中的自由参数就越多;反之,网络中的自由参数就越少。如果神经网络用于逼近一个目标函数(分类可以看成函数逼近的特殊情况),则当网络规模过小,神经网络逼近能力不足,容易导致欠拟合;网络规模过大,神经网络逼近能力过剩,则容易导致过拟合;因此,确定网络规模是神经网络设计的一项重要内容。22 网络不稳定性问题我对次发表点个人看法吧,我觉的网络不稳定属于正常现象,我以大家用的最多的BP网络为例,比如网络隐含层节点的数目和网络训练算法选取的不同,都也可能导致同一网络结构针对同一测试样本的数据有着截然不同的解,原因是多方面的,与样本有关,与BP算

18、法自身也有关系,在网络初始化时,BP采用rand函数初始化权值,这样不同时间训练对于rand当然会有不同的取值,BP是按照梯度最大方向修正误差平方和的,网络自身算法就有一定的局限性。如果要保留现有的节点之间的值可以用net.iw,net.b,net.lw保留,这样网络的值就可以保留下来了。不过有时与样本特征,数目也有关系,样本太少训练的结果也不会令人满意。个人观点,仅供参考。可使预测的结果不会变化,调用时用命令load filename net;30 在用MATLAB实现BP反向学习时需要不需要用deltalin() 、 learnbp() 、 sumsqr()这样的函数啊?deltalin(

19、) 、 learnbp() 是比较旧的版本函数.如果不是做神经网络函数,直接应用newff,bptrain等工具箱函数就可以了.32 人工神经网络的特点 人工神经网络的以下几个突出的优点使它近年来引起人们的极大关注: (1)可以充分逼近任意复杂的非线性关系; (2)所有定量或定性的信息都等势分布贮存于网络内的各神经元,故有很强的鲁棒性和容错性; (3)采用并行分布处理方法,使得快速进行大量运算成为可能; (4)可学习和自适应不知道或不确定的系统; (5)能够同时处理定量、定性知识。 人工神经网络的特点和优越性,主要表现在三个方面:第一,具有自学习功能。例如实现图像识别时,只在先把许多不同的图像

20、样板和对应的应识别的结果输入人工神经网络,网络就 会通过自学习功能,慢慢学会识别类似的图像。自学习功能对于预测有特别重要的意义。预期未来的人工神经网络计算机将为人类提 供经济预测、市场预测、效益预测,其应用前途是很远大的。 第二,具有联想存储功能。用人工神经网络的反馈网络就可以实现这种联想。 第三,具有高速寻找优化解的能力。寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型 人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。33 人工神经网络的主要方向 神经网络的研究可以分为理论研究和应用研究两大方面。 理论研究可分为以下两类: 1)利用神经生理与认知科

21、学研究人类思维以及智能机理。 2)利用神经基础理论的研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究网络算法和性能, 如:稳定性、收敛性、容错性、鲁棒性等;开发新的网络数理理论,如:神经网络动力学、非线性神经场等。 应用研究可分为以下两类: 1)神经网络的软件模拟和硬件实现的研究。 2)神经网络在各个领域中应用的研究。这些领域主要包括: 模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。 随着神经网络理论本身以及相关理论、相关技术的不断 发展,神经网络的应用定将更加深入。34 如何选择训练集和测试集数据?一般需要将样本分成独立的三部分训练集(train

22、set),验证集(validation set)和测试集(test set)。其中训练集用来估计模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。一个典型的划分是训练集占总样本的50,而其它各占25,三部分都是从样本中随机抽取。样本少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K份,轮流选择其中K1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。特别的K取N,就是留一法(leave one out)。35 神

23、经网络实现神经网络(七种C实现).36 SOM的优点请问与神经网络的其他分类方法,比如Hamming,MLP相比,SOM有什么优点?.快速性(无隐含层).无监督性.可视化效果.37神经网络的应用我想问一下要应用实际中,神经网络技术最关键的地方在哪?我个人认为首先是对实际问题分析,看传统的方法行不行,如果行就用传统方法解决,如果传统方法解决的不理想,然后尝试用神经网络,神经网络用于求解问题是因为它具有“学习”能力,对于非线性、有噪、模式识别等问题有着得天独厚的优势,对于问题分析以后,重在选择相应的模型求解,尝试模型的求解过程同时也涉及到模型的优化等问题,最后编制程序运行。我个人认为选择什么样的模型求解实际问题是最关键的,用什么语言编程实现或者怎么实现好象都不是那么难。个人观点,欢迎补充。我眼中的神经网络-给初学者我觉得目前论坛里的新手很多,呵呵,问的问题很多都是重复的,首先希望你们能先找找时不时有人问过了,是不是有人已经回答过了。下面我把我的一点体会和看法说出来,可能有很多是不正确或者不深刻的,希望各位指出来,谢谢1、我知道的目前一般的神经网络,尤其是前馈网络可以做的是两方面的问题:分类和函数拟合(包括预测)。当然,hopfield网络还具有联想记忆功能,可以做一些相关的事情。2、我觉得神经网络还处于初期阶段,很多问题,尤其是规模大或者要求精度高的问题,还是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论