第2章 神经网络算法
人工神经网络是一种神经计算模型,它在细胞的水平上模拟智能。通过建立人工神经元模型、神经网络模型及其学习算法,可以从连接机制上模拟人脑右半球的形象思维功能。信息的输入、处理和输出构成了神经元的三要素;神经元、神经网络模型及其学习算法构成了神经网络系统的三要素。一个三层BP神经网络可以逼近任何在闭区间内的一个连续函数,因而神经网络同模糊系统一样可用于参数优化、系统建模等领域。本章介绍神经细胞与神经网络的结构、神经网络的训练、学习规则及神经网络的逼近特性等。
2.1 神经细胞结构与功能
人的智能来源于大脑的一百多亿个神经细胞。一个神经细胞由细胞体、树突和轴突组成,如图2.1所示。细胞体由细胞核、细胞质和细胞膜组成。细胞体外面的一层厚为5~10nm的膜,称为细胞膜,膜内有一个细胞核和细胞质。树突是细胞体向外伸出的许多1mm左右长的树枝状突起,用于接收其他神经细胞传入的神经冲动。
图2.1 一个神经细胞的结构
图2.2 神经细胞的兴奋脉冲
神经细胞在结构上具有以下两个重要的特征。
(1)细胞膜有选择的通透性:每个神经细胞用细胞膜和外部隔开,使细胞内、外有不同的电位。把没有输入信号的膜电位称为静止膜电位,约为-70mV。当有输入信号时(其他神经细胞传入的兴奋信号)使膜电位比静止膜电位高15mV左右时,该神经细胞就被激发,在1ms内就达到比静止膜电位高100mV左右。
(2)突触连接的可塑性:神经细胞之间通过突触相连接,这种连接强度根据输入和输出信号的强弱而产生可塑性变化。细胞膜有选择的通透性使神经细胞具有阈值特性,如图2.2所示。神经细胞的阈值特性可表示为
其中,θ是一个阈值,随着神经元的兴奋而变化,神经元兴奋时发出的电脉冲具有突变性和饱和性。突触是指一个神经元轴突末梢和另一个神经元树突或细胞体之间微小的间隙,直径为0.5~2μm,用于两个神经元之间传递信息。突触结合强度即连接权重w根据输入和输出信号的强弱,即两个神经元的活性(兴奋程度)情况而产生可塑性变化,可以认为由于这一点使神经元具有长期记忆和学习功能。
2.2 人工神经元的基本特性
神经元是一个多输入单输出的信息处理单元,它的形式化结构模型如图2.3所示,其中x1,x2,…,xn表示来自其他神经元轴突的输出信号,w1,w2,…,wn分别为其他神经元与神经元i的突触连接强度,θi为神经元i的兴奋阈值。每个神经元信息处理过程可描述如下。
图2.3 神经元的形式化结构模型
其中,Si为神经元i的状态;ui为神经元i膜电位;yi为神经元i的输出;g(·)为活性度函数;f(·)为输出函数。输出函数常用5种类型,如图2.4所示。
图2.4 神经元常用的输出函数类型
上述输出函数y=f(u)都具有突变性及饱和性,用于模拟神经细胞兴奋产生神经冲动和疲劳时的饱和特性。
2.3 人工神经网络及其特点
大脑神经网络是由大量的神经细胞依靠大量的突触连接成神经网络的,为了模拟神经网络,采用层状、网状形式将人工神经元连接成网络。人工神经网络具有以下主要特点。
(1)对信息存储是分布式的,因而具有很强的容错性。
(2)对信息的处理和推理具有并行的特点。
(3)具有很强的自组织、自学习的能力。
(4)具有从输入到输出非常强的非线性映射能力。
下面通过一个如图2.5所示的简单神经网络结构来说明人工神经网络的主要特点。
图2.5 一个简单的神经网络结构
设x1,x2,x3,x4为神经网络输入,经神经元N1,N2,N3,N4的输出分别为,,,,然后经过突触权wij连接到y1,y2,y3,y4的输入端,进行累加。
为简单起见,设θi=0,并将式(2.2)~(2.4)转换为
又设为二值变量,且,j=1,2,3,4。
xj是感知器输入,用向量x′=(1,-1,-1,1)T表示眼看到花、鼻嗅到花香的感知输入,从x1到y1可通过一个连接矩阵W1来得到,即
经计算
y1=[-1,-1,+1,+1]T
这表示网络决策x1为一朵花。
不难看出,x1→y1不是串行计算得到的,因为W1可以用一个VLSI中电阻矩阵实现,而yi=f(vi)也可以用一个简单运算放大器来模拟,不管x1和y1维数如何增加,整个计算只用了一个运放的转换时间,网络的动作是并行的。
如果x2=[-1,+1,-1,+1]T表示眼看到苹果、鼻嗅到苹果香味的感知器输入,通过矩阵
得到y2=[-1,+1,+1,-1]T表示网络决策x2为苹果。
从式(2.8)和式(2.9)的权来看,并不知道其输出结果是什么。从局部权的分布也很难看出W中存储什么,这是因为信息是分布存储在权中,把式(2.8)、式(2.9)相加,得到一组新的权
由x1输入,通过权阵W1运算可得到y1,由x2输入,通过权阵W2运算可得到y2,这说明W存储了两种信息,当然也可以存储多种信息。
如果感知器中某个元件损坏了一个,设第3个损坏,则x1=[1,-1,0,1]T,经W算得y1=[-1,-1,+1,+1]T,而x2=[-1,+1,0,1]T,经W算得y2=[-1,1,1,-1]T的结果和前面的一样,这说明人工神经网络具有一定的容错能力。
2.4 前向神经网络的结构、训练及学习
人脑中大量的神经细胞通过突触形式相互联系,构成结构与功能十分复杂的神经网络系统。人工神经网络也必须将一定数量的神经元适当地连接成网络,从而建立起多种神经网络模型。下面只介绍最常见的前向神经网络结构。
前向网络包含输入层、隐层(一层或多层)和输出层,如图2.6所示为一个三层网络。这种网络的特点是只有前后相邻两层之间神经元相互连接,各神经元之间没有反馈。每个神经元可以从前一层接收多个输入,并只有一个输出给下一层的各神经元。
人脑中的神经元通过许多树突的精细结构,收集来自其他神经元的信息,神经元又通过轴突发出电活性脉冲。轴突分裂为上千条分支,在每条分支末端,通过突触的结构把来自轴突的电活性变为电作用,从而使与之相连的各种神经元的活性受到抑制或产生兴奋。
当一个神经元收到兴奋输入,而兴奋输入又比神经元的抑制输入足够大时,神经元把电活性脉冲向下传送到它的轴突,改变轴突的有效性,从而使一个神经元对另一个神经元的影响改变,便产生了学习行为。因此,可以认为神经网络学习的本质特征在于神经细胞特殊的突触结构所具有的可塑性连接,而如何调整连接权重就构成了不同的学习算法。
图2.6 三层前向神经网络的结构
神经网络按学习方式分为有教师学习和无教师学习两大类,如图2.7给出了这两种学习方式的直观示意图。
图2.7 神经网络的训练与学习过程示意图
(1)神经网络的训练如图2.7所示的上半部分,在训练学习中教师提供的样本数据集是指成对的输入和输出数据集,实际上代表了实际问题的输入输出关系。训练的过程就是根据输入网络的和网络输出的正误程度来反复调整权重的大小,直到网络的实际输出全部等于期望的输出为止,训练过程结束。
(2)神经网络的学习如图2.7所示的下半部分,神经网络学习旨在根据实际输出数据和期望输出之间的误差,通过某种学习算法自动地、反复地去调整权值直到消除误差。要使人工神经网络具有学习能力,就是使神经元之间的结合模式变化,这同把连接权重用什么方法变化是等价的。因此,通过学习算法可实现对突触结合强度的调整,使其具有记忆、识别、优化等信息处理功能。
(3)神经网络的泛化能力是指神经网络在经过样本数据集的训练后,当输入出现了样本数据集以外的新数据时,神经网络仍能通过学习获得新的输出,并能严格保持神经网络训练后所获得的输入输出映射关系的能力。网络的结构、训练样本的数量及质量都会影响泛化能力。
(4)神经网络的生长与修剪是指通过改变神经网络的结构和参数,可以改变网络的规模大小,使之更适合于某个问题的求解。对于前向网络的生长算法,从单个隐层的小网络开始,通过增加一个隐层重新训练,一直持续到在增加一个单元网络的性能不再改变为止。相反,修剪是先从相对大的网络开始,再逐渐剪去不必要的单元,直到获得满意的网络性能为止。
2.5 神经网络的学习规则
1. 联想式学习——Hebb规则
1949年,神经心理学家Hebb提出突触前与突触后两个同时兴奋的神经元之间的连接强度将得到增强。后来研究者们将这一思想加以数学描述,称为Hebb学习规则。如图2.8所示,从神经元uj到神经元ui的连接强度,即权重变化ΔWij可表示为
其中,ti(t)为神经元ui的教师信号;函数G为神经元ui的活性度ai(t)和教师信号ti(t)的函数;H为神经元uj输出和连接权重ΔWij的函数。
输出与活性度ai(t)之间满足如下关系。
其中,fj为非线性函数。
当上述教师信号ti(t)没有给出时,函数H只与输出成正比,于是(2.11)式可变为更简单的形式为
其中,η为学习率常数(η>0)。
式(2.13)表明,对一个神经元较大的输入或该神经元活性度大的情况,它们之间的连接权重会更大。Hebb学习规则的哲学基础是联想,以Hebb规则为基础发展了许多联想学习模型。
图2.8 Hebb学习规则
2. 误差传播式学习
前述的函数G与教师信号ti(t)和神经元ui实际的活性度ai(t)的差值成比例,即
G[ai(t),ti(t)]=η1[ti(t)-ai(t)](2.14)
其中,η1为正数;把差值[ti(t)-ai(t)]称为δ。
函数H和神经元uj的输出成比例,即
其中,η2为正数。
根据Hebb学习规则可得
其中,η为学习率常数(η>0)。
在式(2.16)中,如将教师信号ti(t)作为期望输出di,而把ai(t)理解为实际输出,则该式变为
其中,为期望输出与实际输出的差值。式(2.17)称为δ规则,又称误差修正规则。根据这个规则的学习算法,通过反复迭代运算直至求出最佳的ΔWij值,使δ到最小。
除了上述学习规则外,还有从统计力学、分子热力学和概率论中关于系统稳态能量的标准出发,进行神经网络学习的概率式学习;在神经网络中的兴奋性或抑制性连接机制中引入竞争机制的竞争式学习;将奖惩机制引入神经网络的再励学习等。
2.6 前向网络误差反向传播学习算法及其逼近特性
如图2.9所示,前向网络的输入层和输出层各为一层。输入信息从输入层经中间层传递到输出层,在各层神经元之间没有相互连接和信息传递。输入层和输出层神经元的个数由具体问题而定,中间层神经元个数一般根据经验公式或实验选定。前向网络又称为BP网络,其误差反向传播学习过程如下。
(1)网络初始化,权值初始值设为小的随机数。
(2)向输入层输入向量,输入向量向输出层传播,各神经元求出来自前一层神经元的加权值和,由双曲函数决定输出值为
yj=f(∑wijxi)(2.18)
(3)向输出层输入教师信号。
(4)调整权值的学习算法为
Wij(t+1)=Wij(t)+ηδjyj(2.19)
其中,η为学习率,为大于零的增益;δj为节点j的误差。根据节点形式不同,δj由下式分别计算:
图2.9 前向网络误差反向传播学习算法示意图
(5)转向步骤(2),重复步骤(2)~步骤(4),直到学习得到最佳权值。
为了加快BP网络的学习速度,可以采用变学习步长,或者引进惯性项等方法。惯性是借用力学中的概念,不仅考虑当前值,也考虑过去对现在的影响。
1989年,Robert Hecht-Nielson证明了对于任何在闭区间内的一个连续函数都可以用一个隐层的BP网络来逼近,因而一个3层的BP网络可以完成任意的n维到m维的映射。这个定理的证明,数学上依据Weierstrass的两个逼近定理(证明略)。