logo资料库

神经网络课程报告(BP网络).doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
神经网络课程认识
神经网络课程认识 本学期我们对人工神经网络进行了学习,在学习的过程中,我们对什么 是神经网络,神经网络的发展史,神经网络的特点和功能以及神经网络的应 用领域等多方面知识都有所了解。从开始的对人工神经网络的初步了解到最 后模型的建立,我们对人工神经网络的认识不断加深。神经网络作为自动控 制及智能控制专业的一个重要分支,掌握一些与其相关的基础知识对今后的 学习会有较大的帮助。 具体的人工神经网络中,我们主要学习了单层感知器、标准 BP 网络、 改进型的 BP 网络、自组织竞争神经网络以及离散型 Hopfield 网络(即 DHNN 网络)。其中,我们重点学习了标准型 BP 网络。在后面的编程训练中,我 们也以标准 BP 网络为模型,设计了一个较为简单的实际型编程问题。 接下来谈谈具体的学习情况: 在学习的过程中,我们首先学习了什么是人工神经网络。这是一个非 线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个 神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现 的行为却是极其丰富多彩的。以数学和物理的方法以及信息处理的角度对人 脑神经网络进行抽象,并建立某种简化的模型就是人工神经网络。人工神经 网络远不是人脑生物神经网络的真实写照,而只是对它的简化,抽象与模拟。 揭示人脑的奥妙不仅需要各学科的交叉和各领域专家的协作,还需要测试手 段的进一步发展。目前已经提出了上百种的神经网络模型,这种简化模型能 放映出人脑的许多基本特征。综合人工神经网络的来源,特点及各种解释,
可以简单的表述为:人工神经网络是一种旨在模仿人脑结构及其功能的脑式 智能信息处理系统。 神经网络的研究可以追溯到 19 世纪末期,其发展可分为启蒙时期,低 潮时期,复兴时期及新时期四个阶段。人工神经网络是基于对人脑组织结构, 活动机制的初步认识提出的一种新型信息处理体系。人工神经网络具有人脑 的一些基本功能,也有其自身的一些特点。结构特点:信息处理的并行性, 信息储存的分布性,信息处理单元的互连性,结构的可塑性。性能特点:高 度的非线性,良好的容错性和计算机的非精确性。能力特征:自学习,自组 织与自适应性。人工神经网络是借鉴于生物神经网络而发展起来的新型智能 信息处理系统,由于其结构上“仿造”了人脑的生物神经系统,因而其功能 上也具有了某种智能特点。由于神经网络具有分布储存信息和并行计算的性 能,因此它具有对外界刺激信息和输入模式进行联想记忆的能力。这种能力 是通过神经元之间的协同结构以及信息处理的集体行为而实现的。设计合理 的神经网络通过对系统输入输出样本对进行自动学习,能够以任意精度逼近 任意复杂的非线性映射,可以作为多维非线性函数的通用数学模型。神经网 络对外界输入样本具有很强的识别和分类能力,可以很好的解决对非线性曲 面的逼近,因此比传统的分类器具有更好的分类与识别能力。某些类型的神 经网络可以把待求的问题的可变参数设计为网络的状态,将目标函数设计为 网络的能量函数,经过动态演变过程达到稳定状态时对应的能量函数最小, 从而其稳定状态就是问题的最优解。同时,神经网络的知识抽取能力使其能 够在没有任何先验知识的情况下自动从输入数据中提取特征,发现规律,并 通过自组织过程构建网络,使其适应于表达所发现的规律。人的先验知识可
以大大提高神经网络的知识处理能力,两者相结合可以使神经网络只能进一 步提高。 神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。 目前,主要的研究工作集中在以下几个方面:(1)生物原型研究。从生理学、 心理学、解剖学、病理学等生物科学方面研究神经细胞、神经网络、神经系 统的生物原型结构及其功能机理。(2)建立理论模型。根据生物原型的研究, 建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化 学模型、数学模型等。(3)网络模型与算法研究。在理论模型研究的基础上 构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学 习算法的研究。这方面的工作也称为技术模型研究。(4)人工神经网络应用 系统。在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用 系统。神经网络的脑式智能信息处理特征与能力使其应用领域日益扩大,潜 力日趋明显,许多传统的信息处理方法无法解决的问题采用神经网络后都取 得了良好的效果,给我们带来了不少的方便。 前馈神经网络是本课程学习的重点,本课程介绍了常用前馈网络: BP (Back Propagation)神经网络,以及它的前身感知器、自适应线性单元和标准 BP 算法的几种改进方法。我们首先认识到前馈神经网络是神经网络中的一种 典型的分层结构,信息从输入层进入网络后逐层向前传递至输出层。根据前 馈网络中神经元转移函数、隐层数以及权值调整规则的不同,可以形成具有 各种功能特点的神经网络。除此之外,还对感知器和一些常用的算法进行了 学习,同时也认识到了某些算法的不足之处。这些对于今后神经网络的进一 步学习都是良好的基础。
此外,对于 SOFM 网络和离散型反馈网络 DHNN,我们也进行了一 些学习,主要侧重于相关网络模型的概念、工作原理和算法实现,但时间所 限,学习得并不深入。 通过本课程的学习,我们认识到神经网络技术在各个领域的广泛应用, 作为一名自动化专业的学生,我们更应该掌握这门技术,并将其运用到今后 的工作当中,用以提高智能控制系统的效率与质量。神经网络同常用的 PID 控制、模糊控制等经典算法一样,是一门实际应用价值很高的工程类技术实 现手段。我们也应该学会对模型的建立、优化、训练,使人工神经网络技术 更好的为我们服务。 神经网络编程作业: 我们的题目是:利用 BP 网络,实现一些简单函数的模拟,包括 e x  等等。输入样本,进行若干次训练,教师信号为期望函数的理想输出值。将 y 1 x , y 每一次训练的输出层输出值与理想值进行比较,并根据结果按照公式对隐层 权值矩阵和输出层全职矩阵进行权值调整。进行若干次训练,当达到预设的 精度时,停止训练;当一直没有达到预设精度时,在预设训练次数达到时自 动停止训练。 为了方便地能够得到程序输出图像,我们选择 MATLAB 进行编程。同时, 为了简化起见,我们考虑只有一个隐层的标准 BP 网络,由于我们自身能力 以及时间所限,我们并未改进 BP 算法,导致最后的运算结果可能出现较大 的偏差,敬请老师谅解。 以下为程序代码:
主函数(main.m): clear all yangben=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:e for c=1:number for k=1:h d(k)=b(c);%获得期望输出 end for i=1:f x(i)=a(c);%获得输入 end for j=1:g net=0; for i=1:f net=net+x(i)*v(i,j);%第 j 个隐层节点的净输入 end y(j)=1/(1+exp(-net));%单极性 sigmiod 函数 end for k=1:h net=0; for j=1:g net=net+y(j)*w(j,k); end o(k)=1/(1+exp(-net)); end zhongjianwucha=0; for k=1:h zhongjianwucha=zhongjianwucha+(d(k)-o(k))^2;%第一组训练后的误差计算 end
errorp(c)=0.5*zhongjianwucha;% for k=1:h piandao1(k)=(d(k)-o(k))*o(k)*(1-o(k));%输出层误差偏导 end for j=1:g tem=0; for k=1:h tem=tem+piandao1(k)*w(j,k);% end piandao2(j)=tem*y(j)*(1-y(j));%隐层偏导 end for j=1:g for k=1:h dw(j,k)=n*piandao1(k)*y(j);%权值 w 的调整 w(j,k)=w(j,k)+dw(j,k); end end for i=1:f for j=1:g dv(i,j)=n*piandao2(j)*x(i);%%权值 v 的调整 v(i,j)=v(i,j)+dv(i,j); end end end %一次 BP 训练结束 temp=0; for i=1:number temp=temp+errorp(i)*errorp(i);%误差求和 end;
error(count)=sqrt(temp/number);%求精度 if(error(count)
分享到:
收藏