第一篇:神经网络心得[定稿]
人工神经网络学习心得
时间如白马过隙,很快八周的人工神经网络学习即将结束,仿佛昨天才刚刚开始学习这门课程,在这段时间的学习中,我有起初对神经网络的不了解到现在的熟悉和掌握,这其中的变化,是我知识提高的过程。我在这个过程中有一些自己的体会和感想。
我是一名学习控制科学和工程的研究生,起初对于神经网络的认识很肤浅,由于我相应知识的欠缺,想要理解神经网络的结构会很不容易。在开始的几节课中,老师给我们讲了神经网络的发展史、结构和原理,当时感觉有压力、紧张。因为我感觉和生物的神经学差不多,一开始接触觉得它不是一门智能控制学,而是一门生物学,所以只能慢慢学习和理解,最终完成课程的学习。虽然相比于其他学过的课程,我对这门学科的了解稍微逊色点,但我还不是一个害怕困难的人,越是困难我越是会迎头前进的,不会倒下,去努力掌握这些知识。
接下来的几周,是老师的授课过程,说实话老师讲的论文我听的不太懂,讲的软件的应用也是一知半解……有种痛苦的感觉,好像什么也没学到,问了其他同学,他们也有同样的感觉,哦,原来都一样啊,没事,那就继续坚持吧……
过了这个彷徨期,该是呐喊的时候了,该写期末作业了,开始做题的时候还挺紧张,害怕题很难做,找了很多资料,照葫芦画瓢,硬着头皮写,写完了之后有一点小小的成就感,我终于给做出来了,可当时我们还是不知道如RBF网络和BP网络怎么应用,只是有那么点熟悉,有那么点感觉。最重要的时刻到了,在课堂中老师提的问题,我显得是那么生疏,满脸的惆怅,对问题不知所措,迷茫与疲惫缠绕着我的身心。每次上课之前我都要花上一段时间去预习课程内容,但是每次看的都是一脸迷茫,一知半解。老师所说的每一句话,我要想半天才会明白过来。这事我猜知道,基础是多么的重要,而且我知道学习知识最重要的是要学会应用和实践。不然就只能只上谈兵,但是一到应用我就不知从何下手。因此,我知道我还有很长的路要走。
其中的辛酸与乐趣大概也只有一块学习的学友们了解。在这近两个月中我们体会到了坚持的力量。遇到问题,不能退缩,只能前进。坚持就是胜利。问题只有在不断的思考和学习中才能解决。同时,也能是自己得到提高。
经过几周的的学习我对神经网络的理解能力明显有所提高。在神经网络中我们可以用跳跃性的思维去思考问题,这锻炼了我们的跨越式思维,提高了我们的能力,增强了我们的自信心,在人生道路上选择的关键时刻起了很大的作用,让我们明白了独立思考,开阔眼界,在科研方面所发挥的重要作用,使我们“学以致用,终生受益。
在此,我们要感谢授课的李晓强老师,谢谢李老师在这近两个月来对我们的关心。通过这八周的学习,锻炼了我的能力;增加了对人工神经网络知识的了解;提高了创新意识和解决问题的能力。
第二篇:神经网络应用
神经网络是新技术领域中的一个时尚词汇。很多人听过这个词,但很少人真正明白它是什么。本文的目的是介绍所有关于神经网络的基本包括它的功能、一般结构、相关术语、类型及其应用。
“神经网络”这个词实际是来自于生物学,而我们所指的神经网络正确的名称应该是“人工神经网络(ANNs)”。在本文,我会同时使用这两个互换的术语。
一个真正的神经网络是由数个至数十亿个被称为神经元的细胞(组成我们大脑的微小细胞)所组成,它们以不同方式连接而型成网络。人工神经网络就是尝试模拟这种生物学上的体系结构及其操作。在这里有一个难题:我们对生物学上的神经网络知道的不多!因此,不同类型之间的神经网络体系结构有很大的不同,我们所知道的只是神经元基本的结构。
The neuron
虽然已经确认在我们的大脑中有大约50至500种不同的神经元,但它们大部份都是基于基本神经元的特别细胞。基本神经元包含有synapses、soma、axon及dendrites。Synapses负责神经元之间的连接,它们不是直接物理上连接的,而是它们之间有一个很小的空隙允许电子讯号从一个神经元跳到另一个神经元。然后这些电子讯号会交给soma处理及以其内部电子讯号将处理结果传递给axon。而axon会将这些讯号分发给dendrites。最后,dendrites带着这些讯号再交给其它的synapses,再继续下一个循环。
如同生物学上的基本神经元,人工的神经网络也有基本的神经元。每个神经元有特定数量的输入,也会为每个神经元设定权重(weight)。权重是对所输入的资料的重要性的一个指标。然后,神经元会计算出权重合计值(net value),而权重合计值就是将所有输入乘以它们的权重的合计。每个神经元都有它们各自的临界值(threshold),而当权重合计值大于临界值时,神经元会输出1。相反,则输出0。最后,输出会被传送给与该神经元连接的其它神经元继续剩余的计算。
Learning
正如上述所写,问题的核心是权重及临界值是该如何设定的呢?世界上有很多不同的训练方式,就如网络类型一样多。但有些比较出名的包括back-propagation, delta rule及Kohonen训练模式。
由于结构体系的不同,训练的规则也不相同,但大部份的规则可以被分为二大类别它们可以被分为分类式或联想式。分类式网络可以接受一组数,然后将其分类。例如ONR程序接受一个数字的影象而输出这个数字。或者PPDA32程序接受一个坐标而将它分类成A类或B类(类别是由所提供的训练决定的)。更多实际用途可以看Applications in the Military中的军事雷达,该雷达可以分别出车辆或树。
联想模式接受一组数而输出另一组。例如HIR程序接受一个„脏‟图像而输出一个它所学过而最接近的一个图像。联想模式更可应用于复杂的应用程序,如签名、面部、指纹识别等。
The Ups and Downs of Neural Networks
神经网络在这个领域中有很多优点,使得它越来越流行。它在类型分类/识别方面非常出色。神经网络可以处理例外及不正常的输入数据,这对于很多系统都很重要(例如雷达及声波定位系统)。很多神经网络都是模仿生物神经网络的,即是他们仿照大脑的运作方式工作。神经网络也得助于神经系统科学的发展,使它可以像人类一样准确地辨别物件而有电脑的速度!前途是光明的,但现在...是的,神经网络也有些不好的地方。这通常都是因为缺乏足够强大的硬件。神经网络的力量源自于以并行方式处理资讯,即是同时处理多项数据。因此,要一个串行的机器模拟并行处理是非常耗时的。
神经网络的另一个问题是对某一个问题构建网络所定义的条件不足-有太多因素需要考虑:训练的算法、体系结构、每层的神经元个数、有多少层、数据的表现等,还有其它更多因素。因此,随着时间越来越重要,大部份公司不可能负担重复的开发神经网络去有效地解决问题。
NN 神经网络,Neural Network
ANNs 人工神经网络,Artificial Neural Networks
neurons 神经元
synapses 神经键
self-organizing networks 自我调整网络
networks modelling thermodynamic properties 热动态性网络模型
网格算法我没听说过
好像只有网格计算这个词
网格计算是伴随着互联网技术而迅速发展起来的,专门针对复杂科学计算的新型计算模式。这种计算模式是利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算是由成千上万个“节点”组成的“一张网格”,所以这种计算方式叫网格计算。这样组织起来的“虚拟的超级计算机”有两个优势,一个是数据处理能力超强;另一个是能充分利用网上的闲置处理能力。简单地讲,网格是把整个网络整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。
第三篇:BP神经网络实验报告
BP神经网络实验报告
一、实验目的1、熟悉MATLAB中神经网络工具箱的使用方法;
2、通过在MATLAB下面编程实现BP网络逼近标准正弦函数,来加深对BP网络的了解和认识,理解信号的正向传播和误差的反向传递过程。
二、实验原理
由于传统的感知器和线性神经网络有自身无法克服的缺陷,它们都不能解决线性不可分问题,因此在实际应用过程中受到了限制。而BP网络却拥有良好的繁泛化能力、容错能力以及非线性映射能力。因此成为应用最为广泛的一种神经网络。
BP算法的基本思想是把学习过程分为两个阶段:第一阶段是信号的正向传播过程;输入信息通过输入层、隐层逐层处理并计算每个单元的实际输出值;第二阶段是误差的反向传递过程;若在输入层未能得到期望的输出值,则逐层递归的计算实际输出和期望输出的差值(即误差),以便根据此差值调节权值。这种过程不断迭代,最后使得信号误差达到允许或规定的范围之内。
基于BP算法的多层前馈型网络模型的拓扑结构如上图所示。
BP算法的数学描述:三层BP前馈网络的数学模型如上图所示。三层前馈网中,输入向量为:;隐层输入向量为:;输出层输出向量为:;期望输出向量为:。输入层到隐层之间的权值矩阵用V表示,其中列向量为隐层第j个神经元对应的权向量;隐层到输出层之间的权值矩阵用W表示,其中列向量为输出层第k个神经元对应的权向量。
下面分析各层信号之间的数学关系。
对于输出层,有
对于隐层,有
以上两式中,转移函数f(x)均为单极性Sigmoid函数:
f(x)具有连续、可导的特点,且有
以上共同构成了三层前馈网了的数学模型。
当网络输出和期望输出不相等时,存在输出误差E如下:
将以上误差定义式展开至隐层,有
进一步展开至输入层,有
由上式可以看出,网络输入误差是两层权值W和V的函数,因此调整权值可以改变误差E。
显然,调整权值的原则是使误差不断的减小,因此应使权值的调整量与误差的负梯度成正比,即:
式中负号表示梯度下降,常数表示比例系数,在训练中反映了学习速率。
容易看出,BP学习算法中,各层权值调整公式形式上都是一样的,均有3个因素决定,即:学习速率、本层误差信号和本层输入信号X/Y。其中输出层误差信号同网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有关,是从输出层开始逐层反传过来的。
三、程序
clc
clear
all
k=1;
n=10;
P=[-1:0.05:1];
T=sin(k*pi*P);
plot(P,T,'-');
title('要逼近的非线性函数');
xlabel('输入向量');
ylabel('非线性函数目标输出向量');
net=newff(minmax(P),[n,1],{'tansig','purelin'},'trainlm');
y1=sim(net,P);
net.trainParam.epochs=50;
net.trainParam.goal=0.01;
net=train(net,P,T);
y2=sim(net,P);
figure;
plot(P,T,'-',P,y1,'--',P,y2,'*');
title('训练前后的网络仿真结果对比');
xlabel('输入向量');
ylabel('输出向量');
legend('目标函数输出向量','未训练BP网络输出','已训练BP网络输出');
仿真结果如下图:
由仿真结果图可以看出,未经训练的BP网络输出与目标函数差距很大,逼近效果不理想,而对BP网络训练之后的输出可以较精确的逼近目标函数,并且BP网络的训练迭代次数仅约1.2次,网络的输出目标误差就达到了精度要求,收敛速度很快。函数逼近效果、网络训练的收敛速度与原始非线性函数的频率、BP网络隐含层单元神经元的数目以及BP网络训练函数有关。
四、实验结论
通过编程实现使用BP网络对函数进行逼近,对BP网络的信号和误差传递的原理以及隐层、输出层权值调整的规则有了充分的理解和认识。
BP网络是一个强大的工具,它是应用最为广泛的网络。用于文字识别、模式分类、文字到声音的转换、图像压缩、决策支持等。
但是,通过实验看出,它还是存在一定的不足。由于本实验中采用的学习率是固定不变的,从而使得在函数逼近的时候在有些地方出现了偏离,如果能自适应的调整学习率,使网络在学习初期具有较大的学习率,以快速逼近函数,当已经逼近理想输出时再使用较小的学习率,来更加精准的去逼近函数,这样会得到更好的逼近效果和更小的错误率。
另外,BP网络还具有收敛速度慢、容易陷入局部极小值的问题。这些问题通过对标准BP算法的改进能得到一定程度的解决。
第四篇:BP神经网络优缺点
多层前向BP网络是目前应用最多的一种神经网络形式, 但它也不是非常完美的, 为了更好的理解应用神经网络进行问题求解, 这里对它的优缺点展开讨论: 多层前向BP网络的优点:
①网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题;
②网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力; ③网络具有一定的推广、概括能力。多层前向BP网络的问题:
①BP算法的学习速度很慢,其原因主要有:
a 由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,必然会出现“锯齿形现象”,这使得BP算法低效;
b 存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;
c 为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。
②网络训练失败的可能性较大,其原因有:
a 从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;
b 网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。
③难以解决应用问题的实例规模和网络规模间的矛盾。这涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题;
④网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。为此,有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题;
⑤新加入的样本要影响已学习成功的网络,而且刻画每个输入样本的特征的数目也必须相同; ⑥网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。优点——
神经网络有很强的非线性拟合能力,可映射任意复杂的非线性关系,而且学习规则简单,便于计算机实现。具有很强的鲁棒性、记忆能力、非线性映射能力以及强大的自学习能力,因此有很大的应用市场。
缺点——
(1)最严重的问题是没能力来解释自己的推理过程和推理依据。
(2)不能向用户提出必要的询问,而且当数据不充分的时候,神经网络就无法进行工作。
(3)把一切问题的特征都变为数字,把一切推理都变为数值计算,其结果势必是丢失信息。
(4)理论和学习算法还有待于进一步完善和提高。
第五篇:自组织竞争神经网络
自组织神经网络简介
神经网络 2010-01-25 20:09:15 阅读84 评论0 字号:大中小
自组织神经网络SOM(self-organization mapping net)是基于无监督学习方法的神经网络的一种重要类型。自组织映射网络理论最早是由芬兰赫尔辛基理工大学Kohen于1981年提出的。此后,伴随着神经网络在20世纪80年代中
后期的迅速发展,自组织映射理论及其应用也有了长足的进步。
自组织神经网络是神经网络最富有魅力的研究领域之一,它能够通过其输入样本学会检测其规律性和输入样本相互之间的关系,并且根据这些输入样本的信息自适应调整网络,使网络以后的响应与输入样本相适应。竞争型神经网络的神经元通过输入信息能够识别成组的相似输入向量;自组织映射神经网络通过学习同样能够识别成组的相似输入向量,使那些网络层中彼此靠得很近的神经元对相似的输入向量产生响应。与竞争型神经网络不同的是,自组织映射神经网络不但能学习输入向量的分布情况,还可以学习输入向量的拓扑结构,其单个神经元对模式分类不起决定性作用,而要靠多个神经元的协同作用才能完成模式分类。学习向量量化LVQ(learning vector quantization)是一种用于训练竞争层的有监督学习(supervised learning)方法。竞争层神经网络可以自动学习对输入向量模式的分类,但是竞争层进行的分类只取决于输入向量之间的距离,当两个输入向量非常接近时,竞争层就可能把它们归为一类。在竞争层的设计中没有这样的机制,即严格按地区判断任意两个输入向量是属于同一类还是属于不同类。而对于LVQ网络用户指定目标分类结果,网络可以通过监督学习,完成对
输入向量模式的准确分类。
MATLAB的神经网络工具箱实现竞争型神经网络
神经网络 2010-01-25 12:22:49 阅读32 评论0 字号:大中小
%竞争型神经网络具有明显分类特征的模式分类。其MATLAB仿真程序设计主
要包括:
%(1)创建竞争型神经网络。首先根据给定的问题确定训练样本的输入向量,当不足以区分各类模式时,应想办法增加特征值;其次根据模式分类数确定神经
元的数目。
%(2)训练网络。训练最大次数的默认值为100,当训练结果不能满足分类的要求时,可尝试增加训练的最大次数。
%(3)以测试样本进行仿真。
%两类模式分类的matlab程序设计
%Example71Tr
clear all
%定义输入向量
p=[0 0 0 1 1 1-1-1-1;0 1-1 0 1-1 0 1-1;1 1 10 10 1 1 1 10 1];
%创建竞争型神经网络
net=newc([-1 1;-1 1;1 10], 2);
%训练神经网络
net=train(net,p);
%存储训练好的神经网络
save net71 net
%Example71Sim
clear all
%定义待测试的样本输入向量
p=[0 0 0 1 1 1-1-1-1;0 1-1 0 1-1 0 1-1;1 1 10 10 1 1 1 10 1];
%加载训练好的神经网络
load net71 net;
%网络仿真
y=sim(net,p)
yc=vec2ind(y)%输出仿真结果
MATLAB的神经网络工具箱实现竞争型神经网络
(一)神经网络 2010-01-25 12:24:21 阅读22 评论0 字号:大中小
%%以竞争型神经网络完成三类模式的分类。
%Example72Tr
clear all;
%定义输入向量
p=[-0.1961 0.1961 0.9806 0.9806-0.5812-0.8137;0.9806 0.9806 0.1961
-0.1961-0.8137-0.5812];
%创建竞争型神经网络
net=newc([-1 1;-1 1],3);
%训练神经网络
net=train(net,p);
%存储训练后的神经网络
save net72 net;
%Example72Sim
clear all;
%定义待测试的样本输入向量
p=[-0.1961 0.1961 0.9806 0.9806-0.5812-0.8137;0.9806 0.9806 0.1961
-0.1961-0.8137-0.5812];
%加载训练好的神经网络
load net72 net;
%网络仿真
y=sim(net,p);
yc=vec2ind(y)%输出仿真结果
MATLAB的神经网络工具箱实现竞争型神经网络
(二)神经网络 2010-01-25 12:25:57 阅读20 评论0 字号:大中小
%%以竞争型神经网络完成四类模式的分类。
%Example73Tr
clear all;
%定义输入向量
%p=[5.2 8 8.2 5.8;7.3 8 5.8 9.7];
p=[1 8 1 1;1 8 15 21];
%创建竞争型神经网络
net=newc([0 10;0 25],4);
%训练神经网络
net=train(net,p);
%存储训练后的神经网络
save net72 net;
%Example72Sim
clear all;
%定义待测试的样本输入向量
%p=[5.2 8 8.2 5.8;7.3 8 5.8 9.7];
p=[1 8 1 1;1 8 15 21];
%加载训练好的神经网络
load net72 net;
%网络仿真
y=sim(net,p);
yc=vec2ind(y)%输出仿真结果