百科解释:
人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。 最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。
机器最初被发明是为了服务人类,做人不擅长的事情,比如规律性,重复复杂运算,从第一代计算机诞生到现在,这个功能一次次提升,现在计算机核心部件cpu,在普通家用方面,比如i5-6600四个核心的计算能力大概在20gflops.,也就是每秒200亿次浮点运算,这是人类不能羡慕的一个能力,但是,机器依然限制在机械性运算上,人类发明的这个 [“脑”] 一直希望成为真正的 [“类人脑”] ,在生物领域不断突破的前提下,我们破译人脑的工作,越来越深入,紧跟着就是将人脑运行机制复制到电脑,这样就产生“类人思维”,而这一领域就是现在火热的“AI”人工智能。
生物神经元的结构:神经细胞是构成神经系统的基本单元,称之为生物神经元,简称神经元。神经元主要由三部分构成: (1)细胞体; (2)轴突; (3)树突。 如下图所示:
突触是神经元之间相互连接的接口部分,即一个神经元的神经末梢与另一个神经元的树突相接触的交界面,位于神经元的神经末梢尾端。突触是轴突的终端。
大脑可视作为1000多亿神经元组成的神经网络。神经元的信息传递和处理是一种电化学活动.树突由于电化学作用接受外界的刺激,通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程。
神经元的功能特性: (1)时空整合功能; (3)兴奋与抑制状态; (4)结构的可塑性; (5)脉冲与电位信号的转换; (6)突触延期和不应期; (7)学习、遗忘和疲劳。
总结:人类进行思考,就是一个群体思考,每个神经细胞进行独立运行,和其他N个细胞相连接,进行信号接收和传递,且每次接收,都会影响细胞自身状态,这也是记忆的一部分由来,整体的思考,就是一千多亿神经细胞互相交叉影响形成的复杂电化学信号。
现在我们就一步步看人类是怎么认识及搭建神经网络的:
如果你觉得这篇文章看起来稍微还有些吃力,或者想要系统地学习人工智能,那么推荐你去看床长人工智能教程。非常棒的大神之作,教程不仅通俗易懂,而且很风趣幽默。点击这里可以查看教程。
人工神经元结构:人工神经元的研究源于脑神经元学说,19世纪末,在生物、生理学领域,Waldeger等人创建了神经元学说。 人工神经网络是由大量处理单元经广泛互连而组成的人工网络,用来模拟脑神经系统的结构和功能。而这些处理单元我们把它称作人工神经元。人工神经网络可看成是以人工神经元为节点,用有向加权弧连接起来的有向图。在此有向图中,人工神经元就是对生物神经元的模拟,而有向弧则是轴突—-突触—-树突对的模拟。有向弧的权值表示相互连接的两个人工神经元间相互作用的强弱。人工神经元结构如下图所示:
神经网络从两个方面模拟大脑: (1)、神经网络获取的知识是从外界环境中学习得来的。 (2)、内部神经元的连接强度,即突触权值,用于储存获取的知识。
神经网络系统由能够处理人类大脑不同部分之间信息传递的由大量神经元连接形成的拓扑结构组成,依赖于这些庞大的神经元数目和它们之间的联系,人类的大脑能够收到输入的信息的刺激由分布式并行处理的神经元相互连接进行非线性映射处理,从而实现复杂的信息处理和推理任务。
对于某个处理单元(神经元)来说,假设来自其他处理单元(神经元)i的信息为Xi,它们与本处理单元的互相作用强度即连接权值为Wi, i=0,1,…,n-1,处理单元的内部阈值为θ。
那么本处理单元(神经元)的输入为:,而处理单元的输出为:式中,xi为第i个元素的输入,wi为第i个处理单元与本处理单元的互联权重即神经元连接权值。f称为激活函数或作用函数,它决定节点(神经元)的输出。θ表示隐含层神经节点的阈值。
结合以上数学模型,神经网络的主要工作是建立模型和确定权值,一般有前向型和反馈型两种网络结构。通常神经网络的学习和训练需要一组输入数据和输出数据对,选择网络模型和传递、训练函数后,神经网络计算得到输出结果,根据实际输出和期望输出之间的误差进行权值的修正,在网络进行判断的时候就只有输入数据而没有预期的输出结果。神经网络一个相当重要的能力是其网络能通过它的神经元权值和阈值的不断调整从环境中进行学习,直到网络的输出误差达到预期的结果,就认为网络训练结束。 对于这样一种多输入、单输出的基本单元可以进一步从生物化学、电生物学、数学等方面给出描述其功能的模型。利用大量神经元相互连接组成的人工神经网络,将显示出人脑的若干特征,人工神经网络也具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重wij值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以至超过设计者原有的知识水平。通常,它的学习(或训练)方式可分为两种,一种是有监督(supervised)或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督(unsupervised)学习或称无导师学习,这时,只规定学习方式或某些规则,而具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似于人脑的功能。
在人工神经网络设计及应用研究中,通常需要考虑三个方面的内容,即神经元激活函数、神经元之间的连接形式和网络的学习(训练)。
在构造神经网络时,其神经元的传递函数和转换函数就已经确定了。在网络的学习过程中是无法改变转换函数的,因此如果想要改变网络输出的大小,只能通过改变加权求和的输入来达到。由于神经元只能对网络的输入信号进行响应处理,想要改变网络的加权输入只能修改网络神经元的权参数,因此神经网络的学习就是改变权值矩阵的过程。
神经网络的工作过程包括离线学习和在线判断两部分。学习过程中各神经元进行规则学习,权参数调整,进行非线性映射关系拟合以达到训练精度;判断阶段则是训练好的稳定的网络读取输入信息通过计算得到输出结果。
神经网络的学习规则是修正权值的一种算法,分为联想式和非联想式学习,有监督学习和无监督学习等。下面介绍几个常用的学习规则。
(1)、误差修正型规则:是一种有监督的学习方法,根据实际输出和期望输出的误差进行网络连接权值的修正,最终网络误差小于目标函数达到预期结果。
误差修正法,权值的调整与网络的输出误差有关, 它包括δ学习规则、Widrow-Hoff学习规则、感知器学习规则和误差反向传播的BP(Back Propagation)学习规则等。
(2)、竞争型规则:无监督学习过程,网络仅根据提供的一些学习样本进行自组织学习,没有期望输出,通过神经元相互竞争对外界刺激模式响应的权利进行网络权值的调整来适应输入的样本数据。 对于无监督学习的情况,事先不给定标准样本,直接将网络置于“环境”之中,学习(训练)阶段与应用(工作)阶段成为一体。
(3)、Hebb型规则:利用神经元之间的活化值(激活值)来反映它们之间联接性的变化,即根据相互连接的神经元之间的活化值(激活值)来修正其权值。 在Hebb学习规则中,学习信号简单地等于神经元的输出。Hebb学习规则代表一种纯前馈﹑无导师学习。该学习规则至今在各种神经网络模型中起着重要作用。典型的应用如利用Hebb规则训练线性联想器的权矩阵。
(4)、随机型规则:在学习过程中结合了随机、概率论和能量函数的思想,根据目标函数(即网络输出均方差)的变化调整网络的参数,最终使网络目标函数达到收敛值。
在神经网络中,网络解决问题的能力与效率除了与网络结构有关外,在很大程度上取决于网络所采用的激活函数。激活函数的选择对网络的收敛速度有较大的影响,针对不同的实际问题,激活函数的选择也应不同。
神经元在输入信号作用下产生输出信号的规律由神经元功能函数f(Activation Function)给出,也称激活函数,或称转移函数,这是神经元模型的外特性。它包含了从输入信号到净输入、再到激活值、最终产生输出信号的过程。综合了净输入、f函数的作用。f函数形式多样,利用它们的不同特性可以构成功能各异的神经网络。
常用的激活函数有以下几种形式:
(1)、阈值函数:该函数通常也称为阶跃函数。当激活函数采用阶跃函数时,人工神经元模型即为MP模型。此时神经元的输出取1或0,反应了神经元的兴奋或抑制。(2)、线性函数:该函数可以在输出结果为任意值时作为输出神经元的激活函数,但是当网络复杂时,线性激活函数大大降低网络的收敛性,故一般较少采用。
(3)、对数S形函数:对数S形函数的输出介于0~1之间,常被要求为输出在0~1范围的信号选用。它是神经元中使用最为广泛的激活函数。
(4)、双曲正切S形函数:双曲正切S形函数类似于被平滑的阶跃函数,形状与对数S形函数相同,以原点对称,其输出介于-1~1之间,常常被要求为输出在-1~1范围的信号选用。
神经网络是一个复杂的互连系统,单元之间的互连模式将对网络的性质和功能产生重要影响。互连模式种类繁多。
(1)、前向网络(前馈网络):网络可以分为若干“层”,各层按信号传输先后顺序依次排列,第i层的神经元只接受第(i-1)层神经元给出的信号,各神经元之间没有反馈。前馈型网络可用一有向无环路图表示,如下图所示: 可以看出,输入节点并无计算功能,只是为了表征输入矢量各元素值。各层节点表示具有计算功能的神经元,称为计算单元。每个计算单元可以有任意个输入,但只有一个输出,它可送到多个节点作输入。称输入节点层为第零层。计算单元的各节点层从下至上依次称为第1至第N层,由此构成N层前向网络。(也有把输入节点层称为第1层,于是对N层网络将变为N+1个节点层序号。) 第一节点层与输出节点统称为“可见层”,而其他中间层则称为隐含层(hidden layer),这些神经元称为隐节点。BP网络就是典型的前向网络。
(2)、反馈网络:典型的反馈型神经网络如下图a所示: 每个节点都表示一个计算单元,同时接受外加输入和其它各节点的反馈输入,每个节点也都直接向外部输出。Hopfield网络即属此种类型。在某些反馈网络中,各神经元除接受外加输入与其它各节点反馈输入之外,还包括自身反馈。有时,反馈型神经网络也可表示为一张完全的无向图,如上图b。图中,每一个连接都是双向的。这里,第i个神经元对于第j个神经元的反馈与第j至i神经元反馈之突触权重相等,也即wij=wji。
以上介绍了两种最基本的人工神经网络结构,实际上,人工神经网络还有许多种连接形式,例如,从输出层到输入层有反馈的前向网络,同层内或异层间有相互反馈的多层网络等等。
提示: 以上已经大概介绍了人工神经网络,到此就可以看下一篇博客了,如果大家还想了解更多内容,请继续看内容,在本阶段,本部分只是简单了解就行,没必要深入:
按性能分:连续型和离散型网络,或确定型和随机型网络。
按拓扑结构分:前向网络和反馈网络。
前向网络有自适应线性神经网络(AdaptiveLinear,简称Adaline)、单层感知器、多层感知器、BP等。 前向网络,网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。
反馈网络有Hopfield、Hamming、BAM等。 反馈网络,网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield网络、波耳兹曼机均属于这种类型。
按学习方法分:有教师(监督)的学习网络和无教师(监督)的学习网络。
按连接突触性质分:一阶线性关联网络和高阶非线性关联网络。
人脑是自然界所造就的高级动物,人的思维是由人脑来完成的,而思维则是人类智能的集中体现。人脑的皮层中包含100亿个神经元、60万亿个神经突触,以及他们的连接体。神经系统的基本结构和功能单位就是神经细胞,即神经元,它主要由细胞体、树突、轴突和突触组成。人类的神经元具备以下几个基本功能特性:时空整合功能;神经元的动态极化性;兴奋与抑制状态;结构的可塑性;脉冲与电位信号的转换;突触延期和不延期;学习、遗忘和疲劳;神经网络是由大量的神经元单元相互连接而构成的网络系统。
人工神经网络,使通过模仿生物神经网络的行为特征,进行分布式并行信息处理的数学模型。这种网络依靠系统的复杂度,通过调整内部大量节点之间相互连接的关系,从而达到信息处理的目的。人工神经网络具有自学习和自适应的能力,可以通过预先提供的一批相互对应的输入输出数据,分析两者的内在关系和规律,最终通过这些规律形成一个复杂的非线性系统函数,这种学习分析过程被称作“训练”。神经元的每一个输入连接都有突触连接强度,用一个连接权值来表示,即将产生的信号通过连接强度放大,每一个输入量都对应有一个相关联的权重。处理单元将经过权重的输入量化,然后相加求得加权值之和,计算出输出量,这个输出量是权重和的函数,一般称此函数为传递函数。
感知器模型是美国学者罗森勃拉特(Rosenblatt)为研究大脑的存储、学习和认知过程而提出的一类具有自学习能力的神经网络模型,它把神经网络的研究从纯理论探讨引向了从工程上的实现。
Rosenblatt提出的感知器模型是一个只有单层计算单元的前向神经网络,称为单层感知器。
单层感知器模型的学习算法,算法思想:首先把连接权和阈值初始化为较小的非零随机数,然后把有n个连接权值的输入送入网络,经加权运算处理,得到的输出如果与所期望的输出有较大的差别,就对连接权值参数按照某种算法进行自动调整,经过多次反复,直到所得到的输出与所期望的输出间的差别满足要求为止。
线性不可分问题:单层感知器不能表达的问题被称为线性不可分问题。 1969年,明斯基证明了“异或”问题是线性不可分问题。
线性不可分函数的数量随着输入变量个数的增加而快速增加,甚至远远超过了线性可分函数的个数。也就是说,单层感知器不能表达的问题的数量远远超过了它所能表达的问题的数量。
在单层感知器的输入部分和输出层之间加入一层或多层处理单元,就构成了二层或多层感知器。
在多层感知器模型中,只允许某一层的连接权值可调,这是因为无法知道网络隐层的神经元的理想输出,因而难以给出一个有效的多层感知器学习算法。
多层感知器克服了单层感知器的许多缺点,原来一些单层感知器无法解决的问题,在多层感知器中就可以解决。例如,应用二层感知器就可以解决异或逻辑运算问题
反向传播模型也称B-P模型,是一种用于前向多层的反向传播学习算法。之所以称它是一种学习方法,是因为用它可以对组成前向多层网络的各人工神经元之间的连接权值进行不断的修改,从而使该前向多层网络能够将输入它的信息变换成所期望的输出信息。之所以将其称作为反向学习算法,是因为在修改各人工神经元的连接权值时,所依据的是该网络的实际输出与其期望的输出之差,将这一差值反向一层一层的向回传播,来决定连接权值的修改。
B-P算法的网络结构是一个前向多层网络。它是在1986年,由Rumelhant和Mcllelland提出的。是一种多层网络的“逆推”学习算法。其基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出不符,则转向误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行。权值不断调整过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。
反向传播网络的学习算法:B-P算法的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能得到所期望的输出。
学习过程由正向传播和反向传播组成。
正向传播用于对前向网络进行计算,即对某一输入信息,经过网络计算后求出它的输出结果。
反向传播用于逐层传递误差,修改神经元间的连接权值,以使网络对输入信息经过计算后所得到的输出能达到期望的误差要求。
B-P算法的学习过程如下:
(1)、选择一组训练样例,每一个样例由输入信息和期望的输出结果两部分组成。
(2)、从训练样例集中取一样例,把输入信息输入到网络中。
(3)、分别计算经神经元处理后的各层节点的输出。
(4)、计算网络的实际输出和期望输出的误差。
(5)、从输出层反向计算到第一个隐层,并按照某种能使误差向减小方向发展的原则,调整网络中各神经元的连接权值。
(6)、对训练样例集中的每一个样例重复(3)-(5)的步骤,直到对整个训练样例集的误差达到要求时为止。
在以上的学习过程中,第(5)步是最重要的,如何确定一种调整连接权值的原则,使误差沿着减小的方向发展,是B-P学习算法必须解决的问题。B-P算法的优缺点:
优点: 理论基础牢固,推导过程严谨,物理概念清晰,通用性好等。所以,它是目前用来训练前向多层网络较好的算法。
缺点: (1)、该学习算法的收敛速度慢; (2)、网络中隐节点个数的选取尚无理论上的指导; (3)、从数学角度看,B-P算法是一种梯度最速下降法,这就可能出现局部极小的问题。当出现局部极小时,从表面上看,误差符合要求,但这时所得到的解并不一定是问题的真正解。所以B-P算法是不完备的。
BP算法局限性:
(1)、在误差曲面上有些区域平坦,此时误差对权值的变化不敏感,误差下降缓慢,调整时间长,影响收敛速度。这时误差的梯度变化很小,即使权值的调整量很大,误差仍然下降很慢。造成这种情况的原因与各节点的净输入过大有关。
(2)、存在多个极小点。从两维权空间的误差曲面可以看出,其上存在许多凸凹不平,其低凹部分就是误差函数的极小点。可以想象多维权空间的误差曲面,会更加复杂,存在更多个局部极小点,它们的特点都是误差梯度为0。BP算法权值调整依据是误差梯度下降,当梯度为0时,BP算法无法辨别极小点性质,因此训练常陷入某个局部极小点而不能自拔,使训练难以收敛于给定误差。
BP算法改进:误差曲面的平坦区将使误差下降缓慢,调整时间加长,迭代次数增多,影响收敛速度;而误差曲面存在的多个极小点会使网络训练陷入局部极小,从而使网络训练无法收敛于给定误差。这两个问题是BP网络标准算法的固有缺陷。
针对此,国内外不少学者提出了许多改进算法,几种典型的改进算法:
(1)、增加动量项:标准BP算法在调整权值时,只按t时刻误差的梯度下降方向调整,而没有考虑t时刻以前的梯度方向,从而常使训练过程发生振荡,收敛缓慢。为了提高训练速度,可以在权值调整公式中加一动量项。大多数BP算法中都增加了动量项,以至于有动量项的BP算法成为一种新的标准算法。
(2)、可变学习速度的反向传播算法(variable learning rate back propagation,VLBP):多层网络的误差曲面不是二次函数。曲面的形状随参数空间区域的不同而不同。可以在学习过程中通过调整学习速度来提高收敛速度。技巧是决定何时改变学习速度和怎样改变学习速度。可变学习速度的VLBP算法有许多不同的方法来改变学习速度。
(3)、学习速率的自适应调节:可变学习速度VLBP算法,需要设置多个参数,算法的性能对这些参数的改变往往十分敏感,另外,处理起来也较麻烦。此处给出一简洁的学习速率的自适应调节算法。学习率的调整只与网络总误差有关。学习速率η也称步长,在标准BP中是一常数,但在实际计算中,很难给定出一个从始至终都很合适的最佳学习速率。从误差曲面可以看出,在平坦区内η太小会使训练次数增加,这时候希望η值大一些;而在误差变化剧烈的区域,η太大会因调整过量而跨过较窄的“凹坑”处,使训练出现振荡,反而使迭代次数增加。为了加速收敛过程,最好是能自适应调整学习率η,使其该大则大,该小则小。比如可以根据网络总误差来调整.
(4)、引入陡度因子—-防止饱和:误差曲面上存在着平坦区。其权值调整缓慢的原因在于S转移函数具有饱和特性造成的。如果在调整进入平坦区后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,就可改变误差函数的形状,从而使调整脱离平坦区。实现这一思路的具体作法是在转移函数中引进一个陡度因子。
BP神经网络设计的一般原则:关于它的开发设计,大多数是根据使用者的经验来设计网络结构﹑功能函数﹑学习算法﹑样本等。
BP网络参数设计
(1)、BP网络输入与输出参数的确定
A、输入量的选择:
a、输入量必须选择那些对输出影响大且能够检测或提取的变量;
b、各输入量之间互不相关或相关性很小。从输入、输出量性质分类来看,可以分为两类:数值变量和语言变量。数值变量又分为连续变量或离散变量。如常见的温度,压力,电压,电流等就是连续变量;语言变量是用自然语言表示的概念。如红,绿,蓝;男,女;大,中,小,开,关,亮,暗等。一般来说,语言变量在网络处理时,需要转化为离散变量。
c、输入量的表示与提取:多数情况下,直接送给神经网络的输入量无法直接得到,常常需要用信号处理与特征提取技术从原始数据中提取能反映其特征的若干参数作为网络输入。
B、输出量选择与表示:
a、输出量一般代表系统要实现的功能目标,如分类问题的类别归属等;
b、输出量表示可以是数值也可是语言变量;
(2)、训练样本集的设计 网络的性能与训练用的样本密切相关,设计一个好的训练样本集既要注意样本规模,又要注意样本质量。
A、样本数目的确定:一般来说样本数n越多,训练结果越能正确反映其内在规律,但样本的获取往往有一定困难,另一方面,当样本数n达到一定数量后,网络的精度也很难提高。 选择原则:网络规模越大,网络映射关系越复杂,样本数越多。一般说来,训练样本数是网络连接权总数的5~10倍,但许多情况难以达到这样的要求。
B、样本的选择和组织:
a、样本要有代表性,注意样本类别的均衡;
b、样本的组织要注意将不同类别的样本交叉输入;
c、网络的训练测试,测试标准是看网络是否有好的泛化能力。测试做法:不用样本训练集中数据测试。一般是将收集到的可用样本随机地分成两部分,一部分为训练集,另一部分为测试集。若训练样本误差很小,而对测试集的样本误差很大,泛化能力差。
(3)、初始权值的设计 网络权值的初始化决定了网络的训练从误差曲面的哪一点开始,因此初始化方法对缩短网络的训练时间至关重要。 神经元的作用函数是关于坐标点对称的,若每个节点的净输入均在零点附近,则输出均出在作用函数的中点,这个位置不仅远离作用函数的饱和区,而且是其变化最灵敏的区域,必使网络学习加快。从神经网络净输入表达式来看,为了使各节点的初始净输入在零点附近,如下两种方法被常常使用:
A、取足够小的初始权值;
B、使初始值为+1和-1的权值数相等。
BP网络结构参数设计
隐层结构设计
(1)、隐层数设计:理论证明,具有单隐层的前馈网络可以映射所有连续函数,只有当学习不连续函数时才需要两个隐层,故一般情况隐层最多需要两层。一般方法是先设一个隐层,当一个隐层的节点数很多,仍不能改善网络性能时,再增加一个隐层。最常用的BP神经网络结构是3层结构,即输入层﹑输出层和1个隐层。
(2)、隐层节点数设计:隐层节点数目对神经网络的性能有一定的影响。隐层节点数过少时,学习的容量有限,不足以存储训练样本中蕴涵的所有规律;隐层节点过多不仅会增加网络训练时间,而且会将样本中非规律性的内容如干扰和噪声存储进去。反而降低泛化能力。一般方法是凑试法:
Hopfield模型是霍普菲尔德分别于1982年及1984提出的两个神经网络模型。1982年提出的是离散型,1984年提出的是连续型,但它们都是反馈网络结构。
由于在反馈网络中,网络的输出要反复地作为输入再送入网络中,这就使得网络具有了动态性,网络的状态在不断的改变之中,因而就提出了网络的稳定性问题。所谓一个网络是稳定的是指从某一时刻开始,网络的状态不再改变。
设用X(t)表示网络在时刻t的状态,如果从t=0的任一初态X(0)开始,存在一个有限的时刻t,使得从此时刻开始神经网络的状态不再发生变化,就称此网络是稳定的。
离散网络模型是一个离散时间系统,每个神经元只有两个状态,可以用1和0来表示,由连接权值Wij所构成的矩阵是一个对角线为0的对称矩阵。
Hopfield网络离散模型有两种工作模式:
(1)、串行方式,是指在任一时刻t,只有一个神经元i发生状态变化,而其余的神经元保持状态不变。
(2)、并行方式,是指在任一时刻t,都有部分或全体神经元同时改变状态。
有关离散的Hopfield网络的稳定性问题,已于1983年由Cohen和Grossberg给于了证明。而Hopfield等人又进一步证明,只要连接权值构成的矩阵是非负对角元的对称矩阵,则该网络就具有串行稳定性。
1984年,Hopfield又提出了连续时间的神经网络,在这种神经网络中,各节点可在0到1的区间内取任一实数值。
Hopfield网络是一种非线性的动力网络,可通过反复的网络动态迭代来求解问题,这是符号逻辑方法所不具有的特性。在求解某些问题时,其求解问题的方法与人类求解问题的方法很相似,虽然所求得的解不是最佳解,但其求解速度快,更符合人们日常解决问题的策略。
Hopfield递归网络是美国加洲理工学院物理学家J.J.Hopfield教授于1983年提出的。Hopfield网络按网络输入和输出的数字形式不同可分为离散型和连续型两种网络,即:离散型Hopfield神经网络—-DHNN(Discrete Hopfield Neural Network);连续型Hopfield神经网络—-CHNN(ContinuesHopfield Neural Network)。
DHNN结构:它是一种单层全反馈网络,共有n个神经元。每个神经元都通过连接权接收所有其它神经元输出反馈来的信息,其目的是为了让任一神经元的输出能接受所有神经元输出的控制,从而使各神经元能相互制约。
DHNN的设计原则:吸引子的分布是由网络的权值(包括阀值)决定的,设计吸引子的核心就是如何设计一组合适的权值。为了使所设计的权值满足要求,权值矩阵应符合以下要求:(1)、为保证异步方式工作时网络收敛,W应为对称阵;(2)、为保证同步方式工作时网络收敛,W应为非负定对称阵;(3)、保证给定的样本是网络的吸引子,并且要有一定的吸引域。
具体设计时,可以采用不同的方法:(1)、联立方程法;(2)、外积和法。
CHNN:在连续型Hopfield神经网络中,所有神经元都随时间t并行更新,网络状态随时间连续改变。
Hopfield网络的主要功能
Hopfield神经网络的提出就是与其实际应用密切相关。其主要功能在以下两个方面。
(1)、联想记忆:输入–输出模式的各元素之间,并不存在一对一的映射关系,输入–输出模式的维数也不要求相同;联想记忆时,只给出输入模式部分信息,就能联想出完整的输出模式。即具有容错性。
(2)、CHNN的优化计算功能. 应用Hopfield 神经网络来解决优化计算问题的一般步骤为:
A、分析问题:网络输出与问题的解相对应。B、构造网络能量函数:构造合适的网络能量函数,使其最小值对应问题最佳解。
C、设计网络结构:将能量函数与标准式相比较,定出权矩阵与偏置电流。
D、由网络结构建立网络的电子线路并运行,稳态–优化解或计算机模拟运行。
神经网络的联想记忆功能可以分为两种,一是自联想记忆,另一种是异联想记忆。Hopfield神经网络就属于自联想记忆。由Kosko B.1988 年提出的双向联想记忆神经网络BAM(Bidirectional Associative Memory)属于异联想记忆。BAM有离散型﹑连续型和自适应型等多种形式。
BP神经网络﹑Hopfield神经网络和BAM双向联想记忆神经网络分别属于前馈和反馈神经网络,这主要是从网络的结构来划分的。如果从神经网络的函数逼近功能这个角度来分,神经网络可以分为全局逼近网络和局部逼近网络。当神经网络的一个或多个可调参数(权值和阈值)在输入空间的每一点对任何一个输出都有影响,则称该神经网络为全局逼近网络,多层前馈BP网络是全局逼近网络的典型例子。对于每个输入输出数据对,网络的每一个连接权均需进行调整,从而导致全局逼近网络学习速度很慢,对于有实时性要求的应用来说常常是不可容忍的。如果对网络输入空间的某个局部区域只有少数几个连接权影响网络输出,则称网络为局部逼近网络。对于每个输入输出数据对,只有少量的连接权需要进行调整,从而使局部逼近网络具有学习速度快的优点,这一点对于有实时性要求的应用来说至关重要。目前常用的局部逼近神经网络有CMAC网络、径向基函数RBF网络和B样条网络等,其结构原理相似。
1975年J.S.Albus提出一种模拟小脑功能的神经网络模型,称为Cerebellar Model Articulation Controller,简称CMAC。CMAC网络是仿照小脑控制肢体运动的原理而建立的神经网络模型。小脑指挥运动时具有不假思索地作出条件反射迅速响应的特点,这种条件反射式响应是一种迅速联想。
CMAC 网络有三个特点:
(1)、作为一种具有联想功能的神经网络,它的联想具有局部推广(或称泛化)能力,因此相似的输入将产生相似的输出,远离的输入将产生独立的输出;
(2)、对于网络的每一个输出,只有很少的神经元所对应的权值对其有影响,哪些神经元对输出有影响则有输入决定;
(3)、CMAC的每个神经元的输入输出是一种线性关系,但其总体上可看做一种表达非线性映射的表格系统。由于CMAC网络的学习只在线性映射部分,因此可采用简单的δ算法,其收敛速度比BP算法快得多,且不存在局部极小问题。CMAC最初主要用来求解机械手的关节运动,其后进一步用于机械人控制、模式识别、信号处理以及自适应控制等领域。
对局部逼近神经网络,除CMAC神经网络外,常用的还有径向基函数RBF网络和B样条网络等。径向基函数(RBF,Radial Basis Function)神经网络,是由J.Moody 和C.Darken于20世纪80年代末提出的一种神经网络,径向基函数方法在某种程度上利用了多维空间中传统的严格插值法的研究成果。在神经网络的背景下,隐藏单元提供一个“函数”集,该函数集在输入模式向量扩展至隐层空间时为其构建了一个任意的“基”;这个函数集中的函数就被称为径向基函数。径向基函数首先是在实多变量插值问题的解中引入的。径向基函数是目前数值分析研究中的一个主要领域之一。
最基本的径向基函数(RBF)神经网络的构成包括三层,其中每一层都有着完全不同的作用。输入层由一些感知单元组成,它们将网络与外界环境连接起来;第二层是网络中仅有的一个隐层,它的作用是从输入空间到隐层空间之间进行非线性变换,在大多数情况下,隐层空间有较高的维数;输出层是线性的,它为作用于输入层的激活模式提供响应。
基本的径向基函数RBF网络是具有单稳层的三层前馈网络。由于它模拟了人脑中局部调整、相互覆盖接受域(或称感受域,Receptive Field)的神经网络结构,因此,RBF网络是一种局部逼近网络,现已证明它能以任意精度逼近任一连续函数.
RBF网络的常规学习算法,一般包括两个不同的阶段:
(1)、隐层径向基函数的中心的确定阶段。常见方法有随机选取固定中心法;中心的自组织选择法等。
(2)、径向基函数权值学习调整阶段。常见方法有中心的监督选择法;正则化严格插值法等。
芬兰Helsink大学Kohonen T.教授提出一种自组织特征映射网络SOM(Self-organizing feature Map),又称Kohonen网络。Kohonen认为,一个神经网络接受外界输入模式时,将会分为不同的对应区域,各区域对输入模式有不同的响应特征,而这个过程是自动完成的。SOM网络正是根据这一看法提出的,其特点与人脑的自组织特性相类似。
自组织神经网络结构
(1)、定义:自组织神经网络是无导师学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。
(2)、结构:层次型结构,具有竞争层。典型结构:输入层+竞争层。 输入层:接受外界信息,将输入模式向竞争层传递,起“观察”作用。 竞争层:负责对输入模式进行“分析比较,寻找规律,并归类。
自组织神经网络的原理
(1)、分类与输入模式的相似性:分类是在类别知识等导师信号的指导下,将待识别的输入模式分配到各自的模式类中,无导师指导的分类称为聚类,聚类的目的是将相似的模式样本划归一类,而将不相似的分离开来,实现模式样本的类内相似性和类间分离性。由于无导师学习的训练样本中不含期望输出,因此对于某一输入模式样本应属于哪一类并没有任何先验知识。对于一组输入模式,只能根据它们之间的相似程度来分为若干类,因此,相似性是输入模式的聚类依据。
(2)、相似性测量:神经网络的输入模式向量的相似性测量可用向量之间的距离来衡量。常用的方法有欧氏距离法和余弦法两种。
(3)、竞争学习原理:竞争学习规则的生理学基础是神经细胞的侧抑制现象:当一个神经细胞兴奋后,会对其周围的神经细胞产生抑制作用。最强的抑制作用是竞争获胜的“唯我独兴”,这种做法称为“胜者为王”,(Winner-Take-All)。竞争学习规则就是从神经细胞的侧抑制现象获得的。它的学习步骤为:A、向量归一化;B、寻找获胜神经元;C、网络输出与权调整;D、重新归一化处理。SOM网络的拓扑结构:SOM网络共有两层。即:输入层和输出层。
(1)、输入层:通过权向量将外界信息汇集到输出层各神经元。输入层的形式与BP网相同,节点数与样本维数相同。
(2)、输出层:输出层也是竞争层。其神经元的排列有多种形式。分为一维线阵,二维平面阵和三维栅格阵。最典型的结构是二维形式。它更具大脑皮层的形象。 输出层的每个神经元同它周围的其他神经元侧向连接,排列成棋盘状平面;输入层为单层神经元排列。
SOM权值调整域
SOM网采用的算法,称为Kohonen算法,它是在胜者为王WTA(Winner-Take-All)学习规则基础上加以改进的,主要区别是调整权向量与侧抑制的方式不同:WTA:侧抑制是“封杀”式的。只有获胜神经元可以调整其权值,其他神经元都无权调整。Kohonen算法:获胜神经元对其邻近神经元的影响是由近及远,由兴奋逐渐变为抑制。换句话说,不仅获胜神经元要调整权值,它周围神经元也要不同程度调整权向量。
SOM网络运行原理
SOM网络的运行分训练和工作两个阶段。在训练阶段,网络随机输入训练集中的样本,对某个特定的输入模式,输出层会有某个节点产生最大响应而获胜,而在训练开始阶段,输出层哪个位置的节点将对哪类输入模式产生最大响应是不确定的。当输入模式的类别改变时,二维平面的获胜节点也会改变。获胜节点周围的节点因側向相互兴奋作用也产生较大影响,于是获胜节点及其优胜邻域内的所有节点所连接的权向量均向输入方向作不同程度的调整,调整力度依邻域内各节点距离获胜节点的远近而逐渐减小。网络通过自组织方式,用大量训练样本调整网络权值,最后使输出层各节点成为对特定模式类敏感的神经元,对应的内星权向量成为各输入模式的中心向量。并且当两个模式类的特征接近时,代表这两类的节点在位置上也接近。从而在输出层形成能反应样本模式类分布情况的有序特征图。
1987年美国学者RobertHecht —Nielson提出了对偶传播神经网络(Counter–propagation Networks,简记为CPN)。CPN最早是用来实现样本选择匹配系统的。它能存储二进制或模拟值的模式对,因此CPN网络可以用作联想存储﹑模式分类﹑函数逼近和数据压缩等用途。与BP网相比,CPN的训练速度要快很多,所需的时间大约是BP网所需时间的1%。但是,它的应用面却因网络的性能相对来说比较窄。 从网络的拓扑结构来看,CPN与BP网类似,CPN是一个三层的神经网络,只不过这竞争层和输出层执行的训练算法是不同的。所以,称CPN 是一个异构网。与同构网相比,网络的异构性使它更接近于人脑。在人脑中存在有各种特殊的模块,它们使用完成不同的运算。例如,在听觉通道的每一层,其神经元与神经纤维在结构上的排列与频率的关系十分密切,对某一些频率,其中某些相应的神经元会获得最大的响应。这种听觉通道上的神经元的有序排列一直延续到听觉皮层。尽管许多低层次上的神经元是预先排列好的,但高层次上的神经元的组织则是通过学习自组织形成的。
在RobertHecht—Nielson提出的CPN神经网络中,其竞争层和输出层分别执行较早些时候出现的两个著名算法:即Kohonen l981年提出的自组织映射SOM算法和Grossberg l969年提出的外星(Outstar)算法。人们将执行自组织映射的层称为Kohonen层,执行外星算法的层则被称为Grossberg层。按这种方法将这两种算法组合在一起后所获得的网络,不仅提供了一种设计多级网训练算法的思路,解决了多级网络的训练问题,突破了单极网的限制,而且还使得网络具有了许多新的特点。多级网络的训练问题主要是在解决隐藏层神经元相应的联接权调整时,需要通过隐藏层神经元的理想输出来实现相关误差的估计。然而,它们对应的理想输出又是未知的。在无导师训练中是不需要知道理想输出的,因此可以考虑让网络的隐藏层执行无导师学习。这是解决多级网络训练的另一个思路。实际上,CPN就是将无导师训练算法与有导师训练算法结合在一起,用无导师训练解决网络隐藏层的理想输出未知的问题,用有导师训练解决输出层按系统的要求给出指定的输出结果的问题。
Kohonen提出的自组织映射由四部分组成,包括一个神经元阵列(用它构成CPN的Kohonen层),一种比较选择机制,一个局部互联,一个自适应过程。实际上,这一层将实现对输入进行分类的功能。所以,该层可以执行无导师的学习,以完成对样本集中所含的分类信息的提取。
Grossberg层主要用来实现类表示。由于相应的类应该是用户所要求的,所以,对应每—个输入向量,用户明确地知道它对应的理想输出向量,故该层将执行有导师的训练。两层的有机结合,就构成—个映射系统。所以,有人将CPN 看成一个有能力进行一定的推广的查找表(Look—up table)。它的训练过程就是将输入向量与相应的输出向量对应起来。这些向量可以是二值的,也可以是连续的。一旦网络完成了训练,对一个给定的输入就可以给出一个对应的输出。网络的推广能力表明,当网络遇到一个不太完整的、或者是不完全正确的输入时,只要该“噪音”是在有限的范围内,CPN 都可以产生一个正确的输出。这是因为Kohonen 层可以找到这个含有噪音的输入应该属于的分类,而对应的Grossberg层则可以给出该分类的表示。从整个网络来看,就表现出一种泛化能力。这使得网络在模式识别、模式完善、信号处理等方面可以有较好的应用。另外,上述映射的逆映射如果存在的话,可以通过对此网的简单扩展,来实现相应的逆变换。这被称为全对传网。
在神经网络学习中,当网络规模给定后,由权矩阵所能记忆的模式类别信息量总是有限的,新输入的模式样本必然会对已经记忆的模式样本产生抵消或遗忘,从而使网络的分类能力受到影响。靠无限扩大网络规模解决上述问题是不现实的。如何保证在适当增加网络规模的同时,在过去记忆的模式和新输入的训练模式之间作出某种折中,既能最大限度地接收新的模式信息,同时又能保证较少地影响过去的样本模式呢? ART网络在一定程度上能较好解决此问题。
1976年,美国Boston大学CarpenterG.A.教授提出了自适应共振理论ART(Adaptive Resonance Theory)。随后Carpenter G.A.又与他的学生GrossbergS.合作提出了ART神经网络。
经过多年的研究和发展,ART 网络已有几种基本形式:
(1)、ART1型神经网络:处理双极性和二进制信号;
(2)、ART2型神经网络:它是ART1型的扩展,用于处理连续型模拟信号;
(3)、ART综合系统:将ART1和ART2综合在一起,系统具有识别﹑补充和撤消等综合功能。即所谓的3R(Recognition﹑Reinforcement﹑Recall)功能。
(4)、ART3型神经网络:它是一种分级搜索模型,兼容前两种结构的功能并将两层神经网络扩大为任意多层神经元网络,由于ART3型在神经元的模型中纳入了生物神经元的生物电-化学反应机制,因而它具备了很强的功能和扩展能力。
*量子神经网络的概念出现于上个世纪90年代后期,一经提出后便引起了不同领域的科学家的关注,人们在这个崭新的领域进行了不同方向的探索,提出了很多想法和初步的模型,充分体现了量子神经网络研究的巨大潜力。主要研究方向可以概括为:
(1)、量子神经网络采用神经网络的连接思想来构造量子计算机,通过神经网络模型来研究量子计算中的问题;(2)、量子神经网络在量子计算机或量子器件的基础上构造神经网络,充分利用量子计算超高速、超并行、指数级容量的特点,来改进神经网络的结构和性能;
(3)、量子神经网络作为一种混合的智能优化算法在传统的计算机上的实现,通过引入量子理论中的思想对传统神经网络改进,利用量子理论中的概念、方法(如态叠加、“多宇宙”观点等),建立新的网络模型;改善传统神经网络的结构和性能;
(4)、基于脑科学、认知科学的研究