神经网络基础问题整理.docx
- 文档编号:7389690
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:9
- 大小:23.32KB
神经网络基础问题整理.docx
《神经网络基础问题整理.docx》由会员分享,可在线阅读,更多相关《神经网络基础问题整理.docx(9页珍藏版)》请在冰豆网上搜索。
神经网络基础问题整理
1神经网络的教材哪本比较经典
神经网络原理
SimonHaykin?
叶世?
史忠植译
神经网络设计
神经网络书籍
神经网络模型及其matlab仿真程序设计
周开利
(对神经网络工具箱函数及里面神经网络工具箱的神经网络模型的网络对象及其属性做了详细的论述,后者在神经网络理论与matlab7实现那本书里面是没有的)
神经网络理论与matlab7实现
(这本书对初学这入门还是挺不错的,看过了,就对matlab神经网络工具箱有教好的了解)
神经网络设计(我认为这是一本很好的书,讲理论不是很多,看过之后就会对神经网络的原理有更好的了解)
神经网络结构设计的理论与方法(这本书对提高网络的泛化能力的一些方法做了讲述,并且书后有程序,对网络结构的设计应该是挺有帮助的)
摘自 给初学matlab神经网络的一点建议
2神经网络理论的发展与前沿问题
神经网络理论的发展与前沿问题
刘永?
摘 要 系统地论述了神经网络理论发展的历史和现状,在此基础上,对其主要发展趋向和所涉及的前沿问题进行了阐述.文中还作了一定的评论,并提出了新的观点.
关键词 神经网络理论,神经计算,进化计算,基于神经科学和数学的研?
查看原文
3神经网络的权值和阈值分别是个什么概念?
?
权值和阈值是神经元之间的连接,将数据输入计算出一个输出,然后与实际输出比较,误差反传,不断调整权值和阈值
假如p1=[11-1]';
p2=[1-1-1]';
属于不同的类
须设计分类器将他们分开
这里用单层神经元感知器
初始权值w=[0.20.20.3]b=-0.3
输出a1a2
a1=hardlims(w*p1+b)
a2=hardlims(w*p2+b)
如果不能分开,还须不断调整w,b
这里说明一下权值w阈值b而已
简单地说,阈值也可以看作一维权值,只不过它所对应的那一维样本永远是-1(也有的书上说是1),这样就把输入样本增加了一维,更有利于解决问题.
4神经网络归一化
看了研学和ai创业研发俱乐部神经网络版及振动论坛部分帖子内容,对归一化做一下整理,冒昧引用了一些他人的观点,有的未列出其名,请谅解
-------------------------------------------------------------------------------------------------------
关于神经网络归一化方法的整理
由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:
(byjames)
1、线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
说明:
x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。
2、对数函数转换,表达式如下:
y=log10(x)
说明:
以10为底的对数函数转换。
3、反余切函数转换,表达式如下:
y=atan(x)*2/PI
-------------------------------------------------------------------------------------------------------
归一化是为了加快训练网络的收敛性,可以不进行归一化处理
归一化的具体作用是归纳统一样本的统计分布性。
归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。
归一化有同一、统一和合一的意思。
无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;
当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。
为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。
归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。
所以这样做分类的问题时用[0.90.10.1]就要比用[100]要好。
但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。
-------------------------------------------------------------------------------------------------------
关于用premnmx语句进行归一化:
premnmx语句的语法格式是:
[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T)
其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。
mint和maxt分别为T的最小值和最大值。
premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。
我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。
下面介绍tramnmx函数:
[Pn]=tramnmx(P,minp,maxp)
其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。
(byterry2008)
---------------------------------
matlab中的归一化处理有三种方法
1.premnmx、postmnmx、tramnmx
2.restd、poststd、trastd
3.自己编程
具体用那种方法就和你的具体问题有关了
(byhappy)
----------------------------------
pm=max(abs(p(i,:
)));p(i,:
)=p(i,:
)/pm;
和fori=1:
27
p(i,:
)=(p(i,:
)-min(p(i,:
)))/(max(p(i,:
))-min(p(i,:
)));
end可以归一到01之间
0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分别表示样本最大值和最小值。
这个可以归一到0.1-0.9
5如何查看BP神经网络训练后的权值和阈值呀!
!
训练好的权值、阈值的输出方法是:
输入到隐层权值:
w1=net.iw{1,1}
隐层阈值:
theta1=net.b{1}
隐层到输出层权值:
w2=net.lw{2,1};
输出层阈值:
theta2=net.b{2}
6训练好的BP神经网络如何保存呀
用命令savefilenamenet;保存网络,
调用时用命令loadfilenamenet;
7用BP逼近非线性函数,如何提高训练精度啊
(1)调整网络结构
增加网络的层数可以进一步降低误差
,提高精度但会使网络复杂化
,从而增加网络的训练时间
。
精度的提高实际上也可以通过增加隐层神经
元的数目来获得
,其效果更容易观察和掌握
,所以应优先考虑
。
(2)初始值选取
为了使误差尽可能小
,需要合理选择初始权重和偏置,如果太大就容易陷入饱和区,导致停顿
。
一般应选为均匀分布的小数,介于(一1,1)。
(3)学习速率调整
学习速率的选取很重要
,大了可能导致系统不稳定
,小了会导致训练周期过长、收敛慢
,达不到要求的误差
。
一般倾向于选取较小的学习
速率以保持系统稳定,通过观察误差下降曲线来判断
。
下降较快说明学习率比较合适
,若有较大振荡则说明学习率偏大。
同时
,由于网络规
模大小的不同,学习率选择应当针对其进行调整
。
(4)期望误差
期望误差当然希望越小越好
,但是也要有合适值。
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.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);
出错的原因是Errorusing==>network/train
Targetsareincorrectlysizedfornetwork.
Matrixmusthave1rows.
---------------------------------------------------------------------------
pt的列数要相等
在[pn,minp,maxp]=premnmx(p);前面加入:
p=p';t=t'。
在使用工具箱进行网络训练时,要求训练样本的个体是列向量。
15问各位一个问题,我用一个前向神经网络作分类,希望输出[1;0;0]表示一类;但是输出的是[0.9997;0.0001;0]诸如此类,我该怎么判断分类的成功与否?
判断一下:
如果三个数中最大的一个在第一位置,就用[1;0;0]表示
表示分类正确
16能不能给解释一下这些分别是设定一个网络的什么参数?
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;//训练结束的目标
17BP神经网络的M文件
如何转为 simulink
helpgensim
---helpfornetwork/gensim.m---
GENSIMGenerateaSIMULINKblocktosimulateaneuralnetwork.
Syntax
gensim(net,st)
19小波神经网络
小波神经网络就是小波分析理论与神经网络理论相结合的产物。
从结构形式分有两大类:
1、小波分析与神经网络的松散型结合;2、小波分析与神经网络的嵌入式结合。
前者是指彼此虽紧密结合但却又相对独立,采集到的信号先经过小波变换后输入到常规神经网络以完成分类、函数逼近等。
后者是指将常规单隐层的神经网络的隐节点激励函数用小波函数代替,相应的输入到隐层的圈值及阈值分别由小波函数的伸缩因子和平移因子代替,这也是我们通常所说的小波网络。
小波网络在训练的过程中同样采用普通BP算法,但是它对参数的初始化表现敏感,所以参数的初始在小波网络的训练中也是很重要的。
20那位有《人工神经网络导论》高教出版社出版的蒋宗礼编的电子版书啊?
21:
网络的结构选择
输入层和输出层节点数选择由应用要求决定。
输入节点数一般等于要训练的样本矢量维数,可以是原始数据的维数或提取的特征维数;输出单元数在分类网络中取类别数m或log2m,在逼近网络中取要逼近的函数输出空间维数。
当网络用于工业过程辨识或时间序列预测建模时,输入节点数的选择应由非线性系统定阶的结果确定。
网络的隐层数和隐节点数决定了网络的规模,而网络的规模与其性能密切相关。
神经网络的规模越大,网络中的自由参数就越多;反之,网络中的自由参数就越少。
如果神经网络用于逼近一个目标函数(分类可以看成函数逼近的特殊情况),则当网络规模过小,神经网络逼近能力不足,容易导致欠拟合;网络规模过大,神经网络逼近能力过剩,则容易导致过拟合;因此,确定网络规模是神经网络设计的一项重要内容。
22网络不稳定性问题
我对次发表点个人看法吧,我觉的网络不稳定属于正常现象,我以大家用的最多的BP网络为例,比如网络隐含层节点的数目和网络训练算法选取的不同,都也可能导致同一网络结构针对同一测试样本的数据有着截然不同的解,原因是多方面的,与样本有关,与BP算法自身也有关系,在网络初始化时,BP采用rand函数初始化权值,这样不同时间训练对于rand当然会有不同的取值,BP是按照梯度最大方向修正误差平方和的,网络自身算法就有一定的局限性。
如果要保留现有的节点之间的值可以用
net.iw,net.b,net.lw保留,这样网络的值就可以保留下来了。
不过有时与样本特征,数目也有关系,样本太少训练的结果也不会令人满意。
个人观点,仅供参考。
23网络和多层感知器的区别什么
最好详细描述一下两者的区别?
br>刚刚学神经网络。
谢谢
---------------------------------------------------------------
RBF网络与多层感知器都是非线性多层前向网?
它们都是通用逼近?
对于任一个多层感知器,总存在一个RBF网络可以代替?
反之亦然.但是,这两个网络也存在着很多不同?
1.RBF网络只有一个隐?
而多层感知器的隐层可以是一层也可以是多层的.2多层感知器的隐层和输出层其神经元模型是一样的.而RBF网络的隐层神经元和输出层神经元不仅模型不?
而且在网络中起到的作用也不一?
3,RBF网络的隐层是非线性的,输出层是线性的.然?
当用多层感知器解决模式分类问题时,它的隐层和输出层通常先为非线性的.当用多层感知器解决非线性回归问题时,通常选择线性输出层.4,RBF网络的基函数计算的是输入向量和中心的欧氏距离,而多层感知器隐单元的激励函数计算的是输入单元和连接权值间的内?
1.RBF网络与多层感知器都是非线性多层前向网,都可以用于逼近。
2.相互代替的问题应该是不能,我不太清楚,一般是根据具体问题选择相应的网络。
3.RBF网络本质上只有一层,只有一层的权值需要调整。
4.在用多层感知器解决问题时,选择线性输出层还是非线性输出层主要取决于理想输出值是有限个还是无限个,因为非线性输出的值是2个值,而线性输出的值是连续的。
5.在做模式分类问题时,RBF网络的基函数计算的是输入向量和中心的欧氏距离,而多层感知器隐单元的激励函数计算的是输入单元和连接权值间的内积。
没错,简单地说,就是RBF网络是靠画圈分类,而多层感知器是靠画直线分类。
30在用MATLAB实现BP反向学习时需要不需要用deltalin()、 learnbp()、sumsqr()这样的函数啊?
deltalin()、 learnbp()是比较旧的版本函数.
如果不是做神经网络函数,直接应用newff,bptrain等工具箱函数就可以了.
32人工神经网络的特点
人工神经网络的以下几个突出的优点使它近年来引起人们的极大关注:
(1)可以充分逼近任意复杂的非线性关系;
(2)所有定量或定性的信息都等势分布贮存于网络内的各神经元,故有很强的鲁棒性和容错性;
(3)采用并行分布处理方法,使得快速进行大量运算成为可能;
(4)可学习和自适应不知道或不确定的系统;
(5)能够同时处理定量、定性知识。
人工神经网络的特点和优越性,主要表现在三个方面:
第一,具有自学习功能。
例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就
会通过自学习功能,慢慢学会识别类似的图像。
自学习功能对于预测有特别重要的意义。
预期未来的人工神经网络计算机将为人类提
供经济预测、市场预测、效益预测,其应用前途是很远大的。
第二,具有联想存储功能。
用人工神经网络的反馈网络就可以实现这种联想。
第三,具有高速寻找优化解的能力。
寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型
人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。
33人工神经网络的主要方向
神经网络的研究可以分为理论研究和应用研究两大方面。
理论研究可分为以下两类:
1).利用神经生理与认知科学研究人类思维以及智能机理。
2).利用神经基础理论的研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究网络算法和性能,
如:
稳定性、收敛性、容错性、鲁棒性等;开发新的网络数理理论,如:
神经网络动力学、非线性神经场等。
应用研究可分为以下两类:
1).神经网络的软件模拟和硬件实现的研究。
2).神经网络在各个领域中应用的研究。
这些领域主要包括:
模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。
随着神经网络理论本身以及相关理论、相关技术的不断
发展,神经网络的应用定将更加深入。
34如何选择训练集和测试集数据?
一般需要将样本分成独立的三部分训练集(trainset),验证集(validationset)和测试集(testset)。
其中训练集用来估计模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。
一个典型的划分是训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。
样本少的时候,上面的划分就不合适了。
常用的是留少部分做测试集。
然后对其余N个样本采用K折交叉验证法。
就是将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。
特别的K取N,就是留一法(leaveoneout)。
36
SOM的优点
请问与神经网络的其他分类方法,比如Hamming,MLP相比,SOM有什么优点?
1.快速性(无隐含层)2.无监督性3.可视化效果.
37神经网络的应用
我想问一下要应用实际中,神经网络技术最关键的地方在哪?
我个人认为首先是对实际问题分析,看传统的方法行不行,如果行就用传统方法解决,如果传统方法解决的不理想,然后尝试用神经网络,神经网络用于求解问题是因为它具有“学习”能力,对于非线性、有噪、模式识别等问题有着得天独厚的优势,对于问题分析以后,重在选择相应的模型求解,尝试模型的求解过程同时也涉及到模型的优化等问题,最后编制程序运行。
我个人认为选择什么样的模型求解实际问题是最关键的,用什么语言编程实现或者怎么实现好象都不是那么难。
我眼中的神经网络----给初学者
我觉得目前论坛里的新手很多,呵呵,问的问题很多都是重复的,首先希望你们能先找找时不时有人问过了,是不是有人已经回答过了。
下面我把我的一点体会和看法说出来,可能有很多是不正确或者不深刻的,希望各位指出来,谢谢
1、我知道的目前一般的神经网络,尤其是前馈网络可以做的是两方面的问题:
分类和函数拟合(包括预测)。
当然,hopfield网络还具有联想记忆功能,可以做一些相关的事情。
2、我觉得神经网络还处于初期阶段,很多问题,尤其是规模大或者要求精度高的问题,还是解决不了的,不要总是怀疑自己是不是程序错了或者有什么问题之类的。
(说实话,我觉得神经网络进入工程还有很长的路要走。
做论文还可以,呵呵)
3、一般来说,前馈网络的样本都是要采取归一化的,原因是样本的数量级差太大的话会出现大样本吞吃小样本的现象,使得数量小的那一维样本不起作用。
.......
BP网络训练时的问题
BP网络在训练时,有时候会出现下面的情况,请教其原因及解决方法。
TRAINLM,Minimumgradientreached,performancegoalwasnotmet.
TRAINLM,MaximumMUreached,performancegoalwasnotmet
网络不稳定问题
41隐层神经元数目如何确定?
隐单元的数目与问题的要求、输入/输出单元的数目都有着直接关系,数目太多会导致学习时间过长、误差不一定最佳,也会导致容错性差、不能识别以前没有看到的样本,因此一定存在一个最佳的隐单元数。
有三个公式可用于选择最佳隐层神经元时的参考经验公式(回复里面无法编辑公式,如有需要请查相关资料)。
还有一种途径:
首先使隐单元的数目可变,或者放入足够多的隐单元,通过学习将那些不起作用的隐单元剔除,直到不可收缩为止。
同样,也可以在开始时放入比较少的神经元,学习到一定次数后,如果不成功再增加隐单元的数目,直到达到比较合理的隐单元数目为止。
(个人认为后面这种办法比经验公式可行,而且往往根据经验公式确定后还是需要通过后面的办法最后确定)
42.学习速率的选取
学习速率决定每一次循环中所产生的权值变化量。
大的学习速率可能导致系统的不稳定,但小的学习速率会导致学习时间较长,可能收敛速度很慢,不过能保证网络的误差值不跳出误差表明的低谷而最终趋于最小误差值。
所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。
学习速率的范围一般选取在0.01-0.7之间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 神经网络 基础 问题 整理