当前位置:文档之家› 神经网络课程报告

神经网络课程报告

神经网络课程认识本学期我们对人工神经网络进行了学习,在学习的过程中,我们对什么是神经网络,神经网络的发展史,神经网络的特点和功能以及神经网络的应用领域等多方面知识都有所了解。

从开始的对人工神经网络的初步了解到最后模型的建立,我们对人工神经网络的认识不断加深。

神经网络作为自动控制及智能控制专业的一个重要分支,掌握一些与其相关的基础知识对今后的学习会有较大的帮助。

具体的人工神经网络中,我们主要学习了单层感知器、标准BP网络、改进型的BP网络、自组织竞争神经网络以及离散型Hopfield网络(即DHNN 网络)。

其中,我们重点学习了标准型BP网络。

在后面的编程训练中,我们也以标准BP网络为模型,设计了一个较为简单的实际型编程问题。

接下来谈谈具体的学习情况:在学习的过程中,我们首先学习了什么是人工神经网络。

这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。

虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。

以数学和物理的方法以及信息处理的角度对人脑神经网络进行抽象,并建立某种简化的模型就是人工神经网络。

人工神经网络远不是人脑生物神经网络的真实写照,而只是对它的简化,抽象与模拟。

揭示人脑的奥妙不仅需要各学科的交叉和各领域专家的协作,还需要测试手段的进一步发展。

目前已经提出了上百种的神经网络模型,这种简化模型能放映出人脑的许多基本特征。

综合人工神经网络的来源,特点及各种解释,可以简单的表述为:人工神经网络是一种旨在模仿人脑结构及其功能的脑式智能信息处理系统。

神经网络的研究可以追溯到19世纪末期,其发展可分为启蒙时期,低潮时期,复兴时期及新时期四个阶段。

人工神经网络是基于对人脑组织结构,活动机制的初步认识提出的一种新型信息处理体系。

人工神经网络具有人脑的一些基本功能,也有其自身的一些特点。

结构特点:信息处理的并行性,信息储存的分布性,信息处理单元的互连性,结构的可塑性。

性能特点:高度的非线性,良好的容错性和计算机的非精确性。

能力特征:自学习,自组织与自适应性。

人工神经网络是借鉴于生物神经网络而发展起来的新型智能信息处理系统,由于其结构上“仿造”了人脑的生物神经系统,因而其功能上也具有了某种智能特点。

由于神经网络具有分布储存信息和并行计算的性能,因此它具有对外界刺激信息和输入模式进行联想记忆的能力。

这种能力是通过神经元之间的协同结构以及信息处理的集体行为而实现的。

设计合理的神经网络通过对系统输入输出样本对进行自动学习,能够以任意精度逼近任意复杂的非线性映射,可以作为多维非线性函数的通用数学模型。

神经网络对外界输入样本具有很强的识别和分类能力,可以很好的解决对非线性曲面的逼近,因此比传统的分类器具有更好的分类与识别能力。

某些类型的神经网络可以把待求的问题的可变参数设计为网络的状态,将目标函数设计为网络的能量函数,经过动态演变过程达到稳定状态时对应的能量函数最小,从而其稳定状态就是问题的最优解。

同时,神经网络的知识抽取能力使其能够在没有任何先验知识的情况下自动从输入数据中提取特征,发现规律,并通过自组织过程构建网络,使其适应于表达所发现的规律。

人的先验知识可以大大提高神经网络的知识处理能力,两者相结合可以使神经网络只能进一步提高。

神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。

目前,主要的研究工作集中在以下几个方面:(1)生物原型研究。

从生理学、心理学、解剖学、病理学等生物科学方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。

(2)建立理论模型。

根据生物原型的研究,建立神经元、神经网络的理论模型。

其中包括概念模型、知识模型、物理化学模型、数学模型等。

(3)网络模型与算法研究。

在理论模型研究的基础上构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。

这方面的工作也称为技术模型研究。

(4)人工神经网络应用系统。

在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统。

神经网络的脑式智能信息处理特征与能力使其应用领域日益扩大,潜力日趋明显,许多传统的信息处理方法无法解决的问题采用神经网络后都取得了良好的效果,给我们带来了不少的方便。

前馈神经网络是本课程学习的重点,本课程介绍了常用前馈网络: BP (Back Propagation)神经网络,以及它的前身感知器、自适应线性单元和标准BP算法的几种改进方法。

我们首先认识到前馈神经网络是神经网络中的一种典型的分层结构,信息从输入层进入网络后逐层向前传递至输出层。

根据前馈网络中神经元转移函数、隐层数以及权值调整规则的不同,可以形成具有各种功能特点的神经网络。

除此之外,还对感知器和一些常用的算法进行了学习,同时也认识到了某些算法的不足之处。

这些对于今后神经网络的进一步学习都是良好的基础。

此外,对于SOFM 网络和离散型反馈网络DHNN ,我们也进行了一些学习,主要侧重于相关网络模型的概念、工作原理和算法实现,但时间所限,学习得并不深入。

通过本课程的学习,我们认识到神经网络技术在各个领域的广泛应用,作为一名自动化专业的学生,我们更应该掌握这门技术,并将其运用到今后的工作当中,用以提高智能控制系统的效率与质量。

神经网络同常用的PID 控制、模糊控制等经典算法一样,是一门实际应用价值很高的工程类技术实现手段。

我们也应该学会对模型的建立、优化、训练,使人工神经网络技术更好的为我们服务。

神经网络编程作业:我们的题目是:利用BP 网络,实现一些简单函数的模拟,包括x y 1=,e xy -=等等。

输入样本,进行若干次训练,教师信号为期望函数的理想输出值。

将每一次训练的输出层输出值与理想值进行比较,并根据结果按照公式对隐层权值矩阵和输出层全职矩阵进行权值调整。

进行若干次训练,当达到预设的精度时,停止训练;当一直没有达到预设精度时,在预设训练次数达到时自动停止训练。

为了方便地能够得到程序输出图像,我们选择MATLAB 进行编程。

同时,为了简化起见,我们考虑只有一个隐层的标准BP 网络,由于我们自身能力以及时间所限,我们并未改进BP 算法,导致最后的运算结果可能出现较大的偏差,敬请老师谅解。

以下为程序代码:主函数(main.m):clear allyangben=1:0.1:5;%样本输入值input=1;%输入层节点output=1;%输出层节点yingchengjiedianshu=5;%隐层节点数目xunliancishu=1500;%最大训练次数jingdu=0.001;%预设精度xuexilv=0.005;%学习率jiaoshixinhao=yangben.^(-1);%期望输出函数bphanshu(yangben,jiaoshixinhao,xunliancishu,input,yingchengjiedianshu,output,jingdu,xuexil v);bphanshu(yangben,jiaoshixinhao,2000,2,6,output,0.005,0.02); %更改训练次数、输入层节点数、隐层节点数、预设精度、学习率等参数jiaoshixinhao=exp(-yangben);%更改期望输出函数bphanshu(yangben,jiaoshixinhao,xunliancishu,input,yingchengjiedianshu,output,jingdu,xuexil v);bphanshu(yangben,jiaoshixinhao,2000,2,6,output,0.005,0.02);%更改训练次数、输入层节点数、隐层节点数、预设精度、学习率等参数实现函数(bphanshu.m):入口参数分别是样本、教师信号、训练次数、输入层节点数、隐层节点数、输出层节点数、预设精度、预设学习率。

function bphanshu(a,b,e,f,g,h,m,n)number=length(a);error=zeros(1,e+1);v=rand(f,g);w=rand(g,h);error1=zeros(1,number);dw=zeros(g,h);dv=zeros(f,g);[a]=premnmx(a); %归一化处理for count=1:efor c=1:numberfor k=1:hd(k)=b(c);%获得期望输出endfor i=1:fx(i)=a(c);%获得输入endfor j=1:gnet=0;for i=1:fnet=net+x(i)*v(i,j);%第j个隐层节点的净输入endy(j)=1/(1+exp(-net));%单极性sigmiod函数endfor k=1:hnet=0;for j=1:gnet=net+y(j)*w(j,k);endo(k)=1/(1+exp(-net));endzhongjianwucha=0;for k=1:hzhongjianwucha=zhongjianwucha+(d(k)-o(k))^2;%第一组训练后的误差计算enderrorp(c)=0.5*zhongjianwucha;%for k=1:hpiandao1(k)=(d(k)-o(k))*o(k)*(1-o(k));%输出层误差偏导endfor j=1:gtem=0;for k=1:htem=tem+piandao1(k)*w(j,k);%endpiandao2(j)=tem*y(j)*(1-y(j));%隐层偏导endfor j=1:gfor k=1:hdw(j,k)=n*piandao1(k)*y(j);%权值w的调整w(j,k)=w(j,k)+dw(j,k);endendfor i=1:ffor j=1:gdv(i,j)=n*piandao2(j)*x(i);%%权值v的调整v(i,j)=v(i,j)+dv(i,j);endendend %一次BP训练结束temp=0;for i=1:numbertemp=temp+errorp(i)*errorp(i);%误差求和end;error(count)=sqrt(temp/number);%求精度if(error(count)<m) %达到精度,停止训练break;endenderror(e+1)=error(e);p=1:count-1;figure;plot(p,error(p));xlabel('训练次数');ylabel('误差');输出图像:1、输入层节点数为1、输出层节点数为1、隐层节点数为1,最大训练次数为1500,预设精度为0.001,预设学习率为0.005,期望函数为y2、输入层节点数为2、输出层节点数为1、隐层节点数为6,最大训练次数为2000,预设精度为0.005,预设学习率为0.02,期望函数为y3、输入层节点数为1、输出层节点数为1、隐层节点数为1,最大训练次数为1500,预设精度为0.001,预设学习率为0.005,期望函数为Arrayy4、输入层节点数为2、输出层节点数为1、隐层节点数为6,最大训练次数为2000,预设精度为0.005,预设学习率为0.02,期望函数为当count=42时,达到预设精度,退出训练。

相关主题