首页 > 文章中心 > 神经网络学习方法

神经网络学习方法

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇神经网络学习方法范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

神经网络学习方法

神经网络学习方法范文第1篇

关键词 人工;神经网络;机器学习方法

中图分类号Q1 文献标识码A 文章编号 1674-6708(2011)40-0111-02

0 引言

机器学习方法经常被应用到解决医学和生物信息学的问题。在这个报告中我列举了一些把机器学习方法应用到生物信息学领域的实例。比如:组建多重神经网络,运用该神经网络对4种不同形势的肿瘤患者进行分类。

1 介绍

人工神经网络属于机器学习领域。关于人工神经网络的概念最早提出于1940年代。后来在1980年代后被推广应用,尤其是在医学领域。

其中一个非常有用的用途是对疾病进行分类,达到诊断的目的,或者对基因表达进行分类。在这类神经网络里面,k点最近邻居算法是最常被采用的算法。

人工神经网络的优点是:不需要人们蛆关注神经网络里面的细节信息;人工神经网络可以很容易地被重新训练来应对不同地分类数据。人工神经网络可以用来解决有监督学习和无监督学习,比如:自组织特征映射(self-organized feature map)就可以用来解决无监督学习的问题。

它的不足之处在于:人工神经网络往往需要大量的训练数据,而这些训练数据往往不是很容易获得。人工神经网络可以被看作是一个黑盒,它的细节隐藏在点点之间的权值里面。这些权值的意义是人类无法理解的。同时,人工神经网络需要被仔细的训练以避免过拟合的情况出现。我们常常需也要降低高维数据的维度。下面,我将分析介绍人工神经网络的具体应用。

人工神经网络的结构如图1所示:

X1 ,X2 ,X3是该神经网络的输入值,w0 ,w1 ,w2 ,w3 是该神经网络的输入结点到内部节点的路径权值,每个神经元的激活函数是如上图右侧所示的函数图像。

这个函数被称作为sigmoid函数,表达式如下:

多重神经网络通常有3层,事实上,3层神经网络以能进行很好的分类效果。这三个层包括输入层,隐藏层,输出层。在每个神经元内部我们可以选择sigmoid激活函数或其他种类的激活函数。

如图2所示:

单个神经元仅能提供线性的分割面,所以多层神经网络可以提供非线性的分类函数(即:若干个线性分割面的复杂组合)。这并不意味着4层神经网络就一定比3层神经网络能一共更好的分类效果,因为层数越多,需要的训练集就越庞大,得到的效果也不会提高。

既然有训练问题,就会涉及到训练算法。较为早的和著名的训练算法是delta 规则。它于20世纪60年代被提出。它的原理是计算理论输出值和世纪输出值的均方差。tp 为理论输出值,yp为实际输出值,表示为:

训练的开始阶段,我们通常设定一个随机选取值,令该值等于:

该公式里,α是学习速率,学习速率越大,学习的过程就越快,完成学习的时间短。但如果学习的速率过大,可能导致网络的理想权值在合理结果的附近游摆而永远无法获得理想的权值。

神经网络被训练好了以后,它就被用到解决目标问题。原始的数据集可以被分为两部分:一部分用来训练,一部分用来测试。

有时候神经网络会把训练数据集里面的噪音点的特征纳入自己的权值表达里,从而该神经网络无法真正体现该点集的真实特征。我们把这种情况叫做过拟合。过拟合是由于网络比待估函数复杂造成的。比如一个可以同3层网络解决的问题,我们用4层网络或者由更多神经元的三层网络去解决该问题,就容易造成过拟合。为了更好的明确训练时所采用的神经网络的隐藏层的层数,Livingstone 和 Manalack 提出了如下计算公式:

D = m*o/w

该公式里m是训练样本的数目,o是该网络的输出值,w是网络权值的数目,D就是隐藏层的数目。

得到了隐藏层的数目之后,我们可以以这个数目创建神经网络,边训练边削减,直到我们获得一个一半化的网络。对于没有隐藏网络层或只有一个隐藏网络层的神经网络,我们需要先确定它要解决的问题是否是线性的。

适当的训练方案是能也可以使网络的复杂性和数据的复杂性得到合适的匹配。一个合适的训练方案应该是如下步骤:首先选择一个很大的网络并且把它的每个权值都设到一个很小的值上。通过训练,这些权值可以逐渐游摆到一个合理的值。

由于初始数据集通常要被分为训练集和测试集。在医学领域,我们能获得的数据集往往很小,比如某种病的病人数目不会很大。所以我门需要采用交叉验证的技巧来是较小的数据集在被分为训练集和测试集之后能较好的训练神经网络。

神经网络学习方法范文第2篇

关键词:人工智能;深度学习;教学建议

0 引言

传统的人工智能课程主要包括人工智能导论、模式分析、机器学习、数据挖掘等。这些课程由各个院校根据专业情况不同而选择,课程的内容也有较大差别,但是,基本上都涉及人工神经网络的内容。然而在人工神经网络的教学内容上,一般只讲解经典的多层感知器和反向传播算法,或再加入一些反馈网络的内容,这种教学内容设计的一个不足是忽视了人工智能领域的最新发展——深度学习,它是近几年人工智能领域最具影响力的研究主题,并在大规模语音识别、大规模图像检索等领域取得突破。

北京邮电大学计算机学院开设人工智能科学与技术的本科专业,笔者从事深度学习的研究工作,同时承担了本科生和研究生人工智能类课程的教学工作,因此产生了将深度学习内容引人人工智能类课程的想法。本文先介绍深度学习的背景,说明深度学习在人工智能发展中的地位,之后分析了将深度学习基本内容引入人工智能类课程的必要性和可行性,最后给出了一些实施建议供探讨。

1 深度学习背景

2006年,加拿大多伦多大学的GeoffreyHinton教授与Salakhutdinov博士在美国《科学》杂志发表了题为“Reducing the Dimensionality ofDatawith Neural Networks”的论文,该文提出一种学习多层神经网络的方法,并将这种具有多层结构的学习方法命名为深度学习(Deep Learning),而这成为深度学习研究的一个导火索,从此深度学习的研究与应用蓬勃发展起来。

深度学习在语音识别与生成、计算机视觉等应用领域取得了突出进展。近几年的国际机器学会(International Conference on MachineLearning,ICML)、神经信息处理大会(AnnualConference On Neural Information Processing Systems,NIPS)、计算机视觉大会(InternationalConference on Computer Vision,ICCV)、

声学语音与信号处理大会(International ConferenceOn Acoustics,Speech,and Signal Processing,ICASSP)、计算语言学大会(Annual Meeting of the Association for Computational Linguistics.ACL)、计算机视觉与模式识别(InternationalConference on Computer Vision and P atternRecognition,CVPR)等都有不少相关的研究论文、会议教程和小组研讨会(Workshop)。美国国防高级研究计划(DARPA)也提出了关于深层学习的研究项目。此外,2013年6月《程序员杂志》的封面故事,采访了周志华、李航、朱军3位国内的机器学习专家对于深度学习的看法,他们一致肯定了深度学习在机器学习领域的贡献。

工业界对深度学习也寄予了很高期望。2012年6月,《纽约时报》报道了斯坦福大学计算机科学家AndrewNg和谷歌公司的系统专家JeffDean共同研究深度神经网络的机器学习模型在语音识别和图像识别等领域获得的巨大成功。2012年11月,微软公司在天津公开演示了一个全自动的同声传译系统,其关键技术也是深度学习。2013年1月,百度公司首席执行官李彦宏先生宣布建立深度学习研究院(Institute of Deep Learning)。2013年3月,谷歌公司收购了由深度学习创始人Geoffrey Hinton创立的公司。

从学术界与工业界的研究态势看,深度学习已经成为机器学习与模式识别,乃至人工智能领域的研究热点。正是在这样一个背景下,人工神经网络重新回到人们的视野。此前人工神经网络的发展大致可以分为两个时期,1943年,McCulloch和Pitts提出了最早的人工神经元,这种神经元具有学习能力,这是人工神经网络的发端,也可以被认为是人工智能的发端(当时还没有人工智能这个术语)。1949年,Hebb提出了Hebbian学习算法。1957年,Rosenblatt提出了感知器的神经网络模型。1969年,Minsky和Papert分析了这种感知器神经网络模型的局限性。然而,很多研究者认为,感知器的这种局限性对于所有的神经网络模型都适用,这使人工神经网络的研究很快暗淡下来。1980年代中期,诺贝尔奖得主John Hopfield提出了Hopfield神经网络模型,这种Recurrent神经网络具有的动态性有可能用于解决复杂的问题。同时,多层前向神经网络的后传算法也被重新发现,这两个工作使人工神经网络得到重生。这时,人工神经网络已经成为人工智能的一个重要组成部分。但是,在随后的研究中,人们发现,当学习多层神经网络包含更多的隐藏层时,后传算法并不能学到有效的网络权值,这使得神经网络的研究再次陷入低潮。此次以深层神经网络为代表的深度学习重新回到研究的舞台,其中一个重要因素是Hinton提出的逐层预训练神经网络方法治愈了多层神经网络的一个致命伤。

2 必要性与可行性

深度学习的发展使得从事教学一线的教师也无法忽视这个颇具影响力的研究主题。为此,我们提出将深度学习这个主题引入到人工智能类课程中,将它作为课题教学的一部分。

2.1 必要性

将深度学习这个主题引入到人工智能类课程中的必要性主要包括如下4点。

1)深度学习是人工智能的前沿。

2006年以来,深度学习的研究席卷了整个人工智能,从机器学习、机器视觉、语音识别到语言处理,都不断涌现出新的研究工作和突破性进展。深度学习不仅在机器学习领域成为研究热点,同时在多个应用领域也成为有力工具,而且,在工业界的系统应用中,深度学习成为其中的关键解决技术。

2)深度学习是人工智能的突破。

深度学习的发端是神经网络。关于神经网络的论述,在人工智能类常见教科书中还停留在多层神经网络,即神经网络的第二阶段,它们大部分描述多层结构无法训练的现象。但是,从深度学习的角度看,深层神经网络不仅可学习,而且有必要,这与第二代神经网络的观点是完全不同的。深度学习突破了原有人工神经网络的认识,超越了人工智能神经网络教科书中的原有内容,因此,有必要将多层神经网络结构的可学习性告知学生,从新的视角纠正原有的观点。

3)深度学习是人工智能的延伸。

深度学习不仅提供了一种可以在深层神经结构下训练网络的方法,也包含了不少新的内容,是人工智能的新发展,为人工智能补充了新的内容。到目前为止,深度学习至少包括:从生物神经网络与人类认知的角度认识深层神经网络的必要性;如何构建和学习深层学习网络;如何将深层结构用于解决视觉、语音、语言的应用问题;如何看待深度学习与原有的机器学习方法,如流形学习、概率图模型、能量模型的直接关系;深度学习与其他学科的关系等。

4)深度学习是学生的潜在兴趣点。

大学生对知识有着强烈的好奇心,加之当前信息技术的发达,部分对智能感兴趣的学生可以从其他途径了解到这个学科发展的前沿。因此,顺势而为,将深度学习这个主题做具体讲解,满足学生的好奇心,培养他们对学科前沿与发展的认识,是十分必要的。对高年级的学生而言,了解深度学习的基本知识,是他们全面认识人工智能与发展前沿的一个途径,而对于研究生,较多地了解和掌握深度学习的基本知识有助于他们研究工作的开展。

基于以上几点,笔者认为,将深度学习这个主题引入到人工智能类课程中非常有必要。深度学习作为人工智能的前沿,既是对人工智能原有理论和技术的一个突破和补充。

2.2 可行性

将深度学习引入到人工智能类课程中的可行性主要包括如下3点。

1)深度学习与现有人工智能联系密切。

深度学习并不像突兀的山峰拔地而起。而是深深植根于原有的人工智能理论与技术。深度学习是以神经网络为出发点,这正是深度学习教与学的切入点。比如,可以通过对多层感知器隐藏层的增加和后传算法的失效来讲解深度学习是如何解决这个问题的。再者,深度学习的一个核心构建“受限波尔兹曼机(Restricted Boltzmann Machine)”,可以被认为是一种能量模型,而这种模型与Hopfield网络都可以从物理学的能量模型角度分析,RBM可以认为是Hopfield网络的随机扩展。总之,深度学习与现有人工智能的联系,使学习深度学习变得容易。

2)深度学习的基本内容并不深。

深度学习有个很好的名字,这个名字恰当地描述了特定的学习结构。比如,深度学习的核心部件受限于波尔兹曼机RBM,其结构非常简单。从神经网络的角度,受限波尔兹曼机是一种随机的双向连接神经网络,信号可以从可见层传递到隐藏层,也可以从隐藏层传递到可见层。网络中每个节点是具有特定结构的神经元,其中的神经元具有典型的包含自身偏置的Logistic函数的随机单元,能够依Logistic函数计算得到的概率输出0状态或1状态。概括地说,深度学习的基本内容在高年级阶段较易掌握。

3)深度学习的资料容易获得。

当前的信息资讯非常发达,有相当多的资料可以通过互联网等多种途径获得,这使学习深度学习成为可能。近期,中国计算机学会主办了多个技术讲座均涉及深度学习的部分;深度学习的创始人Hinton教授的主页也有很多资料;Coursera网站有免费的Hinton教授的神经网络课程;斯坦福大学的Ng教授提供了很多的在线教程;蒙特利尔大学Bengio教授发表的题为“Learning Deep Architectures for AI”的论文也是这领域的优质资料。

3 实施建议

在具体的教学过程中,笔者建议适当安排深度学习的最基本内容,内容不宜过多,也不宜占用过多的学时,可以根据教学对象的不同进行调整。比如,本科生的高年级专业课可以安排1学时的教学量,介绍层次训练的基本算法;也可以在高年级前沿讲座中安排2学时,内容覆盖面尽可能广泛。在研究生的教学中,可以根据教学的课程主题安排内容与学时。比如,神经网络主题的课程可以安排4-6学时的教学内容,包括波尔兹曼机及学习算法、深层信念网络与学习算法、深层波尔兹曼机与学习算法卷、积神经网络、自动编码器等。结合应用,课程还可以包含MNIST数字识别的应用、人脸识别的应用、图像检索的应用、语音识别中的应用等。另外,深度学习是一个实践性很强的研究,随机性:大规模(意味着数据不宜可视化,程序运行时间长)等多种因素混合,使深度学习在学习中不容易理解。为此,可以在条件允许的前提下,增加小规模的实验,辅助理解。最后,课件可以通过对优质资料做修改得到。

神经网络学习方法范文第3篇

关键词:决策支持系统;专家系统;集成学习;神经网络集成

中图分类号:TP18文献标识码:A文章编号:1009-3044(2008)27-2045-02

The Construction of the IDSS Based on the Neural Network Ensemble

WANG Jian-min, LI Tie-jun, DONG Yun-qiang

(PLA University of Science and Technology, Nanjing 210007, China)

Abstract: It is difficult to solve the problem, which is gaps between classical Decision Support System (DDS) and practical decision-making problems, especially the complexes. Ensemble Learning is a hot topic in Machine Learning studies. The improvement of generalization performance of individuals comes primarily from the diversity caused by re-sampling the training set. Neural Network Ensemble (NNE) can significantly improve the generalization ability of learning systems through training a finite number of neural networks and combining their result. The paper introduces the DSS and NNE, and studies the application of NNE on constructing IDSS knowledge base.

Key words: DSS; expert system; ensemble learning; NNE

1 引言

决策支持系统(Decision Support System,简称DSS)的概念在20世纪初由Keen P G和Morton M S等人提出,1980年Sprague R H 提出了基于数据库和模型库的DSS结构,目前各个DSS框架结构,概括起来分为基于X库和基于知识的DSS的框架结构两大类,前者以各种库及其管理系统作为DSS的核心,后者以问题处理单元作为系统的主要部分。随着研究的深入,人们发现传统的手段难以在决策中取得理想的结果,于是将AI中知识表示与知识处理的思想引入到了DSS中,产生了智能决策支持系统(Intelligent Decision Support Systems,简称IDSS)。目前在研究的各类DSS大都与计算机技术紧密关联,对计算机依赖程度过高,从而产生了很多局限,且不能解决或者有效提供对于复杂巨问题的决策支持[1]。

机器学习是人工智能研究的重要方向,已在DSS中扮演起越来越重要的角色,若将两者有机地结合起来,改进问题处理系统,增设学习系统,就成为一种基于学习的DSS体系结构,简称ML-IDSS [2]。对神经网络算法运用集成学习(Ensemble Learning )的思想,即为神经网络集成(Neural Network Ensemble)方法,它通过训练多个神经网络并将其结果进行合成,可显著地提高神经网络系统的泛化能力。该方法易于使用且效果明显,是一种非常有效的工程化神经计算方法 [3]。

2 决策支持系统(Decision Support System)

一般认为决策支持系统是“决策”(D)、“支持”(S)、“系统”(S)三者汇集成的一体,即通过不断发展的计算机建立系统的技术(System),逐渐扩展支持能力(Support),达到更好的辅助决策(Decision)[4]。

传统DSS通过模型来操纵数据,实际上支持的仅仅是决策过程中结构化和具有明确过程性的部分,人们更希望解决半结构化和非结构化的决策问题。即传统DSS的局限性表现在:系统在决策支持中的作用是被动的,不能根据决策环境的变化提供主动支持(主动的DSS或者协同的DSS),对决策中普遍存在的非结构化问题无法提供支持,以定量数学模型为基础,对决策中常见的定性问题、模糊问题和不确定性问题缺乏相应的支持手段。

AI技术应用于DSS中后,有效地增强了DSS的效能,提高了辅助决策和支持决策的能力,极大地丰富了DSS的信息存取和信息处理手段,同时也使DSS在军事、政府、工程规划、制造等领域受到越来越多的青睐,现有的DSS除了在定量分析支持上有提升外,对于决策中的半结构化和非结构化的问题也提供了一定的定性分析支持,但是集成了专家系统的DSS,定性知识处理能力依然较弱,且基于专家系统的智能决策系统适用范围狭窄,依然无法完成全部的定性分析支持,更无法处理复杂问题的决策支持 [1]。

3 神经网络集成(Neural Network Ensemble)

3.1 机器学习(Machine Learning)

机器学习是一门新兴的边缘学科,其突出的自学习能力让人们看到了它在DSS中应用的前景。现有的DSS定性知识处理能力弱,没有自学习适应能力,而这正是机器学习应用于DSS中的突出优点。神经网络是机器学习中具有强大生命力的算法之一。

3.2 神经网络集成(NNE)

神经网络算法已经成功应用在诸多领域,但由于缺乏严密理论体系指导,其应用效果完全取决于使用者的经验。神经网络集成一般是几个神经网络的线性组合,它具有比单个神经网络更好的泛化能力。

3.2.1 问题的提出:强学习器与弱学习器

在PAC学习模型中,存在强学习与弱学习之分,且两者存在等价性问题。若存在的一个多项式级学习算法在辨别一组概念的过程中,辨别正确率很高,那么它是强可学习的;如果学习算法辨别一组概念的正确率仅比随机猜测略好,那么它是弱可学习的,并且弱、强学习算法之间存在等价性问题,即可以将弱学习算法提升成强学习算法。等价性问题是神经网络集成思想的出发点。1990年,Schapire针对此问题给出了构造性证明并提出集成方法和相应的Boosting算法。

神经网络学习方法范文第4篇

关键词: 电力负荷;Elman网络;BP网络;预测

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)16-3871-04

电力系统时序负荷的准确预测是实现现代控制的前提之一,也是电力系统规划和运行研究的重要内容。负荷预测是从已知的用电需求出发,考虑政治、经济、气候等相关因素,对未来的用电需求作出的预测[1]。电力系统负荷预测也是电力生产部门的重要工作之一,通过准确的负荷预测,可以经济合理地安排机组启停,减少旋转备用容量,合理安排检修计划,降低发电成本,提高经济效益。此外,它也是电力市场中电价制定的基础。

负荷预测对电力系统控制、运行和计划都有着重要意义。电力系统负荷变化一方面受许多不确定因素的影响,负荷变化会存在随机波动,另一方面又具有周期性,这也使得负荷预测曲线具有相似性。同时,由于受天气、节假日等特殊情况的影响,又使负荷变化出现异常。由于神经网络具有较强的非线性映射特性,它常用于负荷预测。

近年来,人工神经网络越来越引起控制理论工作者的极大兴趣。人工神经网络是一个能够学习,能够总结归纳的系统,也就是说它能够通过已知数据的实验运用来学习和归纳总结。人工神经网络通过对局部情况的对照比较(而这些比较是基于不同情况下的自动学习和要实际解决问题的复杂性所决定的),它能够推理产生一个可以自动识别的系统。与之不同的基于符号系统下的学习方法,它们也具有推理功能,只是它们是建立在逻辑演算法的基础上,也就是说它们之所以能够推理,基础是需要有一个推理演算法则的集合。神经网络的优点在于它具有模拟多变量而不需要对输入变量做复杂的相关假定的能力,具有良好的自适应和自学习能力,能够充分逼近复杂的非线性关系,但关键是要建立合理的数学模型。

本文利用Elman神经网络的自适应性和较强的非线性映射能力进行负荷预测。采用自适应学习速率动量梯度下降反向传播算法进行网络训练,可以克服传统BP算法收敛速度慢和局部极小等缺陷。

1 Elman神经网络结构与算法

1.1Elman神经网络结构

Elman网络通常是一个两层网络,其隐含层神经元到输入层神经元之间还存在一个反馈连接通道,这种反馈连接在神经网络术语中称为回归(recurrent)连接。这种回归连接使得Elman网络具有检测和产生时变模式的能力。

2 数据的预处理

2.1数据的选取

有效地选取输入变量是决定神经网络预测精度的关键所在。电力系统负荷的波动往往受各种突变因素的影响,而这些因素包含的信息往往具有很大的不确定性。出于篇幅考虑,对预报模型简单化,输入变量的选取仅来自于某年欧洲竞赛中电力负荷的历史数据。

2.2结构分析

2.3输入和输出参数的标准化

3 仿真分析

神经网络中单个神经元具有简单的能够反映非线性本质特征的能力,这些基本的单元经过自组织复合,使神经网络可以逼近任意非线性函数。通过学习,从样本中抽取并存储其内在规律,从而可以对序列的变化进行预测。使用神经网络方法可以避免复杂的常规建模过程,而且神经网络模型有良好的自适应和自学习能力、较强的抗干扰能力,易于给出工程上容易实现的算法。在进行神经网络预测时,首先是要确定输入、输出节点。

在训练和预测的过程中,在MATLAB语言环境下,使用其特有的神经网络工具箱,对改进的BP算法建立负荷预测模型,实现短期负荷预测。对比两种网络预测图像和数据,可以清楚地看出,Elman网络的训练速度及预测精度都有较大的改善。比较图4、图5及预测技术指标可以看到,训练Elman网络时间短,平均预测精度高,最大预测精度也优于BP网络。

对于电力预测来说,只考虑历史数据是不够的,还受许多随机因素的影响,由于工作日和节假日的负荷不同,还要考虑时间特征值[8]。为避免预测时出现较大的误差,可以通过适当增加样本容量。

4 结论

到目前为止,电力系统的负荷预测一直都是一个难点,这主要是因为电力系统结构越来越复杂。该文采用Elman网络建立短期负荷的预测模型,克服了传统BP神经网络的一些缺陷。通过仿真计算,证明了Elman神经网络具有动态特性好、网络训练速度快、精度高等特点,同时表明该方法是可行且有效的,并且在电网电力负荷预测领域具有广阔的应用前景。

参考文献:

[1] 汪峰,于尔铿,周京阳.能量管理系统(EMS) [J]. 电力系统自动化,1997,21(4):66-69.

[2] 芮执元,任丽娜,冯瑞成.基于Elman神经网络的甘肃电网负荷预测模型[J].现代电力,2007,24(2):26-29.

[3] 夏昌浩,向学军,何胜雄. 基于MATLAB神经网络工具箱的电力系统负荷预报[J]. 武汉水利电力大学学报,2000,22(4):303-307.

[4] 孙洪波,秦翼鸿,徐国禹. 用于短期电力负荷预报的人工神经网络方法[J]. 重庆大学学报,1995(7):42-47.

[5] 陈玉彬.矿井双风机自动的简易实现[J].矿山机械, 2009(18):84.

[6] 王关平. 基于人工神经网络的无刷直流电动机控制研究[D]. 兰州理工大学,2007.

神经网络学习方法范文第5篇

作者已经采用BP网络建立了机器人视觉系统的映射模型,并作了初步的研究和实验。结果发现,采用神经网络建立机器人视觉映射模型是一种有效的建模方法。但采用BP网络建立模型存在网络规模大、训练时间长、容易陷入局部最小解、定位精度较低等缺点。本文采用CMAC神经网络建立了机器人视觉系统的映射模型,取得了十分令人满意的效果。

1 CMAC神经网络简介

小脑模型关节控制器神经网络(Cerebellar Model Articulation Controller Neural Network,即CMAC神经网络)是Albus根据小脑的生物模型提出的一种人工神经网络。它学习速度快,具有局域泛化能力,能够克服BP网络容易陷入局部最小点的问题,且硬件易于实现。目前,CMAC神经网络被广泛应用于机器人控制、非线性函数映射、模式识别以及自适应控制等领域。

1.1 CMAC的基本结构和原理

CMAC神经网络的模型结构原理图如图1所示。它本质上可看作是一种用于表示复杂非线性函数的查表结构。

图1中,S为n维输入矢量空间;A为联想记忆空间;Y是输出响应矢量。输入空间S中的每一矢量S(…,Si,…,Sj,…)被量化后送人存锗区A,每个输入变量Si激活存储区A中C个连续存储单元。网络输出yi为这C个对应单元中值(即权wi)的累加结果,对某一输入样本,总可通过调整权值达到期望输出值。由图1可以看出,每一输入样本对应于存储区A中的C个单元,当各样本分散存储在A中时,在S中比较靠近的那些样本就会在A中出现交叠现象,其输出值也比较相近,即这C个单元遵循"输入相邻,输出相近"的原则,这种现象被称为CMAC神经网络的局部泛化特性,C为泛化参数:C越大,对样本的映射关系影响越大,泛化能力越好。

CMAC网络的学习采用误差纠正算法,计算量少敛速度快。其权值修正公式及输出可表示如下:

式中,η为学习步长,yd为期望输出,mi为输入变量S激活存储单元的首地址。修正方法可以采用每个样本修正一次的增量学习方法,也可以采用所有样本都输入一轮后再修正的批量学习方法。

1.2 多维CMAC网络的计算方法

由上述CMAC模型的算法可知,应用传统的多维CMAC概念映射算法会因输入维数的增大而使存储空间剧烈增大,从而使网络计算量增大,收敛速度变慢。这里采用一种新的多维CMAC网络的处理方法--叠加处理法。即把输入空间为n维的多维CMAC网络看作是由n个一维CMAC网络叠加而成,其输出为n个一维子网络的输出的叠加。\par

当输入空间的维数n=1时,对于每一个输入变量,都激活C个连续存储单元,即有C个对应单元的权值输出非零。它的激励情况如表l所示。

表1 激活单元地址分布

sia1a2a3a4a5a6a7a8a9a1001111000000101111000002001111000030001111000400001111005000001111060000001111经归纳,输入变量Si激活存储单元的首地址mi的计算方法如下:

mi=Si(C-Δ)+1    (4)

其中,Si为输入量的量化值;C为泛化参数;为相邻输入激活存储单元的重叠单元数大小。若输入矢量有q个量化级,则存储区A需要q(C-)+C个存储单元。.

当输入空间的维数n>1时;设输入空间为n维矢量Si=(Si1,Si2,…,Sin),对于每个分量Sij,都可以看作图1所示结构模型的一维输入量。由式(3)可得其对应的输出为:

其中,mj为Sij所激活存储单元的首地址。整个CMAC网络可看作由n个如图1所示的子网络组成,S对应的输出yi可看作n个子网络输出yij(j=1,2,…,n)的叠加。

若每个输入分量有q个量化级,每个子网络中两相邻样本有个单元重叠,采用上述叠加方法共需存储单元n×[q(C-)+C]。而对于传统的多维概念映射算法来说,n维输入空间中可能的输入状态为qn个。对于一些实际系统,qn往往远远大于n×[q(C-)+C]。例如8维输入,量化级为200个等级,泛化参数C取为40,相邻输入激活存储单元的重叠单元数大小为35,则用叠加处理法需要11200个存储单元,而用传统的概念映射算法需要2008个存储单元。对于传统的概念映射算法所带来的要求存储空间过大的问题,最常用的方法是把A当作一个虚拟存储区,通过散射编码映射到一个小得多的物理空间单元Ap中,从而减少存储空间。但是这种地址压缩技术随机性很强,会带来冲撞问题且不可避免。然而,对多维CMAC网络采用叠加处理法,不但可以大大减少占用的存储单元数,而且还可以避免地址压缩带来的冲撞现象,大大提高网络的映度和学习速度。

图2

2 实验及仿真结果

实验是在山东大学现代物流实验中心进行的。该机器人手眼系统由用于抓取物体的SK6机械手和用于视觉定位的Panasonic WV-CP410/G彩色摄像头组成。摄像头采集的图像是二维的,而机械手运动到某一位置需要六自由度坐标。因此必须把二维图像坐标转换成机器人运动空间的六维坐标,才能控制机器人运动到指定的空间位置,这就是机器人手眼系统位置控制问题。本文采用CMAC神经网络实现了这一坐标变换,并对其结果与BP网络进行了比较。