




已阅读5页,还剩80页未读, 继续免费阅读
(机械制造及其自动化专业论文)基于delphi人工神经网络模型库的开发及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于d e l p h i 人工神经网络模型库的开发及实现 摘要 本文从实际应用出发,对方案设计的有关理论进行探讨,采用口j 。视化 技术,而向对象编程思想,开发通用的人工神经网络模型库半台。 论文首先分析了课题的背景及研究意义,然后介绍了神经网络模型的 矢h 识体系结构、网络的学习规则、典型的学习算法以及神经网络模型巾各 要素之间的关系的基本知识,为后面具体网络模型的设计作理论基础。根 据课题的功能需求勾画系统的总体结构图以及功能模块i d e f o 图,并阐述 r 每个模块的作用、实现方法以及关键技术。 程序设计模块是本课题的核心部分。本文按照瀑布模型的思路来指导 该模块的设计。结合神经网络模型的拓扑结构和算法特点,将目前常用的 网络模犁分成四大类:前向神经网络、反馈神经网络、竞争神经网络和随 机神经网络,逐一进行设计,包括程序界面、算法流程及参数设置等,每 一类型自成一独立模块。对于每一类神经网络模型本文都给山,个应用实 例,生动具体地说明了神经网络模型的设计方法以及使用步骤,突出了其 方便实用易操作的特点。 关键词可视化,神经网络模型库,程序设计,算法 d e v e l o p m e n ta n dr e a l i z a t i o n o fa n nm o d e ls t o r e h o u s eb a s e do n d e l p h i a b s t r a c t t h i sp a p e rs t u d i e sr e l e v a n tt ot h e o r i e so fs c h e m ed e s i g na c c o r d i n gt o p r a c t i c ea p p l i c a t i o n i ta d o p t sv i s u a l i z a t i o nt e c h n o l o g ya n dt h o u g h t so ff a c i n g o b j e c t st od e v e l o pt h eg e n e r a la n n m o d e ls t o r e h o u s ep l a t f o r m t h i sp a p e rf i r s a ya n a l y z e si t sb a c k g r o u n da n dr e s e a r c hm e a n i n g ,t h e n i n t r o d u c e st h es i n g l ea n nm o d e l 、n e t w o r ks t u d y i n gr u l e s 、r u n n i n gp r i n c i p l e a n dt h e r e l a t i o n s h i po fn e u r a l n e t w o r ke l e m e n t s ,w h i c hg i v et h et h e o r y f o u n d a t i o no fn e t w o r km o d e ld e s i g n i td r a w ss t r u c t u r eo fs y s t e ma n di d e f 0 o ff u n c t i o n s ,a st h es a m et i m ei te x p a n d st h ea c t u a l i z e dm e t h o d so fe v e r yp a r t a n dr e l e v a n tk e yt e c h n o l o g y p r o g r a md e s i g ni st h ek e r n e lm o d u l e ,w h i c hd e s i g n e db yt h et h o u g h t so f w a t e r f a l lm o d e l s i nt h eb e g i n n i n gi td e s i g n se v e r ym o d e la tl a r g ei n c l u d i n gt h e f e e df o r w a r dn e u r a ln e t w o r k 、f e e d b a c kn e u r a ln e t w o r k 、c o m p e t i t i v en e u r a l n e t w o r ka n ds t o c h a s t i cn e u r a ln e t w o r k s f i n a l l yi tg i v e sa na c c o u n to fi t su s a g e a n da d v a n t a g ec i t i n ga l le x a m p l eo fm o d ei d e n t i f y k e yw o r d s v i s u a l i z a t i o n ,a n nm o d e ls t o r e h o u s e ,p r o g r a md e s i g n , a l g o r i t h m 2 1 1 课题背景 第一章绪论 一:十一世纪是科学技术大发展的世纪,是人类文明的新篇章。经过半个世纪的努 力探索,一门崭新的向人类自身大脑学习的新学科一人工神经网络( a r t i f i c i a l n e u r a ln e t w o r k ,a n n ) ,已经诞生并正在茁壮成长。它是当今世界关注的高科技热点, 并开始显示出美好的广阔应用前景。近二十年来,神经网络理论与实践有了引人注目 的进展,它再一次拓展了计算概念的内涵,使神经计算、进化计算成为新的学科,有 关神经网络的软件模拟也得到了广泛的应用。例如i n t e l 公司、i b m 公司、a t t 公f i _ i 和t t n c 公司等已取得了多项专利,并且已经有产品进入市场,被国防、企业和科研部 门选用,公众手中也拥有神经网络实用化的工具,其商业化令人鼓舞。 人工神经网络模型的研究早在5 0 年代末就开始了,其代表性的工作是计算机学家 f r o s e n b l a t t 和电机工程师b w i d r o w 等人丌发的单层神经网络“1 。1 9 5 7 年, r o s e n b l a t t 开始从事感知器( p e r c e p t r o n ) 的研究,并做成硬件,被认为是最早的可 以模拟动物和人脑的感知和学习功能的人工神经网络模型。随后,1 9 6 9 年美国麻省理 工学院的m m i n s k y 与s p a p e r t 合作出版了颇有影响的“p e r c e p t r o n s :a n i n t r o d u c t i o nt oc o m p u t a t i o n a lg e o m e t r y ”一书。3 ,他们对于感知器的结论是悲观 的,甚至认为是无科学价值而吉的,使得其后十几年内,人工神经网络这一领域的研 究一直处于低潮。但是在此期间仍有少数学者继续致力于神经网络的研究。如 s g r o s s b e r g 提出了自适应共振理论网络模型”“;t k o h o n e n 提出了自组织映射”; i a a n d e r s o n 等提出了b s b 模型”3 等。这些工作为人工神经网络模型研究的发展奠定 了理论基础。 神经网络研究第二次高潮到来的标志和揭开神经网络计算机研制序幕的是美国加 州工学院物理学家j o h nh o p f i e l d 于1 9 8 2 年和1 9 8 4 年在美国科学院院刊上发表的两 篇文章,j o h nh o p f i e l d 将能量函数引入对称、反馈的网络结构,丌拓了神经网络用 于联想记忆和优化计算的新途径”1 。与此同时,d e r u m e l h a r t ,g e h i n t o n r 和 j w i l l i a m s 等提出反向传播算法训练多层前馈网络,用以逼近期望的连续函数”“。3 。 这些重要的研究成果,重新唤起了人们对人工神经网络的研究热情,促进了各种网络 模型的不断出现,从9 0 年代初延续至今,有关人工神经网络的各方面理论研究与应用 研究仍如火如荼,方兴未艾。 目前对神经网络的研究主要包括神经网络基本理论研究、神经网络模型的研究、 神经网络学习算法的研究、神经网络的计算机模拟及硬件实现以及神经网络应片j 研究。 神经网络基本理论研究主要包括非线性动力学理论研究、神经网络的基本性能及能力 研究等。神经网络模型研究是目前人工神经网络研究的主要方面,日前为i 卜人们已设 计了许多不同的人工神经网络模型,归结起来主要有以下四大类神经网络模型1 :( 1 ) 前向( f e e df o r w a r d ) 网络模型,如单层感知器和多层感知器。( 2 ) 反馈( f e e db a c k ) 网络模型,如h o p f i e l d 网络,双向联想记忆网络等。 ( 3 ) 竞争网络模型,如a r 1 ( 自 适应共振理论) 。( 4 ) 随机网络模型,如b o l t z m a n 机。以上四种模型中,前向网络模 型是实际应用中使用最多的一种模型。神经网络学习算法研究是神经网络研究中的另 一个热门课题。与神经网络模型相对应,近年来已研究出许多的神经网络学习算法。 这些算法可分为两类:有监督( 导师) 学习和无监督( 导师) 学习。b p 是到臼前为止 最有影响的算法之一,它被用来训练多层前向神经网络。有关神经网络的应用研究, 是近年来在神经网络研究中成果最多、最为引人注目的领域。主要应用于模式识别, 现在已经扩展到控制、预测、组合优化等方面。 因此可以说神经网络的研究不管是理论还是应用,都得到了长足的发展,然而在 作者查阅的文献范围内,有关神经网络模型库的研究却很有限,虽然有一些基于某个 单一算法开发的通用模型库,如2 n s o f t 推出的l i n n e tp f 神经网络通用平台,它是基 于b p 算法开发的在预测领域的通用平台;还有一些是某两个算法的结合,如基于神经 网络的遗传算法进行通用模型库的开发,但还未有对整个神经网络模型进行概述的综 述性论文,也未有独立的运行平台。 1 2 课题意义 人工神经网络( a r t i f i c i a ln e u r a ln e t w o r k ,简称a n n ) 是2 0 世纪8 0 年代后 期迅速发展的人工智能技术,有人认为人们对它的研究不亚于二次世界大战期间对原 子弹研究的狂热,它广泛应用于模式识别、信号处理、控制系统、雷达、数据挖掘等 各种领域,是解决基于冯诺伊曼型计算机“瓶颈”问题的新途径。随着神经嘲络研究 的深入,新的模型不断出现,我们有必要将这些模型收集在一起,形成。个专门的库, 而且还能适应新模型的扩充。在神经网络应用实践中,人们编写了大量有针对性的模 拟程序,但是大多是在c 环境下编写的,可操作性、人机交互性与通用性较差;并且 在实际中,往往同一问题可以用不同的网络模型来求解,如果能提供相对统的软件 平台,那么也就能更容易地实现对不同网络模型的实际效能的评价。从实际工作中来 考虑,由于每更换一种网络模型,都必须重新编写程序,训练样本,那么势必将大大 影响工作效率,给工作带来不便。 在m a t l a b 环境下开发出来的神经网络工具箱n n t ,不仅要求研究人员懂得m a t l a b 语言,而且要熟练各种神经网络模型,掌握其算法流程,这对于初学者或未接触神经 网络的人以及不懂m a t l a b 的人来说,要想运用m a t l a b 的神经网络工具箱都是非常困 难的。并且n n t 不是独立的,其运行必须有m a t l a b 环境的支持,这对于长远及深入研 究神经网络都将带来不便。 因此,开发神经网络模型库软件具有重要的价值,它简化了神经网络应_ = j 步骤, 掩蔽了程序实现的复杂性,同时对于不同问题只要建立不同的样本数据,然后在程序 界面的参数设置中输入相应数据和相关变量即可,大大减轻了设计人员的工作量,缩 短设计计算的周期,增强程序的通用性,使工作人员能够从繁琐的编程中解脱出来, 可以集中精力去思考问题和解决问题;而且可以作为神经网络基础性研究的重要12 具, 专家系统中的独立模块,为神经网络开发平台的研制与应用打下基础,并为提山新的 学习机制作理论研究。 1 3 国内外研究现状 1 9 8 7 年6 月,在美国加州召开了首届国际神经网络学术会议,到会代表有1 6 0 0 人,宣告成立国际神经网络学会( i n n s ) 。一时间,有关神经网络机理、模型、算法、 特征分析,以及在各方面应用的学术论文,象雨后春笋般涌现。神经网络杂志和 i e e e 的神经网络杂志相继问世。各国在神经网络方面的投资逐渐增加,神经网络迅速 发展起来。近几年来,神经网络理论的研究与实现引起了美国、日本、中国及西欧 些国家的科学家、研究机构和企业界的普遍关注。并且各个学科的研究人员都想利用 人t 神经网络的特殊功能来解决本学科的难题,很多的工程项目都采用和正准备采刚 人工神经网络的解决方案。同时不同学科的科学工作者难在积极地联合起来进行各种 学术交流。美国i b m 、a t & t 、贝尔实验室、神经计算机公司、各高校、美国政府制定 了“神经、信息、行为科学”计划,投资5 5 亿美元作为第六代计算机的基础研究: 美国科学基会会、海军研究局和空军科学研究部三家投资一千万美元;美国国防部 d a r p a 认为n n “看来是解决机器智能的惟一希望这是项比原子弹工程更重要的技 术”投资四亿美元;r 本也提出了所谓的人类尖端科学计划,即第六代计算机研究计 划:法国提出了“尤罩卡”计划;德国的“欧洲防御”计划等等1 。 1 9 9 0 年在北京召丌首届中国神经网络学术大会,吹响了国内向人工神经网络研究 领域大规模进军的号角。经过各个国家和各个领域专家学者长期的艰辛探索,人工神 经网络已获得长足发展,其结构与功能逐步改善,运行机制渐趋成熟,应用领域h 益 扩大,在解决各行各业的难题中显示出巨大的潜力,取得了丰硕的成果。近年来,我 国“8 6 3 ”计划、攻关计划、“攀登”计划和国家自然科学基金等,都对神经网络的研 究给予了资助,吸引了大量的优秀青年人j 从事神经网络领域的研究工作,促进我困 在这个领域取得世界上的领先地位。 从1 9 9 0 年到2 0 0 4 年,中国历届神经网络学术大会的论文发表的研究结果分析表 明”3 : ( 1 ) 人工神经网络的应用呈普及趋势越来越多的工程技术人员加入到人工神经 网络的应用研究行列,但是,大部分应用类论文属于验证性论文,即用人工神经网络 方法完成任务并与其他方法进行对比,这类应用并没有显现出人工神经网络不可替代 的优越性。 ( 2 ) 人工神经网络的模型原理及学习算法研究无重大进展目前采用的人工神经 元模型只能模拟生物神经元的神经电位脉冲电路系统,而对同样起重要作用的化学递 质系统则没有涉及。从学习算法来看,大多数算法具有学新忘i h 的通病。因此有必要 进一步研究更有效的学习算法,使神经网络具有积累知识的能力,能够在接受新信息 的同时,不会遗忘原有的信息。 ( 3 ) 人工神经网络的些重要理论分析课题没有获得突破性进展例如,如何 确定网络容量,如何选择隐含层节点数,如何设计初始权值以及如何避免局部极值等 等。长期以来,不少学者对上述问题进行了大量的研究,然而到目前为止没有一个闷 题找到了公认的答案。 4 ( 4 ) 人工神经网络硬件实现研究呈递减趋势迄今为止,关于人工神经网络硬 件实现方匠的研究论文所占比例很小,且呈递减趋势。人工神经删络技术还停留在利 用v o nn e u m a n n 计算机进行模拟仿真的起步阶段。 ( 5 ) 人工神经网络构件化目前的研究与应用习惯于将人工神经网络看作一种 具有高度并行互联结构和自适应处理能力的构件,用作实际系统中不易进行数学建模 的环节或子系统。而将人工神经网络作为一种智能体系结构方案的研究成果则甚少, 即从研究方向上未将人工神经网络研究向进一步模仿和接近生物神经系统高级智能活 动方面拓展。 神经网络的进一步发展应包括隐单元个数的确定,高效学习算法的设计,以及将 生物神经网络更多的实验结果和理论模型纳入人工神经网络模型的设计。这些方法的 研究有望进一步拓广神经网络方法的应用领域。 1 4 本文的主要工作 神经网络的研究可以分为理论研究和应用研究两大方面。理论研究可分为以下两 类:1 ) 利用神经生理与认知科学研究人类思维及智能机理。2 ) 利用神经基础理论的 研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究 网络算法和性能。应用研究主要包括1 ) 神经网络的软件模拟和硬件实现的研究:3 ) 神经网络在各个领域中应用的研究,如系统辨识、信号处理、优化组合、机器人控制 等。本文主要是在神经网络理论研究的基础上开发实用的网络模型库软件。 神经网络模型多种多样,在具体实施中,从最简单的感知器模型入手,采用 w in d o w s 环境下的d e l p h i 编程系统,采用可视化技术,突出面向对象的方法,实现各 功能模块。 具体的工作包括以下几个方面: 1 进行神经网络的理论学习,深入分析神经网络模型,掌握它们各自的优缺点 以及适用领域,在此基础上提出目标系统的功能模型、结构层次的划分等。 2 分析网络的拓扑结构,编写网络算法,并根据算法特点对神经网络模型归纳 分类,实现系统的各功能模块。 3 对神经网络模型进行仿真,获得总体上认识,熟悉定性学习理论的基本概念 和神经网络各参数的定性表示及其意义。 4 采用d e l p h i 7 0 面向对象的技术,搭建神经网络模型库可视化运行平台。 1 5 本章小结 本章首先论述了课题的背景,即神经网络模型的发展及其目前主要的研究方向; 在此基础上提出本课题的意义及其研究的必要性:然后对国内外研究现状进行简要综 述,最后从论文的实际出发,提出工作内容。 第二章神经网络模型库构建的理论基础 2 1 神经网络模型知识体系 神经网络模型不能直接和外界通讯,必须经过逻辑到数字和数字到逻辑的两次转 换,即在输入外界逻辑信息到神经网络时,要把输入样本转化为输入向量,网络输出 向量也必须转换成对应的样本后才能被外界识别和利用。神经网络知识处理的结构图 如图2 - 1 所示。 2 1 1 神经网络模型中各要素之间的作用关系 研究神经网络模型需要考虑其处理单元、连接模式、学习机制以及运行过程四个 方面。 1 ) 处理单元是用来接受输入,产生输出的一个高度抽象的仿生模型。特点是每个 单元可接受任意不同信号值的扇入连接,并且可有任意相同信号的扇出连接。每个单 元有一个激活函数( 可以为连续、间断) ,起扇入信号到扇出信号的映射作用。常见的 处理单元有输入单元、输出单元和对外界不可见的隐含单元。 2 ) 连接模式是不同神经网络所特有的,是构成网络的要素之一。表现为处理单元 之问是否存在连接以及连接的强度( 连接权值) 。 符号输出 囵 图2 - 1 神经网络知识处理系统的基本结构 f i 9 2 1t h es t r u c t u r eo f d i s p o s a ls y s t e mw i t hn e u r a ln e t w o r k 3 ) 学习机制体现在对连接权值的调节上。方式多种多样,可以概括为按一定规 则从环境或网络状态中获得信息,经适当处理,转换为权值和闽值的改变量,并对变 了权值和阈值的新网络,按同样规则继续调整,直至收敛。 4 ) 运行过程体现在处理单元状念的变化上,一般是输入信号到达输入单元后根据 激活函数和连接权值,由运行规则作用发生一系列的状态变化,最终达到网络的稳定 状念或有稳定输出为止。 2 1 2 神经网络模型的推理机制 神经网络模型与传统的基于逻辑符号操作的推理机制不同,它赋予了“推理”这 概念新的含义,神经网络的推理过程为一数值计算过程,它按照一定的算法,通过 神经网络所含的知识之间的关系,不断的在问题求解空间进行并行“搜索”( 计算) , 直至得出一个满意的解,此时便相应于一个稳定的神经网络输出。神经网络内部状念 演变的轨迹与推理过程相对应,神经网络状态演变的结束也就相应于推理过程的结束。 由于神经网络推理的并行数学计算过程取代了传统a i 符号处理中的匹配搜索、回溯等 过程,因而具有更高的推理效率。 在神经网络知识处理中,当问题求解的输入模式与训练实例集的某个实例的输入 模式相同时,神经网络经过推理得到的结果,就是与该训练实例相对应的输出模式, 当问题求解的输入模式与训练实例集中所有的实例的输入模式不完全相一致时,往往 也能得到推理结果,即得到与其最相近的训练实例的输入模式。这个特点表明了神经 网络在处理知识不全、不精确推理的就势:当问题求解的输入模式与训练实例集所有 的样本相差较远时,就不能等到推理结果,这时可以把这一实例作为新的训练样本, 经过学习调整系统权值,使神经网络获取新的知识,并储存在神经网络中,凶此系统 具有学习能力。 2 2 神经网络的学习规则 神经网络学习的实质是可变权值的动态调整的自适应过程,改变权值的规则称为 学习规则或学习算法。下面介绍4 个与本课题有关的神经网络学习规则:t t e b b 学习规 则、误差修正学习规则、随机学习规则和竞争学习规则。 1 h e b b 学习规则 h e b b 学习规则是最古老也是最著名的学习规则,是为了纪念神经心理学家 i i e b b ( 1 9 4 9 ) 而命名的。h e b b 学习规则用于调整神经网络的连接权值,可以概括为: ( 1 ) 如果一个连接两边的两个神经元被同时( 即同步) 激活,则该连接的能量就被 选择性的增加。 ( 2 ) 如果一个连接两边的两个神经元被异步激活,则该连接的能量就被有选择的削 弱或者消除。 l l e b b 学习规则的数学描述: 表示神经元。,到zr 的连接权值,。,和t 分别表示神经元j 和i 在一段时川内 的平均值,在学习步骤为n 时对连接权值的调整为 ( 月) 2 町( _ ( ”) 一x j ) ( x ,( ”) 一x ,) ( 2 1 ) 吁是正常数,它决定了在学习过程中从一个步骤进行到另一步骤的学习速率,称 其为学习速率。 公式( 2 1 ) 表示: ( 1 ) 如果神经元j 和i 活动充分时,即同时满足条件:x , x j 和xr x t 时,连接权 值”u 增强。 ( 2 ) 如果神经元j 活动充分( 即。, x ,) 而神经元i 活动不充分( 即x i x ,) 而神经元j 活动不充分( x , j 使 用难度较高,不利于快速开发和软件维护。基于d e l p h i 面向对象、可视化编程、编译 速度快、代码质量好、易学易用、功能强大,并能继承已有人员技术等综合考虑,我 们选择了d e l p h i 作为其开发工具。 3 5 关键技术及其实现 神经网络模型库是由许多模型组成的,我们将每个不同的模型抽象化,提取共同 的部分来进行程序的总体设计,即把每个网络模型的运行、实现过程看成一个“黑箱”, 考虑其外在表现的属性,然后再封装具体的网络模型,因此在模块的设计中主要考虑 以下问题:数据的输入输出、算法的编写、算法的调用以及代码的优化。 3 51 数据输入 数据的输入输出主要包括:样本数据的加载,网络模型的读入及保存,测试结果 的输出。 ( 1 ) 样本数据的加载:由于进行网络训练的样本数一般比较多,如果i 临时输入 比较费时,容易出错,也不便于以后处理,因此采用文本读入的方式,查找、修改样 本数据都比较方便。加载样本时,首先需要定义一个动态缓存数组b u f f m , h i ,i 割用 s e t l e n g t h 函数为数组分配内存空间,然后调用r e a d 0 过程将样本数据存入数组b u f f 中,最后按对应关系将b u f f 中的数值赋给变量i n p u t c o d e m ,n i 。 简要程序如下: v a r f :t e x t f il e ;已打开样本文件的文件变量 l i n e ,n u m ,i ,j ,k :i n t e g e r :ii n e 文件的行数,h u m 文件每行中数据的个 2 4 数 b u f f :a r r a yo fi n t e g e r : b e g i n a s s i g n f j l e ( f ,s f ) :将文件变量与要访问的某文件联系起来 w h i l en o te o f ( f ) d o w h i l en o ts e e k e o l n ( f ) d o b e g i n r e a d ( f ,b u f f n u m ) :n u m := n u m + l : e n d : r e a d l n ( f ) : f o ri :- 0t o1 i n e 一1d o f o rj := ot ok 一1d o i n p u t c o d e i + 1 j + 1 := b u f f i * k + j : e n d : 同时,对于样本数量不是太多或随机测试的情况,程序也提供了手动输入的方式 界面如图3 5 所示,增强了软件的灵活性及实用性。 图3 - 5 数据输入界面 f i g3 - 5 d a t u mi n p u ti n t e r f a c e ( 2 ) 网络模型的保存及读入:训练好的网络模型需要保存起来以便仿真时调 用。保存的过程即为写文件的过程,而调用模型文件为读入文件的过程。调用w r i t e l n ( ) 过程将用于表征网络的参数值写入特定的文件中,写入时要按一定的规则以免给读取 操作带来不便。简要程序如下: a s s i g n f i l e ( w f ,s t r ) ; r e w r i t e ( w f ) ; w r i t e l n ( w f ,x x x 神经元网络) : w r i t e n ( w f ,输入层:) : w r i t e l n ( w f ,n i ) : w r i t e l n ( w f ,输出层:) : w r i t e l n ( w f ,n o ) : f o ri := 1t on id o b e g i n s s :2 ”: f o rj := lt on od o s s := s s + f l o a t t o s t r ( w i j ) : w r i t e l n ( w f ,s s ) : e n d : 读入网络模型的过程与样本数据的加载过程相似,只是读取的行与赋给的变量不 同。在此不再 ( 3 ) 测试结果的输出:测试结果采用实时显示在可视化编辑区域的方法,这样 可以动态监测整个运行过程,也使得人机交互更加直观;同时也可以将结果很方便的 另行存储。在窗体界面上放置一个m e m o 控件,通过调用l i n e 特性的a d d 方法将结果 添加到m e m o 框中显示出来,调用该特性的s a v e t o f i l e 方法可以将结果保存到文件中, 以便打印或日后处理。简要程序如下: 显示结果 m e m 0 1 l i n e s a d d ( 样本+ i n t t o s t r ( k ) + 训练后的连接权值为:) i fs a v e d i a l 0 9 1 e x e c u t et h e n 保存结果 b e g i n 2 6 s s := s a v e d i a l o g l 。f i l e n a m e : m e m 0 1 l i n e s s a v e t o f i1 e ( s s ) e n d 3 5 2 算法的编写 为了用计算机解决某类问题,必须为该问题编制一个程序, 然而在编制程序之 前,需要知道问题的求解方法,这也就是通常所说的算法。编写高效最优的算法,不 仅能节省内存,加快运行速度,更为系统的整体开发带来高效率。在该程序设计过程 中,我们采用模块化思想来指导系统算法的编写。 模块可以看成是一种语法结构,该结构中许多相关的项被合成到一起,通常通过 提供一个显示的接口来限制对它们的内容的访问,而这些接口是访问模块的唯一方法, 模块中的项可以是变量和作用于这些变量的例程。每个网络模型的设计虽各不相同, 但也有其共性,它们的运行流程基本相同。因此在程序设计时可划分成以下模块:网 络初始化模块( 即输入层神经元初始化及网络整体参数设置) 、网络仿真模块( 解决样 本的输入、仿真程序及稳定的网络参数信息保存) 及网络测试模块( 解决测试结果的 输出及网络模型的调入) 。对于相同的就不需要再编写程序,只要设定好参数变量调用 即可。 模块中设有显示的初始化代码,例如上述的全局变量。在模块的初始化代码叶, 可以使用其他模块中的项,这样避免重复初始化以及检查循环的依赖性,在初始化时 将检测循环推迟到运行时。 3 5 3 算法的调用 算法的调用也就是解决“黑箱”的接口问题。在d e l p h i 中通过过程或函数都可 以实现。由于网络训练及仿真后的结果不是某一个具体的特征值,因此采用过程,把 程序分解成一个个自成一体的逻辑单元,以供随时调用,同时也使得程序结构清晰, 易于维护。每个网络模型的算法按其模型名称定义成过程名。比如b p 网络,那么它的 网络训练程序的过程名为b p t r a i n 0 ,仿真程序为b p s i m ( ) ,以此类推。 过程说明的一般形式为: p r o c e d u r e ( ( 形式参数表) ) ; ; 标识符就是用户所起的该过程名字;过程体为一个程序段,用来实现网络的训练 及仿真;形式参数表由若干个形式参数段组成,用于传递网络的特征参数,如精度, 步长等。形式参数段的说明如下: v a r , , : : 选用某个模型直接输入相对应的过程名即可。 3 5 4 代码的优化 编写代码时,如果只是简单的罗列开发语言代码,不进行优化处理就会使程序源 文件极其庞大,缺少灵活性,可读性也差,给以后的维护和升级工作带来困难。神经 网络模型库随着该领域技术的不断深入,新的网络模型也将不断出现,软件的健壮性、 可扩充性显得尤为重要;而且,在神经网络领域中,对- - d , 段代码的具体细节仔细设 计能使无法很好运行的系统在一段可以接受的时间内完成任务1 。为此,在程序设计 阶段,考虑代码的优化十分必要。由于该课题涉及的数学计算及矩阵理论方面的知识, 因此考虑以下几个方面的优化方法。 ( 1 ) 尽量使用3 2 位变量:在3 2 位代码中,3 2 位变量是默认处理格式;1 6 位变 量( w o r d ,s h o r t i n t ,w i d e c h a r ) 的运算会令处理器临时切换为1 6 位处理模式,冈而 需要双倍的处理时间;相较之下,8 位变量( b y t e ,c h a r ) 只要一i 与其它混用,却不 会太慢。如果实在需要多次使用一个8 或1 6 位变量,可以考虑把它临时转换成3 2 位 变量,用赋值语句:a d w o r d := a w o r d 实现。 ( 2 ) 算法的优化:在进行数值计算时,优化的算法,既可以缩短程序代码的行 数,也可以提高程序的执行速度。程序编写时采用循环和数组来优化算法。 ( 3 ) 使用函数:在同一个模块内,重复的功能,通常被函数或过程所取代,如 在同一模块内,要实现查询结果的屏幕输出和打印机输出,就可以先在函数中实现输 出功能,然后通过传递不同的设备参数,来调用函数实现所需要的输出,而不必分别 编程。 ( 4 ) 使用模块:在不同模块之间。有时也存在相同的功能代码,可以把实现这 些功能的函数存放在一个专用的模块文件中,并被其它源代码文件使用,而且,单元 文件中也可以定义公共变量,便于程序管理。 ( 5 ) 动态链接库:动态链接库在程序编译时,不被写到可执行文件中,可单独 发行,而且执行程序时,动态装入内存,是一种较好的程序复用技术。如在设计b p 刚络模型时就先编译了a r i t h m e t i c 、m a t r i x b a s e 两个d i i 文件。 3 5 5 面向对象可视化编程技术 经过多年的研究和发展,面向对象技术已经日趋成熟并且不断深入人心。作为面 向埘象技术的重要组成部分,面向对象的编程已经成为软件开发的新模式。传统的面 向过程语言,强调解决特定问题的算法,而面向对象编程则注重实现成为“对象”的 新数据类型,通过“类”来定义用户数据,使程序更容易重用、更可靠、软件开发周 期更短。 可视化编程技术,可以使编程工作变得轻松快捷,摆脱面向过程语言的许多细节, 而将主要精力集中在设计友好的界面和解决实际问题上。抽象的信息通过图形来显示, 可使用户更快地的看到更多的信息,并更容易理解信息。而交互能力提供了用户对信 息的操纵能力。可视化编程技术它的主要特点是:( 1 ) 交互性。用户可以方便地以交 互的方式管理和开发数据。( 2 ) 多维性。可以看到表示对象或事件的数据的多个属性 或变量,而数据可以按其每一维的值,将其分类、排序、组合和显示。( 3 ) 可视性。 可视化编程技术不仅有助于了解求解问题,而且也有助于了解算法本身。文献” 和“o3 在优化迭代过程中利用可视化技术观察算法的迭代轨迹,做到随时监控。目日i 许 多计算问题都离不开计算机对它进行仿真和辅助设计,在m a t l a b 环境下所丌发的人工 神经网络设计就是将传统的计算转向基于图形可视化的典范。 由于在神经网络模型库软件的设计中,组成库的每个模型的实现是其关键,而算 法又是使模型工作的核心,但从使用者的角度来看,他只关心其问题的求解结果,并 不在意其实现的细节或其特点。因此本文采用面向对象编程的可视化语言设计人工神 经| ) i ) 9 络的模型库,网络的节点数、样本对、测试样本对等数据输入采用文本框形式, 直接从界面上输入,增强了人机交互性。 3 6 本章小结 本章通过对整个系统的功能分析,给出系统功能的i d e f 0 图及结构图,并介绍了 系统的工作流程,详细阐述了系统设计的关键技术。 4 1 概述 第四章前向神经网络 在这种网络中,神经元分层排列,每层神经元只接收前一层的输入,无跨层连接 以及反馈连接。b p 网络就是这类最为典型的。图4 一l 所示的多层前向网络,由含有1 0 个神经元输入层、含有4 个神经元隐含层和含有2 个神经元的输出层所组成。 网络输入层中的每个源节点的激励模式( 输入向量) 单元组成了应用于第二层( 如 第一隐层) 中神经元( 计算节点) 的输入信号,第二层输出信号成为第三层的输入,其余 层类似。网络每一层的神经元只含有作为它们输入前一层的输出信号,网络输出层( 终 i 卜层) 神经元的输出信号组成了对网络中输入层( 起始层) 源节点产生的激励模式的全 部响应。即信号从输入层输入,经隐层传给输出层,由输出层得到输出信号。 原节点输入层神经元隐舍层神经元输出层 图4 - 1 多层前向网络结构图 f i g 4 1s t r u c t u r a ld r a w i n go f f e e d f o r w a r d n e t w o r k 通过加入一个或更多的隐层,使网络能提取出更高序的统计,尤其当输入层规模 庞大时,隐神经元提取高序统计数据的能力便显得格外重要。 4 2 界面设计 前向神经网络主要用的是误差反传训练算法,因此在界面上添加了系统总误筹- j 训练次数的对应关系。整体界面分样本训练和数据仿真上下两部分,简洁明了,操作 方便。首先设定好系统要求的精度、总的训练次数以及步长,然后丌始建立神经网络 的结构模型,即确定输入层、输出层、隐含层的神经元个数以及所选用的激活函数( 传 递函数) ,设定好网络的存储路径便可丌始训练。当训练结束时,系统会自动弹出完成 对话框。当达到预期的精度要求便可对数据进行仿真,打开保存的网络模型,并输入 测试数据,保存结果,点击仿真按纽即可。 图4 - 2 前向神经网络界面 f i g4 - 2t h ef n t e r f a c eo f f e e d f o r w a r dn e t w o r k 4 3 典型前向神经网络模型 在本系统中,包含了单层感知器网络模型、b p 神经网络模型、径向基网络模弛、 c n p 神经网络模型等七种前向型网络模型,运行界面如图4 3 所示。在后面分析的三 类神经网络模型程序设计总界面与此界面相类似,只是左边的模型名不一样,因此在 后面将不再赘述。由于篇幅限制,在本论文中主要讲述最为典型的两种,其余可参见 软件帮助部分。 图4 3 前向型网络模型程序运行总界面 f i g 4 3t h er u n n i n gi n t e r f a c eo ff e e d f o r w a r dn e t w o r k 4 , 3 1 单层感知器网络模型 1 9 5 8 年美国学者f r o s e n b l a t t 提出了一种具有自学习能力的感知机 ( p e r c e p t r o n ) 模型。感知机模型是仅有一层计算单元的网络,只能实现线性可分函 数。通常由感知层s ( s e n s o r y ) 、连接层a ( a s s o c i a t i o n ) 和反应层r ( r e s p o n s e ) 构成。 网络拓扑结构如图4 4 所示。 a 层r 层 图4 - 4 单层感知机的网络结构 f i g 4 - 4s t r u c t u r eo f s i n g l el a y e rp e r c e p t r o n 感知机网络的学习过程如下: ( 1 ) 初始化,将a 层至r 层的连接权向量w i 及输出单元的阀值0 赋予 一l , 闽内的随机值。 ( 2 ) 随机选取一个输入模式x 加到网络的输入端。 ( 3 ) 计算网络的实际输出: 滔群霹站 区 弛 y = ,( 形x ? 一e ) i = 1 ( 4 ) 计算输出单元的希望输出y 。与实际输出y 之间的误差 d = y 2 一y ( 5 ) 修正a 层各单元与输出层r 之问的连接权与值 彬( + 1 ) = 彬( ) + a w , ( n ) 式巾 孵( ) = 盯砰- d 。 o ( n + 1 ) = o ( n ) + a 0 ( n ) 式中 a o ( n ) = d + 其中:i 2 1 , 2 , ; n 一学习次数: 口,一正常数,称为学习率( o 聊 1 , 0 p f i p k w j k ( 4 一1 0 ) ( + 1 ) 2 ( ) + r s p j y j 1 ) ( 5 ) 达到误差精度或循环次数要求,则输出结果,否则回到( 2 ) 。 b p 网络的样本训练过程相当复杂而且不灵活。通常只能给出一个解且解受训l 练样 本病态影响较大。在网络的训练过程中,当其权值调得过大,可能使得所有的或大部 分神经元的联结权总和胛偏大,这使得激活函数的输入工作在s 型转移函数的饱和区, 从而导致其导数f ( 胛) 非常小,从而使得对网络权值的调节过程几乎停顿下来。对于 学习速率般选取在0 0 卜0 8 之间。 4 4 网络的应用举例 设计一个星期同午后活动安排辅助决策系统。系统的任务是在已知一个人本星期 应完成的工作量和此人当时的思想情绪状况下,对此人星期日下午的活动安排提出建 议。表4 一l 为系统的学习模式集合,它表示了在相应工作量和思想情绪下的最佳活动 安排。 表4 - 1 网络学习模式集合 q h b l e4 1m o d es e t so f n e r w o r kl e a h l i n a 如卜表所示,把工作量分为三个档次,即没有、有一些和很多,所对应的量化值 分别为0 、0 5 和1 :把思想情绪也分为三个水平,即低、一般和高,所对应的量化值 分别为0 、0 5 和1 。设计一个由两个输入神经元、l o 个隐含层神经元和5 个输出层神 经元组成的c p n 网络。 网络训练时如图4 - 5 所示。 图4 - 5c p n 网络训练时界面 f i g 4 5t r m n i n gi n t e r f j c eo f c p n n 网络进行充分学习之后,具有一种“内插”功能,即当给网络输入一划在( 0 ,1 ) 区间内的反映土作量和思想情绪的量化值后,网络将自动根据原有记忆,找出对应丁 这对量化值的最佳活动选择,以输出模式的形式提供给用户作为决策参数。提供给网 络如表4 2 所示的测试样本,网络运行后给出图4 6 所示的输出模式。 表4 - 2 测试样本 t a b l e 4 - 2t e s t i n gs a m p l e 测试样本模式对 1( 0 5 ,1 0 ) 2 ( 0 6 ,1 0 ) 3 ( o 7 ,1 0 ) 4( o 8 ,1 0 ) 5( 0 9 ,1 0 ) 6( 1 0 ,1 0 ) 图4 - 6 测试结果显示 f i g 4 - 6t e s tr e s u l td i s p l a y 由输出模式可以看出,系统从推荐与朋友一起吃饭变化到工作所对应的工作昔的 量化值区间为0 8 至1 0 4 5 部分程序代码 1 全局变量定义 v a r f i n p u t ,i n p u t ,o u t p u t :a r r a yo fa r r a yo fi n t e g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动学题库及答案简单
- 2025学年湖北省部分学校高二语文上学期开学测试卷附答案解析
- 山西省晋城市2022-2023学年八年级上学期期末语文试卷(含答案)
- 国职五级滑雪题库及答案
- 扫雪除冰安全教育培训课件
- 2025年礼仪考试综合题目及答案
- 2025年德育教育考试试题及答案
- 2025年广东数学学考试卷及答案
- 2025年化学考试卷基础题及答案
- 慕课课件用WPS打开
- 家庭食品卫生知识培训课件
- 无人机应用技术培训教材
- 地铁安保培训课件
- 华中数控车床课件
- 2025年食品安全监督员专业技能考核试题及答案解析
- 七年级初一新生家长会上校长走心讲话:陪孩子一起长大是一场不能重来的旅程
- 企业微信办公使用教程
- 智慧零碳园区综合解决方案
- 学堂在线 大学历史与文化 章节测试答案
- 大学澡堂管理办法
- 2025年全国“质量月”企业员工全面质量管理知识竞赛题库及答案
评论
0/150
提交评论