神经网络(也称之为人工神经网络,ANN)是一门重要的机器学习技术。神经网络算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。目前又成为最为火热的研究方向–深度学习的基础。人工神经网络是对人脑神经系统的简化、抽象和模拟,因此在讨论人工神经网络的互联结构和系统模型之前,应该先对生物神经系统和人工神经元进行简单介绍。
生物学基础
- 生物神经元的结构:生物神经元(neuron)即神经细胞,它是生物神经系统的最基本单元。从其形状和大小来看 ,神经元是多种多样的,但从组成结构看,各种神经元又具有共性。生物神经元的基本结构,它由细胞体、轴突和树突三个主要部分组成。
- 细胞体: 细胞体是神经元的主体,用于处理由树突接收的其他神经元传来的信号。
- 轴突:轴突是由细胞体向外延伸出的所有纤维中最长的一条分支,用来向外传递神经元产生的输出电信号。
- 树突:树突是是神经元的输入端,用于接收从其他神经元的突触传来的信号。
- 生物神经元的功能
- 神经元的抑制与兴奋:抑制与兴奋是生物神经元的两种常规工作状态。抑制状态是指神经元在没有产生冲动时的工作状态。兴奋状态是指神经元产生冲动时的工作状态。在通常情况下,在神经元没有受到任何外部剌激时,膜内为负,膜外为正,神经元处于抑制状态。而当神经元受到外部刺激作用时,其膜电位会随之发生变化,即膜内电位上升、膜外电位下降,如果这种变化能使膜内外的电位差大于阈值电位,则神经元就会产生冲动而进入兴奋状态。
- 神经元内神经冲动的传导:神经冲动在神经元内的传导是一种电传导过程,但其传导速度与电流在导线中的传导速度不同。我们知道,电流在导线内是按光速运动的,而神经冲动沿神经纤维传导的速度却在3.2〜 320km/s 之 间 ,且其传导速度与纤维的粗细、髓鞘的有无有一定关系。
- 人脑神经系统的联结机制:人脑神经系统就是由这些巨量的生物神经元经广泛并行互联所形成的一个高度并行性、非常复杂的神经网络系统。从功能上看,人脑神经系统的记忆和处理功能是有机地结合在一起的,每个神经元既具有存储功能,又具有处理能力。从结构上看,人脑神经系统又是一种分布式系统。人类大脑的各个部分是协同工作、相互影响的,并没有哪一部分神经元能对智能活动的整个过程负有特别重要的责任。它说明,在大脑中,不仅知识的存储是分散的,而且其控制和决策也是分散的。
人工神经元
构成人工神经网络的基本单元是人工神经元。下面讨论人工神经元的结构和模型。
人工神经元的结构
人工神经元是对生物神经元的抽象与模拟。所谓抽象是从数学角度而言的,所谓模拟是从其结构和功能 角度而言的。1943年,心理学家麦卡洛克(W.McCulloch)和数理逻辑学家皮茨( W.Pitts)根据生物神 经元的功能和结构,提出了一个将神经元看成二进制阈值元件的简单模型,即MP模型,如下图所示。
图中,x1,x2,x3, …,xn;wi 表本某一神经元的第i个输入的联结强度,称为联结权值W 为神经元的阈值,y为神经元的输出。可以看出,人工神经元是一个具有多输人、单输出的非线性器件。
式中,f称为神经元的激活函数(激发函数)或作用函数。
人工神经元模型
激发函数是表示神经元输人与输出之间关系的函数,根 据 激发函数的不同,可以得到不同的神经元模型。常用的神经元模型有以下几种。
- 阈值型 (threshold):这种模型的神经元没有内部状态,激活函 数是一个阶跃函数:
阈值型神经元是一种最简单的人工神经元,也就是前面提 到的MP模型。它的两个输出值1和0,分别代表神经元的兴奋和抑制状态。任一时刻,神经元的状态由激发函数来决 定 。当激活值a>0时,即神经元输人的加权总和超过给定的阈值时,该神经元被激活,进人兴奋状态,其激发函数f(σ)的值为1;否则,当σ< 0时,即神经元输入的加权总和不超过给定的阈值时,该神经元不被激活,其激发函数f(σ)的值为0。
- 分段线性型(piecewise linear)。这种模型又称为伪线性,其激发函数是一个分段线性函数:
式中k为放大系数,该函数的输人/输出之间在一定范围内满足线性关系,一直延续到输出为最大值1为止。但当达到最大值后,输出就不再增大。
- S型(sigmoid):这是一种连续的神经元模型,其激发函数也是一个有最大输出值的非线性函数,其输出值是在某个范围内连续取值的,这种模型的激发函数常用指数、对数或双曲正切等S型函数表示。它反映的是神经元的饱和特性,如下图所示。
常见的S型函数:Sigmoid函数,tanh函数
- 子阈累积型(subthreshold summation):这种模型的激发函数也是一 个非线性函数,当产生的激活值超过了值时,该神经元被激活并产生一个反响。在线性范围内,系统的反响是线性的,如图所示。这种模型的作用是抑制噪声,即对小的随机输人不产生反响。
人工神经网络
人工神经网络是对人类神经系统的一种模拟。基于对人类生物系统的认识,人们试图通过对人工神经元的广泛互联来模拟生物神经系统的结构和功能。人工神经元之间通过互联形成的网络称为人工神经网络。
互联结构
人工神经网络的互联结构(或称拓扑结构)是指单个神经元之间的联结模式,它是构造神经网络的基础,也是神经网络诱发偏差的主要来源。从互联结构的角度,神经网络可分为前馈网络和反馈网络两种主要类型。
前馈网络
前馈网络是指只包含前向联结,而不存在任何其他联结方式的神经网络。根据网络中所拥有的计算节点(即具有联结权值的神经元)的层数,前馈网络又可分为单层前馈网络和多层前馈网络两大类。
反馈网络
反馈网络是指允许采用反馈联结方式所形成的神经网络。反馈联结方式是指一个神经元的输出可以被反馈至同层或前层的神经元。通常把那些引出有反馈联结弧的神经元称为隐神经元,其输出称为内部输出。
反馈网络和前馈网络不同。前馈网络属于非循环联结模式,它的每个神经元的输入都没有包含该神经元先前的输出,因此不具有“短期记忆”的性质。但反馈网络则不同,它的每个神经元的输入都有可能包含该神经元先前输出的反馈信息,即一个神经元的输出是由该神经元当前的输入和先前的输出这两者来决定的,这就有点类似于人类的短期记忆的性质。
按照网络的层次概念,反馈网络也可以分为单层反馈网络和多层反馈网络两大类。单层反馈网络是指不拥有隐含层的反馈网络。多层反馈网络则是指拥有隐含层的反馈网络,其隐含层可以是一层,也可以是多层。反馈网络的典型代表是Hopfield网络。
网络模型
网络模型是对网络结构、联结权值和学习能力的总括。例如,传统的感知器模型,具有误差反向传播功能的BP网络模型,采用反馈联结方式的Hopfield网络模型,采用多变量插值的径向基函数网络模型,建立在统计学习理论基础上的支撑向量机网络模型,以及基于模拟退火算法的随机网络模型等。
感知器模型
对感知器,可根据网络中所拥有的计算节点的层数,将其分为单层感知器和多层感知器。
- 单层感知器:单层感知器是一种只具有单层可计算节点的前馈网络。在单层感知器中,每个可计算节点都是一个线性阈值神经元。当输入信息的加权和大于或等于阈值时,其输出为1,否则,其输出为0或-1。使用感知器的主要目的是为了对外部输人进行分类。如果外部输入是线性可分的(指存在一个超平面可以将它们分开),则单层感知器一定能够把它划分为两类。
- 多层感知器:多层感知器是通过在单层感知器的输入、输出层之间加入一层或多层处理单元所枸成的。其拓扑结构与多层前 馈网络相似,差别仅在于其计算节点的联结权值是可变的。多层感知器可以实现非线性可分问题的分类。
BP网络模型
BP(error Back Propagation)网络是误差反向传播网络的简称,BP网络的网络拓扑结构是多层前馈网络,如图所示。在BP网络中,同层节点之间不存在相互联结,层与层之间多采用全互联方式,且各层的联结权值可调。BP网络实现了明斯基的多层网络的设想,是当今神经网络模型中使用最广泛的一种。
BP网络的学习过程是由工作信号的正向传播和误差信号的反向传播组成的。正向传播过程是指,输入模式从输入层传给隐含层,经隐含层处理后传给输出层,再经输出层处理后产生一个输出模式的过程。如果正向传播过程所得到的输出模式与所期望的输出模式有误差,则网络将转为误差的反向传播过程。误差反向传播过程是指,从输出层开始反向把误差信号逐层传送到输入层,并同时修改各层神经元的联结权值,使误差信号最小。重复上述正向传播和反向传播过程,直至得到所期望的输出模式为止。
对于BP网络的学习算法,我们将在下面的第联结学习中讨论。但需要指出以下两点:
- 网络仅在其学习(即训练)过程中需要进行正向传播和反向传播,一旦网络完成学习过程,被用于问题求解时,则只需正向传播,而不需要再进行反向传播;
- 尽管从网络学习的角度,信息在BP网络中的传播是双向的,但并不意味着网络层次之间的联结也是双向的,BP网络的结构仍然是一种前馈网络。
Hopfield网络模型
Hopfield网络是一种单层全互联的对称反馈网络模型。它可分为离散Hopfield网络和连续Hopfield网络。
离散Hopfield网络是在非线性动力学的基础上,由若干基本神经元构成的一种单层全互联网络,其任意神经元之间均有联结,并且是一种对称联结结构。离散Hopfield网络的典型结构如下图所示。离散Hopfield网络模型是一个离散时间系统,每个神经元只有0和1(或-1和1)两种状态,任意神经元i 和j之间的联结权值为wij。由于神经元之间为对称联结 ,且神经元自身无联结,因此由该联结权值所构成的联结矩阵是一个零对角的对称矩阵。
离散Hopfield网络中的神经元与生物神经元的差别较大,原因是生物神经元的输人/输出是连续的,并且生物神经元存在延时。为 此,霍普菲尔特后来又提出了一种连续时间的神经网络,即连续Hopfield网络模型。在该网络中,神经元的状态可取0〜1之间的任一实数值。
在如图所示的离散Hopfield网络中,网络的输出要反复地作为输人重新传送到其输入层,这就使得网络的状态处在一种不断改变中,因此需要考虑网络的稳定性问题。一个网 络是稳定的,是指从某一时刻开始,网络的状态不再改变。 设x (i )表示网络在时刻f的状态。例如,当Z=0时,网络的状态就是由输人模式确定的初始状态。如果从某一时刻t开 始 ,存在一个有限的时间△t,使得从这一时刻开始,网络的状态不再发生变化,即x(t+△t)=x(t) (△t>0)则称该网络是稳定的。如果将神经网络的稳定状态看成是记忆,则神经网络由任一初始状态向稳定状态的变化过程实质上是模拟了生物神经网络的记忆功能。
联结学习机制
概述
联结学习也称神经学习,它是一种基于人工神经网络的学习方法。利用神经网络解决问题,一般分为训练和工作两个阶段。训练阶段的主要目的是要从训练样本中提取隐含知识和规律,并存储在网络中,供工作阶段解决问题使用。联结学习是指神经网络的训练过程,其主要表现为联结权值和阈值的调整。下面主要介绍联结学习的生理学基础和学习规则。
联结学习的生理学基础
联结学习是对人脑神经系统学习机理的一种模拟,揭示人脑神经系统的学习机理是联结学习研究的一个重要基础。根据脑科学研究,人脑学习和记忆的生理基础是中枢神经系统,记忆和学习的基本单位是单个神经元。
- 人脑神经网络的可塑性:现代神经生理学研究表明,人脑中枢神经系统中的每个神经元都具有根据剌激变化随时形成新的突触连接的能力,神经元及其突触连接的这种变化特性被称为神经元的可修饰性。在神经网络中,神经元的修饰可直接引起神经网络连接及连接权值的变化,这种由神经元修饰引起神经网络变化的特性又被称为神经网络的可塑性。人类中枢神经系统是一个具有高度可塑特性的神经网络系统,它为人类一生的不断学习提供了可靠的神经基础。
- 人脑学习研究的不同学派:目前,关于人脑学习和记忆机制的研究有两大学派,一个是化学学派,另一个是突触修正学派。
- 化学学派:化学学派认为人脑经学习所获得的信息是记录在某些生物大分子之上的。例如,蛋白质、核糖核酸、神经递质,就 像遗传信息是记录在DNA上一样。
- 突触修正学派:而突触修正学派认为人脑学习所获得的信息是分布在神经元之间的突触联结上的。按照后种观点 ,人脑的学习和记忆过程实际上是一个在训练中完成的突触联结权值的修正和稳定过程。其中,学习表现为突触联结权值的修正,记忆则表现为突触联结权值的稳定。实 际上,突触修正假说已成为人工神经网络学习和记忆机制研究的心理学基础,与此对应的权值修正学派也一直是人工神经网络研究的主流学派。该学派认为,人工神经网络的学习过程就是一个不断调整网络联结权值的过程。
联结学习规则
联结学习可以有多种不同的分类方法。例如,可按照学习方式分为有导师学习、无导师学习和强化学习;也可按照学习规则分为Hebb学习、纠错学习、竞争学习及随机学习等。所谓学习规则,可简单地理解为学习过程中联结权值的调整规则。下面主要针对最后一种分类方法,重点讨论常用的神经学习规则。
- Hebb规则主要用于调整神经网络的突触联结权值,可概括地描述为:如果神经网络中某一神经元同另一直接与它联结的神经元同时处于兴奋状态,那么这两个神经元之间的联结强度将得到加强,反之应该减弱。Hebb学习是神经学习中影响较大的一种学习规则,现已成为许多神经网络学习的基础。 但 是 ,目前许多神经生理学的研究表明,Hebb规则并未准确地反映出生物学习过程中突触变化的基本规律。它只是简单地将突触在学习中的联想特性形式化,认为对神经元重复同一剌激就可以产生性质相同、程度增强的反应。但目前神 经生理学的研究并没有得到Hebb突触特性的直接证据,相反地,同一刺激模式对生物机体的重复作用,则有可能造成机体的习惯化。习惯化将减弱机体对刺激的反应,这与Hebb规 则的含义正好相反。它说明Hebb规则不能作为生物神经元间突触变化和生物机体学习的普遍规律。
- 纠错学习也叫误差修正学习,或叫Delta规则。它是一种有导师的学习过程,其基本思想是利用神经网络的期望输出与实际输出之间的偏差作为联结权值调整的参考,并最终减少这种偏差。最基本的误差修正规则规定:联结权值的变化与神经元期望输出和实际输出之差成正比
- 选择一组初始权值wij(0)。
- 计算某一输入模式对应的实际输出与期望输出的误差。
- 按照上述修正规则更新权值。
- 返回第3步,直到对所有的训练模式其网络输出均能满足要求为止。 上述简单形式的误差修正规则只能解决线性可分模式的分类问题,不能直接用于多层网络。为克服这种局限性,又出现了改进规则,对此我们不再介绍。
- 竞争学习是指网络中某一组神经元相互竞争对外界刺激模式响应的权力,在竞争中获胜的神经元,其联结权值会向着对这一刺激模式竞争更为有利的方向发展。相对来说,竞争获胜的神经元抑制了竞争失败神经元对刺激模式的响应。竞争学习的最简单形式是任一时刻都只允许有一个神经元被激活,其学习过程可描述为:
- 将一个输入模式送给输入层LA。
- 将LA层神经元的激活值送到下一层LB 。
- LB层神经元对LA层送来的剌激模式进行竞争,即每一个神经元将一个正信号送给自己(自兴奋反馈),同时将一个负信号送给该层其他神经元(横向邻域抑制)。
- 最后,LB层中输出值最大的神经元被激活,其他神经元不被激活,被激活的神经元就是竞争获胜者。LA层神经元到竞争获胜神经元的联结权值将发生变化,而LA层神经元到竞争失败的神经元的联结权值不发生变化。
竞争学习是一种典型的无导师学习,学习时只需要给定一个输入模式集作为训练集,网络自行组织训练模式,并将其分成不同类型。
- 随机学习的基本思想是结合随机过程、概率和能量(函数)等概念来调整网络的变量,从而使网络的目标函数达到最大(或最小)。其网络变化通常遵1循以下规则:
- 如果网络变量的变化能使能量函数有更低的值,那么就接受这种变化。
- 如果网络变量变化后能量函数没有更低的值,那么就按某一预先选取的概率分布接受这一变化。 可见,随机学习不仅可以接受能量函数减少(性能得到改善)的变化,而且还可以以某种概率分布接受使能量函数增大(性能变差)的变化。对后一种变化,实际上是给网络变量引入了噪声,使网络有可能跳出能量函数的局部极小点,而向全局极小点的方向发展。模拟退火算法(Simulated Armealing,SA)就是一种典型的随机学习算法。
感知器学习
单层感知器学习算法
单层感知器学习实际上是一种基于纠错学习规则,采用迭代的思想对联结权值和阈值进行不断调整,直到满足结束条件为止的学习算法。
假设X(k)和W(k)分别表示学习算法在第k次迭代时输人向量和权值向量,为叙述方便,通常把阈值θ(k)作为权值向量W(k)中的第一个分量,对应地把“一1”固定地作为输人向量W(k)中的第一个分量。即W(k)和X(k)可分别表示为
X(k) = (-1, x1(k), x2(k),…,xn(k))
W(k) = (θ(k), ω1(k), ω2(k),…,ωn(k))
即:x0(k)=-1,ω0(k)=θ(k)。
单层感知器学习是一种有导师学习,它需要给出输入样本的期望输出。假设一个样本空间可被划分为A,B两类。其激活函数的定义为:如果一个输人样本属于A类,则激活函数的输出为+ 1,否则其输出为-1。对应地,也可将期望输出(亦称为导师信号)定义为:当输入样本属于A类时,其期望输出为+1,否则为一1。 在上述假设下,单层感知器学习算法可描述如下:
- 设t=0, 初始化联结权值和阈值。即给叫(0)(i=l,2,… ,n)及 θ(0)分别赋予一个较小的非零随机数,作为它们的初始值。其中,ωi(0)是第0次迭代时输入向量中第i个输入的联结权值;θ(0)是第0次迭代时输出节点的阈值。
- 提供新的样本输人xi(t)(i=l,2,…,n)和期望 输出d(r)。
- 计算网络的实际输出y(t)=f(∑i(t)xi(t)-θ(t))
- 若y(t)=1,不需要调整联结权值,转(6)。否则,需要调整联结权值,执行下一步。
- 调整联结权值ωi(t+1)=ωi(t)+η[d(t)-y(t)]xi(t).其中0<η≤1,是一个增益因子,用于控制修改速度,其值不能太大,也不能太小。如果η的值太大 ,会影响ωi(t)的收敛性;如果太小,又会使ωi(t)的收敛速度太慢。
- 判断是否满足结束条件,若满足,算法结束;否则,将t值 加1,转(2)重新执行。这里的结束条件一般是指ωi(t)对一切样本均 稳定不变。
对上述算法,如果输入的两类样本是线性可分的,即这两类样本可以分别落在某个超平面的两边,则该算法就一定会最终收敛于将这两类模式分开的那个超平面上。否 则 ,该算法将不 会收敛。其原因是,当输入不可分且重叠分布时,在上述算法的收敛过程中,其决策边界会不断地摇摆。
多层感知器可以解决线性不可分问题。但由于多层感知器的隐层神经元的期望输出不易准确给出,因此单层感知器的学习算法很难直接用于多层感知器的学习。又由于多层感知器和BP网络都属于多层前馈网络,并且BP算法较好地解决了多层前馈网络的学习问题,因此,下面重点讨论BP网络学习。
BP网络学习
BP网络是一种误差反向传播网络,其学习算法称为BP学习算法,或简称BP算法。本节主要介绍BP算法的传播公式,BP算法的描述,以及BP网络学习的有关问题。
基础
BP网络学习的网络基础是具有多层前馈结构的BP网络。为讨论 方便,下面的三层BP网络。 分别用i,j,k表示输入层、隐含层、输出层节点,且有以下符号表示。
Oi,Oj</sub,Ok表示输入层节点i 、隐含层节点j,输出层节点k的输出。\ Ii,Ij</sub,Ik表示输入层节点i 、隐含层节点j,输出层节点k的输出。\ wij,wjk表示从输入层节点i到隐含层节点、输出层节点j到输出层节点是的联结权值。\ θj,θj氏表示隐含层节点j、输出层节点k的阈值。
Hopfield网络学习
能量函数
能量函数是用来描述Hopfield网络的稳定性的,离散Hopfield网络的能量函数可定义为式中,n是网络中的 神经元个数; wij是第i个神经元和第j个神经元之间的联结权值,且有和wij=wji;分别是第i个神经元和第j个神经元的输出;θi是第i个神经元的阈值。
学习算法
- 设置联结权值
- 对未知类别的样例初始化
- 迭代运算
- 否则,转第2步继续