基于BP神经网络和SVM的分类方法研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于BP神经网络和SVM的分类方法研究作者:王宏涛孙剑伟

来源:《软件》2015年第11期

摘要:介绍了BP神经网络和SVM算法的分类原理。附加动量因子和随机梯度下降法是对BP神经网络进行优化的重要方法,利用Google实验室的MNIST手写数字库研究了动量因子和随机数以及SVM不同核函数对分类性能影响,为实际应用中模型的选择提供一定依据。同时也研究了两个算法在不同样本数下的性能表现,实验表明样本数较少时SVM比BP具有更高的泛化能力。最后结合两个算法特点,给出层次分类法并做为今后研究方向。

关键词:MNIST数字库;BP神经网络;支持向量机;分类性能

中图分类号:TP391.41

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.11.024

0 引言

很多实际应用问题都可归为分类问题,如故障诊断、模式识别等,分类过程包括分类器构造和运用模型进行分类两个步骤。神经网络和支持向量机(SVM)是分类领域中两种重要方法。神经网络是模拟人脑神经系统的数学模型,具有高度并行性、较强的自学习自适应和联想记忆功能特点。Vapnik在20世纪90年代基于统计学习理论提出支持向量机,它是借助最优化方法解决问题的,求解支持向量转化为解凸二次优化问题,它能够获得全局最优解,是结构风险最小化的算法。经过多年发展神经网络和支持向量机在很多领域取得成功,但是神经网络和支持向量机参数选择没有理论上支撑,参数选择优化是算法应用成功的关键,挖掘模型参数对算法性能影响具有重要意义。本文在Google的手写数字库上研究了BP(Back Propagation)神经网络和支持向量机的附加动量因子、随机数和不同核函数等变量对准确率、计算时间以及收敛曲线的影响,比较两个算法在不同训练样本数时性能表现。最后结合BP神经网络算法和SVM的各自特点提出分层分类模型,该方法适用于具有结构分解、功能分解特点的对象,为复杂对象分类提供了一种思路。

1 BP神经网络和SVM算法

1.1 BP神经网络技术

神经网络是对人脑的抽象、模拟和简化的信息处理模型,其中神经元数学模型、网络连接方式以及神经网络学习方式是神经网络的三个关键。神经网络原理是利用网络的学习和记忆功能,让神经网络学习各个类别中的样本特征,在遇到待识别样本时神经网络利用记住的特征信

息对比输入向量,从而确定待测样本所属类别。该算法通过学习机制得出决策信息,并不需要模式先验知识。BP神经网络是目前最流行的一种神经网络模型,它是一种按误差反向传播的多层前馈神经网络,包括输入层、隐含层和输出层。Kolmogorov定理已经证明BP神经网络具有强大的非线性映射能力和泛化能力,任一连续函数或映射函数均可采用三层网络加以实现。

BP神经网络算法包括两个阶段:从输入层经过隐层逐层计算输出结果的过程,从输出层逐层误差反向传播的学习过程。正向传播过程中训练样本从输入层逐层处理传到输出层,将输出结果与期望值比较计算误差,若误差较大将误差按学习规则反向逐层分摊到各节点。学习规则用最快梯度下降法,通过反向传播不断调整网络的权值和阈值使网络的误差平方和最小。

1.2 BP神经网络学习算法的优化

传统BP算法采用梯度下降法,由于梯度下降法易陷入局部极小点而得不到全局最优解,在权值调整时增加动量因子项可以使算法对误差曲面局部细节不敏感能调出局部极小值。式1是学习算法的权值更新函数,其中△W ji(n)是第n次迭代时权值的更新,α(0≤α≤1)是动量系数,权值更新时不仅考虑了第n+l步梯度方向而且增加了以前梯度方向,目的是减少震荡。

△W ji(n+1)=(1-α)θδj x ji+α△W ji(n)

(1)

由于批梯度下降法将所有用样本误差进行反馈学习而使得效率低下,训练次数多收敛速度慢。随机梯度下降法做为批梯度下降法的改进,每轮迭代时随机选取有限个样本误差进行学习,对于样本规模很大时可大大减少运行时间。随机个数选取是关键。

1.3 支持向量机方法

支持向量机是基于结构风险最小化原理的算法。分类原理是建立一个超平面作为决策面,该决策面在能够正确分类样本的情况下,使样本中离分类面最近的点的“间隔”最大。如图1中实线作为决策面可以将不同颜色的两类样本分开,虚线是由离决策面最近的点并且平行于决策面。虚线间距离称为间隔,当间隔最大时虚线上的点便是支持向量。SVM学习过程即是求支持向量。

对于非线性分类问题,将原始数据通过一个非线性映射Φ从原始R维空间映射到高维空间Ω,再在高维特征空间Ω中求最优分类面。Ω的维数可能会非常高,利用核函数可似解决维数灾难。根据相关定理,如果核函数K(x i,x j)满足Mercer条件,它就对应某一变换空间的内积K(x i,x j)=i),φ(x j)>使得在原始空间中计算的结果等价于在高维空间计算内积。在实例中应用核函数可有效分类而计算量没有大幅增加,核函数有线性核函数、多项式核函数和径向基核函数等。

支持向量机可以看做具有单隐层的前馈神经网络,支持向量是隐层的神经元,神经元的权值是通过二次规划算法优化获得。但是二者只是结构上相似,优化原理及具体含义有着本质区别。SVM中支持向量是由算法自动确定不需要人为指定数目和权值,而BP神经网络的隐含层个数及单元数都需要事先人为确定。

2 基于MNIST的分类实验设计

2.1 MNIST手写数字库描述

Google实验室的Corinna Cortes和纽约大学克朗研究所的Yann LeCun建有一个手写数字数据库,训练样本有60000张图像,测试样本有10000张,都是0到9的手写数字图片灰度级为8,每个图片是28*28像素矩阵,可以使用一个784大小的向量表示。

数据预处理:MNIST样本灰度值在0-256之间,而且大部分等于0,部分大于230,数据范围跨度大,对BP神经网络来说可能导致收敛慢、训练时间长,对输出精度也有影响。对SVM算法如果直接将图像的像素值进行建模学习,分类正确率只有10%左右。所以在实验时将灰度值进行归一化处理映射到到[0,1]之间。

2.2 BP神经网络分类实验设计

(1)网络设计:隐层个数、隐层神经元个数、转移函数等参数需要事先确定,我们参考文献资料给出最优取值如图2。在此基础上分别研究动量因子和随机梯度下降法中随机数选取对分类性能影响。

(2)性能评价指标:从分类准确率、收敛时间和曲线特征三个方面考察算法性能。高准确率是算法的首要目标,而随机梯度下降法和附加动量因子作用是减少运行时间提高学习效率,所以选择收敛时间和曲线特征做为评价项。

2.3 SVM分类实验设计

SVM算法中参数相比BP算法少,主要考察不同核函数以及样本数对分类性能影响,其中关于训练样本数同BP算法性能进行比较。常用核函数有以下4种:

(1)线性核函数K(x,y)=x*y

(2)多项式核函数K(x,y)=[x*y+1]*d

(3)径向基核函数K(x,y)=exp(-(|x-y|)2/σ2)

( 4) Sigmoid核函数K(x,y)=tanh(b(x*y)-c)

相关文档
最新文档