《模式识别论文支持向量机在模式识别中的应用-大学毕业设计.doc》由会员分享,可在线阅读,更多相关《模式识别论文支持向量机在模式识别中的应用-大学毕业设计.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 模式识别结课论文 题目:支持向量机在模式识别中的应用 学 院 河北大学工商学院 学科门类 理 科 专 业 网络工程 学 号 2013483164 姓 名 周婷婷 指导教师 李 凯 2015年11月5 日河北大学学年论文(课程设计)任务书学 生 姓 名周婷婷指 导 教 师李凯论文(设计)题目 支持向量机在模式识别中的应用主要研究(设计)内容支持向量的应用研究方法通过线性svm及非线性svm函数方法的分析,实现支持向量机的算法,并在matlab上实现实例说明主要任务及目标支持向量机实现分类主要参考文献【1】刘霞,卢苇.SVM在文本分类中的应用研究,计算机教育,2007.【2】唐春生,张磊.文本分
2、类研究进展【3】张学工.关于统计学习理论与支持向量机,自动化学报,2000.1 【4】秦玉平.基于支持向量机的文本分类算法研究 【5】李红莲, 王春花, 袁保宗. 一种改进的支持向量机NN-SVMJ. 计算机学报, 2003, 26(8): 1015-1020. 进度安排论文(设计)各阶段名称日期选题 第7周查询资料 第8周整理资料 第8周论文草拟 第9周论文成型 第9周 指导教师签字: 系主任签字: 主管教学院长签字:河北大学软件工程课程设计成绩评定表学院:河北大学工商学院 学生姓名周婷婷专业/年级2013级网络工程一班论文(设计)题目支持向量机在模式识别中的应用论文(设计)内容提要1 支持
3、向量机 11 线性SVM 12非线性SVM2 支持向量机分类算法的实现3实例说明及实验结果指导教师评语成绩: 指导老师(签名): 年 月 日 摘 要 在VladimirN.VaPnik的统计学习理论基础上发展起来的支持向量机(Suppor Vector Machine,SVM)是目前模式识别领域中最先进的机器学习算法。本文对支持向量机及其在模式识别中应用的若干问题作了研究。 关键词:支持向量机;模式识别; Abstract VaPnik in VladimirN. Based on statistical learning theory of support Vector Machine (S
4、uppor Vector Machine, SVM) is currently in the field of pattern recognition is the most advanced Machine learning algorithms. In this paper, support vector machine (SVM) and its application in pattern recognition problems were studied Key word:support vector machines; pattern recognition; 引言 机器学习是现代
5、智能技术中的重要方面,对样本进行训练并寻找规律,利用这些规律对未来数据或无法观测的数据进行预测是基于数据的机器学习的基本思想。统计学理论是我们面对数据而又缺乏理论模型时最基本的也是唯一的分析手段.传统统计学研究的是渐进理论,即假设样本数目无穷大,但在实际应用中样本数目总是有限的,一些好的基于渐 进理论的学习算法在实际应用当中往往表现得并不理想,因此研究小样本的机器学习问题就具有非常重要的实际意义。 VladimirNVapnik等人从20世纪60年代开始就致力于研究有限样本的机器学习问题,经过几十年的研究,终于到90年代中期形成了一个较完整的理论体系,即统计学习理论(StatistiealLe
6、arningTheory).由于神经网络等学习方法在理论上难以有实质性的进展,因此统计学习理论受到人们广泛的重视.近几年来,在统计学习理论的基础上又发展出一种新的学习机器支持向量机(SupportveetorMaehine),它在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势.支持向量机是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折衷,以获得最好的推广能力。 目前,统计学习理论和支持向量机己被越来越多地应用到模式识别领域,如手写体文字识别、人脸识别、生物识别、三维对象识别等,并取得了良好的识别效果。本文着重介绍支
7、持向量机的基本原理、关键问题、研究状况及其在模式识别领域中的应用,希望今后能有更多的人研究和应用这一优秀的学习机器。1 、支持向量机11 线性SVM最优超平面 SVM方法是从线性可分的情况下的最优分类面(OptimalHyperplane)提出的。设线性可分样本集为,i=1,n;Y=+1,-1是类别标号,分类面方程为:W*X + b = 0 (1)这个平面将两类样本没有错误的分开,并且使得离分类面最近的样本到分类面的距离最大,即分类间隔最大,等价于使最小,W为分类面的法向量。而要求分类面对所有样本正确分类,约束条件为:,i=1,2,L,n (2)因此,满足上述条件且使得ll W 最小的分类面就
8、是最优分类面。过两类样本中离分类面最近的点且平行于最优分类面的超平面H、H 上的训练样本就是式(2)中使等号成立的那些样本叫做支持向量。最优分类面可以表示为如下约束的优化问题,即在式(2)的约束下,求函数 (3)的最小值。为此,可以定义如下的拉格朗日函数: (4)(4)式中,0为拉格朗日系数。把原问题转化为如下较简单的对偶问题: i = 1,n。12 非线性SVM 上面讨论的是最优和广义线性分类函数,要解决一个特征空间中的最优线性分类问题,我们只需知道这个空间中的内积运算即可。按照广义线性判别函数的思路,要解决一个非线性问题,我们可以设法将它通过非线性变换转换为另一个空间的线性问题,在这个变换
9、空间求最优或最广义分类面。考虑Mercer条件:对于任意的对称函数,它是某个特征空间的内积运算的充分必要条件是,对与任意的恒不为0,且,有,显然这一条件不难满足 。如果用内积K(x,Y)代替最优分类面的点积,就相当于把原特征空间变换到了某一新的特征空间,此时的支持向量机为:相应的判别函数也应变为:。其它的条件不变,这就是支持向量机。支持向量机的思想可以概括为:首先通过非线性变换将输入空间变换到一个高维空间,然后就这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的函数实现的,这些函数叫做核函数。选择不同的核函数就构成不同的支持向量机,常用的有以下三类核函数:linear:K(x,y
10、) = x*y;ploy:K(x,y) = ;rbf:K(x,y) = ;2 、支持向量机分类算法的实现支持向量机算法是在训练样本的特征空间求取能把两类样本没有错误分开的最大间隔超平面,在数学上表示为一个凸二次规划的问题。也可以说算法求解的主要内容是通过求解二次规划(QP)问题,这个优化问题的求解是支持向量机算法的核心,可以说支持向量机的算法就得到了实现。前面所述支持向量机算法可以表示为在式(6)和式(7)的约束下求式(5)取最小值时的拉格朗日乘子 为训练样本的个数。 (5) (6) (7)其中: 为n元列向量,是要求的拉格朗日乘子; 是一个正定矩阵; 是样本的所属类别,由1或一1组成的列向量
11、;xi为训练样本。可以看出,求解支持向量机就是求解上述的一个二次规划问题,求解后得到拉格朗日乘子 ,也就求得了最大间隔超平面。求解这个二次规划问题需要深厚的数学功底数值计算方面的技能,在主流程序语言中实现算法又需要专业的计算机程序设计的知识。在MATLAB环境下求解这一问题会变得非常简单,这得益于MATLAB软件强大的优化工具箱,提供了一个求解二次规划的函数,可以直接调用。二次规划问题(quadratic programming)的标准形式为: subto Aeqx=beq 其中,H、A、Aeq为矩阵;f、b、beq、lb、ub、x为向量,其它形式的二次规划问题都可转化为标准形式。MATLAB
12、5x版中的qp函数已被60版中的函数quadprog取代。函数quadprog格式如下:x,fva1=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)其中H、f、A、b、Aeq、beq、lb、ub为标准形中的参数;x为求解得到的最优值,也就是二次规划的解析解;lb、ub分别为x的下界与上界,满足不等式约;Aeq、beq满足等约束条件Aeq*x=beq;x0为设置的初值,这个值是人为赋予x的值,一般x为零;fval为目标函数最小值,可以看出,支持向量机算法是一个标准的二次规划问题; ,根据训练样本数据求出;f = -1;支持向量机算法没形式的不等式约束条件,所以A、b为空矩阵
13、; ,beq=Y,实现A Y=0等式约束;Lb=0、ub=C,实现 不等式约束;x0=0,赋予A的初始值为零。样本数据已知,c是人工赋于的值。3、实例说明及实验结果3.1实验程序代码 %定义核函数及相关参数nu = 0.2; % nu - (0,1 在支持向量数与错分样本数之间进行折衷ker = struct(type,linear);% 构造两类训练样本 n = 50;randn(state,6);x1 = randn(2,n);y1 = ones(1,n);x2 = 5+randn(2,n);y2 = -ones(1,n);figure;plot(x1(1,:),x1(2,:),bx,x2
14、(1,:),x2(2,:),k.);axis(-3 8 -3 8);title(C-SVC)hold on; X = x1,x2; %训练样本,d*n的矩阵,n为样本个数,d为样本维数Y = y1,y2; % 训练目标,1*n的矩阵,n为样本个数,值为+1或-1% -% 训练支持向量机ticsvm = svmTrain(svc_nu,X,Y,ker,nu);t_train = toc%寻找支持向量a = svm.a;epsilon = 1e-8; %如果小于此值则认为是0i_sv = find(abs(a)epsilon); %支持向量下标plot(X(1,i_sv),X(2,i_sv),ro
15、);% -% 测试输出x1,x2 = meshgrid(-2:0.1:7,-2:0.1:7);rows,cols = size(x1);nt = rows*cols; % 测试样本数Xt = reshape(x1,1,nt);reshape(x2,1,nt); ticYd = svmSim(svm,Xt); % 测试输出t_sim = toc Yd = reshape(Yd,rows,cols);contour(x1,x2,Yd,0 0,m); %分类面hold off;3.2实验结果参考文献:【1】刘霞,卢苇.SVM在文本分类中的应用研究,计算机教育,2007.【2】唐春生,张磊.文本分类研究进展【3】张学工.关于统计学习理论与支持向量机,自动化学报,2000.1 【4】秦玉平.基于支持向量机的文本分类算法研究 【5】李红莲, 王春花, 袁保宗. 一种改进的支持向量机NN-SVMJ. 计算机学报, 2003, 26(8): 1015-1020.