摘 要: 本文主要对MLP、RBF、SVM三种神经网络进行了详细的分析与讨论,从三种网络的结构、学习算法、功能和性能等方面进行了比较。同时,结合自己的研究方向讨论了三种结构的神经网络的应用前景。
1. 引言
神经网络(neural network,NN)是一个以有向图为拓扑结构的动态系统,它通过对连续或断续式的输入作状态响应而进行信息处理。是一个高度复杂的非线性动力学系统,不但具有一般非线性系统的共性,更主要的是它还具有自己的特点,比如高维性、神经元之间的广泛互连性以及自适应性或自组织性等。
神经网络是在许多学科的基础上发展起来的,它的深入研究必然会带动其它相关学科的发展。它在数学理论本质上是非线性的数学理论,因此,现代非线性科学方面的进展必将推动神经网络的研究,同时,神经网络理论也会对非线性科学提出新课题。MLP(multilayer perceptron)、RBF(radial basis funtion)、SVM(support vector machine)三种网络是神经网络中研究的一个重点,它们具有很强的分类能力,它能解决模式分布非常复杂的分类问题,但是在结构和功能上存在一些差别。
1. 网络结构
2.1单隐层MLP网络结构
它由三部分组成:一组感知单元(源节点)组成输入层、一层计算节点的隐含层、一层计算节点的输出层。第一层的激活函数为对数s形函数,第二层激活函数为线性函数。如图1所示,第一层的输出为,第二层的输出为,其中a为输出,上标代表网络的层数,W为各层的权值,b为网络偏置。MLP是单层感知机的推广,它能解决单层感知机所不能解决的非线性问题。
图1单隐层MLP网络结构
2.2 RBF网络结构
RBF网络是一个三层结构的前馈网,它的隐层为径向基神经元结构。径向基神经元的净输入采用距离函数(如欧式距离)乘以偏置,并使用径向基函数作为激活函数。网络结构如下图2所示。
图2 RBF网络结构
其中,R代表输入层并指出输入维数;代表由径向基神经元构成的隐层并指出神经元数目;是线性输出层。
它的基本思想是:用RBF作为“隐”单元的基构成隐含层空间,将输入矢量直接(即不需要经过权连接)映射隐空间;当RBF的中心确定后,映射关系也就确定了;隐含层空间到输出层空间直接的映射是线性的。
2.3 SVM网络结构
SVM是一种基于结构风险最小化准则的学习方法。对于线性可分的二分类问题,试图寻找最优线性分界面,让这个分界面使两类模式向量分开的间隔最大,SVM网络原理如图3所示。对于线性不可分的二分类问题,通过寻找一个核函数,通过某种非线性映射将样本映射到一个高维空间(特征空间),在这个高维空间中构造最 优分类超平面,不同的核函数将形成不同的算法,常用的有多项式核函数,径向基函数,其结构如图4所示。
图3 SVM网络原理图
两分类的线性判别函数的一般表达式为 ,其支持向量机的最优分界面为:
图4 SVM网络结构
对于线性不可分的问题,通过某种非线性映射将样本映射到一个高维空间,在这个高维空间构造最优分类超平面,最优超平面为。
3. 学习算法
3.1单隐层MLP网络学习算法
3.1.1 BP学习算法
BP算法是LMS算法的扩展,它使用均方误差最小化的最速下降法,用来训练MLP网络。LMS算法则用来训练单层的感知机。核心思想是将输出误差以某种形式通过隐层向输入层逐层反传,即信号的正向传播,误差的反向传播。近似最速下降法表示如下:
BP算法流程如下:①前向传播:给各连接权值分别赋一个区间(-1,1)内的随机数,选择一个数据输入,从第一层开始,计算每一层输出并保存各层输出。
②反向传播:计算最后一层输出和目标输出的差e=t-a,并根据公式计算最后一层的敏感性,其中为网络第M层输出函数对净输入n求导,最后一层为线性函数,求导为1。按照公式计算前一层的敏感性,直到第一层,其中为第m层到m-1层的权值。③调权值:可以从第一层开始,也可以从最后一层开始进行调权,可按照下公式调节权值。
④选择下一个输入,继续上面的过程,直到网络收敛为止。
标准BP算法实际上是一种简单的最速下降静态寻优算法,在修正W(k)时,只是按照k时刻的负梯度方式进行修正,而没有考虑到以前积累的经验,即以前时刻的梯度方向,从而使学习过程发生振荡,收敛缓慢。
3.1.2 基于动量的BP学习算法
由于BP算法的收敛速度比较慢,可能有多个局部极小点,有不稳定性,故提出基于动量的BP算法。它能平滑振荡提高收敛性能。故引入一个动量系数 ,当增加时,振荡减小,从而有利于减少振荡数目,保持平均值。改进公式为:
动量可以维持算法稳定的前提下使用更高的学习速度。动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制网络陷入局部最小。
3.1.3 可变学习速度的BP算法
它试图在较平坦的曲面提高学习速度,而在斜率增大时减小学习速度。它的规则如下:
1)如果误差平方(在整个训练集上)在权值更新后增加了百分数z (典型值为1%至5%),则取消权值更新,学习速度乘上一个因子 (1 > r > 0),并且动量系数 g 置为 0。
2)如果误差平方在权值更新后减少,则接受权值更新,并且学习速度乘上一个因子 h>1,如果动量系数 g 先前被置为0,则恢复到先前的值。
3)如果误差平方的增加少于z,则接受权值更新,但是学习速度和动量系数不变。
改进的BP算法也有些缺点:需要设置一些额外的参数,并且算法性能对参数变化很敏感,参数的选择还和问题有关。容易使一些能收敛的数据变得不可收敛。目前还有许多的改进算法,遗传算法(GA)和模拟退火算法等多种优化方法用于BP算法的改进(这些方法从原理上讲可通过调整某些参数求得全局极小点),但在应用中,这些参数的调整往往因问题不同而异,较难求得全局极小点。这些方法中应用最广的是增加了冲量(动量)项的改进BP算法。
3.2 RBF网络学习算法
RBF学习算法需要确定的网络参数为基函数的中心和方差,隐层到输出层的权值。
1.自组织选取中心法
a) 第一步,自组织学习阶段
无导师学习过程,求解隐含层基函数的中心与方差。
b) 第二步,有导师学习阶段(仿逆或LMS方法)
求解隐含层到输出层之间的权值。
采用高斯函数作为径向基函数,如下:
网络的输出为:
设d是样本的期望输出值,那么基函数的方差可表示为:
自组织选取中心法的步骤:
第一步:采用K-均值聚类方法求取基函数中心
①网络的初始化,随机选取h个训练样本作为聚类中心
②将输入的训练样本集合按最近邻规则分组,按照 与中心为 之间的欧氏距离将 分配到输入样本
的各个聚类集合 中。
③重新调整聚类中心,计算各个聚类集合 中训练样本的平均值,即新的聚类中心 ,如果新的聚类中心不再发生变化,则所得到的 即为RBF神经网络最终的基函数中心,否则返回②,进入下一轮的中心求解。
第二步,求解方差。RBF神经网络的基函数为高斯函数时,方差可由下式求解。
式中 Cmax为中所选取中心之间的最大距离。
第三步,确定隐层到输出层之间的权值。隐含层至输出层之间神经元的连接权值可以用最小二乘法直接计算得到,公式如下:
2.随机选取中心法
3.有监督选取中心法
4.正交最小二乘法
3.3 SVM网络学习算法
SVM网络学习的过程就是确定支持向量机的最优分界面的过程。即寻找使
构造Lagrange函数 求出使其值最大的,即可求出权值。
(1) “块算法”。具体作法是选择一部分样本构成工作样本集进行训练,剔除其中的非支持向量,并用训练结果对剩余样本进行检验,将不符合训练结果的样本(或其中的一部分) 与本次结果的支持向量合并成为一个新的工作样本集,然后重新训练,如此重复下去直到获得最优结果. 当支持向量的数目远远小于训练样本数目时,“块算法”能够大大提高运算速度. 然而,如果支持向量的数目本身就比较多,随着算法迭代次数的增多,工作样本集也会越来越大,算法依旧会变得十分复杂。
(2) “分解算法”。把问题分解成为固定样本数的子问题,工作样本集的大小固定在算法速度可以容忍的限度内,迭代过程中只是将剩余样本中部分“情况最糟的样本”与工作样本集中的样本进行等量交换,即使支持向量的个数超过工作样本集的大小也不改变工作样本集的规模,而只对支持向量中的一部分进行优化。
4. 网络的功能和性能
4.1 单隐层MLP网络功能和性能
(一)功能
1)函数逼近与预测分析:用输入矢量和相应的输出矢量训练一个网络,逼近一个函数或预测未知信息。
2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来。
3)分类:把输入矢量以所定义的集合按合适方式进行分类。
4)数据压缩:减少输出矢量维数以便于传输与存储。
(二)性能
1)非线性映射能力
能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
2)泛化能力
当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。
3)容错能力
输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。
4)网络训练失败的可能性较大
从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值, 因此, 算法很有可能陷入局部极值,使训练失败。
5)网络结构的选择尚无一种统一而完整的理论指导, 一般只能由经验选定。为此,有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题。
4.2 RBF网络功能和性能
(一)功能
RBF网络常用于函数逼近和分类问题。输入层将网络与外界环境连接起来,隐层实现从输入空间到隐层空间之间的非线性变换,输出层是线性的,完成隐层输出的加权和。它能以任意精度逼近任一连续函数,可以处理系统内在的难以解析的规律性, 并且具有极快的学习收敛速度, 因此RBF网络有较为广泛的应用, 目前常用于于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。
(二)性能
1)它是一种前向网络。网络隐层节点的非线性变换把线性不可分问题转化为线性可分问题。
2)隐单元的激活函数通常为具有局部接受域的函数,即仅当输入落在输入空间中一个很小的指定区域中时,隐单元才作出有意义的非零响应。因此,RBF网络有时也称为局部接受域网络。
3)RBF网络的局部接受特性使得其决策时隐含了距离的概念,即只有当输入接近RBF网络的接受域时,网络才会对之作出响应。这就避免了BP网络超平面分割所带来的任意划分特性。
4)在RBF网络中,输入层至输出层之间的所有权重固定为1,隐层RBF单元的中心及半径通常也预先确定,仅隐层至输出层之间的权重可调。RBF网络的隐层执行一种固定不变的非线性变换,将输入空间Rn映射到一个新的隐层空间Rh,输出层在该新的空间中实现线性组合。显然由于输出单元的线性特性,其参数调节极为简单,且不存在局部极小问题。
5)一般RBF网络所利用的非线性激活函数形式对网络性能的影响并非至关重要,关键因素是基函数中心的选取。
4.3 SVM网络功能和性能
(一)功能
1)SVM 通过核函数实现到高维空间的非线性映射,所以适合于解决本质上非线性的分类、回归和密度函数估计等问题。
2)支持向量方法也可用在样本分析、因子筛选、信息压缩、知识挖掘和数据修复等方面。
3)SVM 网络已经在图像识别、信号处理和基因图谱识别等方面大量使用。
(二)性能
1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射。
2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心。
3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。
4)SVM 是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。
5)在解决模式分类问题方面,能提供较好的泛化性能,具有较好的鲁棒性,表现在:①增、删非支持向量样本对模型没有影响;②支持向量样本集具有一定的鲁棒性;③有些成功的应用中,SVM方法对核的选取不敏感。
6)SVM算法对大规模训练样本难以实施。由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。
7)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
8)现有SVM理论仅讨论具有固定惩罚系数C的情况,而实际上正负样本的两种误判往往造成损失是不同的。
5. 应用前景
神经网络所适用的应用领域与网络本身结构和功能有关,特别是与其具有的计算能力有关,神经网络至少有以下的计算能力:
1)数学的近似映射。
2)概率密度函数的估计。
3)从二进制数据基中提取相关的知识。
4)形成拓扑连续及统计意义上的同构映射。
5)最近相邻模式分类。
6)数据聚集。
7)最优化问题的计算。
不同的神经网络模型的计算能力是不同的, 它们各具有上述能力的一种或几种。上面讲述的网络的能力只是一个抽象的结论。神经网络的应用就是把上述的能力应用到解决实际的工程领域。在这里只讲述在语音识别方面的应用。
人工神经网络模拟了人类神经元活动原理, 具有自学习、联想、对比、推理和概括能力, 并且, 具有能够逼近任意的非线性函数、并行化处理信息、容错能力强等诸多优点。因此, 它为解决语音识别这样的一个复杂的模式分类问题提供了新的途径。例如神经网络可以用来降低噪声对语音的影响,提高语音识别的正确率。同时,神经网络还可以用于缩小建模单元, 一般在音素上建模, 通过提高音素的识别率来提高整个系统的识别率。
一个典型的应用时说话人识别。说话人识别属于连续输入信号的分类问题,SVM是一很好的分类器,但不适合处理连续输入样本。为此,可引入隐式马尔可夫模型HMM,建立SVM和HMM的混合模型,HMM适合处理连续信号,而SVM适合于分类问题;HMM的结果反映了同类样本的相似度,而SVM的输出结果则体现异类样本间的差异,从而实现良好的效果。由此可见,人工神经网络在语音识别中的应用已经成为新的研究热点。
6. 总结
神经网络的应用十分广泛,除了本文中讨论的三种网络,还有许多其他结构的网络,在应用过程中选择什么类型的网络要依据问题的性质和规模来确定。虽然神经网络能提供很好的分类功能,但是好的特征是获得好的分类的基础,对于分类问题,不能一上来就用神经网络去处理,对于分类性能还和前期的处理有关,还可以和其他方法进行结合,从而提高分类性能。