SVM图像识别 含源码

需要源码的可以联系我 QQ 1752744377@qq.com

支持向量机图像识别
一 实验目的
掌握利用支持向量机进行图像识别的基本方法,通过实验加深对基本概念的理解
二 实验原理
支持向量机方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(或称泛化能力)。
  所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。正是因为SVM关注的是VC维,后面我们可以看到,SVM解决问题的时候,和样本的维数是无关的(甚至样本是上万维的都可以,这使得SVM很适合用来解决文本分类的问题,当然,有这样的能力也因为引入了核函数)。机器学习本质上就是一种对问题真实模型的逼近。最直观的想法就是使用分类器在样本数据上的分类的结果与真实结果(因为样本是已经标注过的数据,是准确的数据)之间的差值来表示。这个差值叫做经验风险Remp(w)。以前的机器学习方法都把经验风险最小化作为努力的目标,但后来发现很多分类函数能够在样本集上轻易达到100%的正确率,在真实分类时却一塌糊涂(即所谓的推广能力差,或泛化能力差)。此时的情况便是选择了一个足够复杂的分类函数(它的VC维很高),能够精确的记住每一个样本,但对样本之外的数据一律分类错误。回头看看经验风险最小化原则我们就会发现,此原则适用的大前提是经验风险要确实能够逼近真实风险才行但实际上能逼近么?答案是不能,因为样本数相对于现实世界要分类的文本数来说简直九牛一毛,经验风险最小化原则只在这占很小比例的样本上做到没有误差,当然不能保证在更大比例的真实文本上也没有误差。
非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量和核函数技术来实现。

高维模式识别是指样本维数很高,例如文本的向量表示,出现几万维的情况很正常,其他算法基本就没有能力应付了,SVM却可以,主要是因为SVM 产生的分类器很简洁,用到的样本信息很少(仅仅用到那些称之为“支持向量”的样本,此为后话),使得即使样本维数很高,也不会给存储和计算带来大麻烦(相对照而言,kNN算法在分类时就要用到所有样本,样本数巨大,每个样本维数再一高,这日子就没法过了……)。
实际上,一个线性函数是一个实值函数(即函数的值是连续的实数),而我们的分类问题(例如这里的二元分类问题——回答一个样本属于还是不属于一个类别的问题)需要离散的输出值,例如用1表示某个样本属于类别C1,而用0表示不属于(不属于C1也就意味着属于C2),这时候只需要简单的在实值函数的基础上附加一个阈值即可,通过分类函数执行时得到的值大于还是小于这个阈值来确定类别归属   SVM在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。SVM的求解最后转化成二次规划问题的求解,因此SVM的解是全局唯一的最优解。线性分类器是利用训练样本集建立线性判别函数 或者广义线性判别函数 。
    SVM 是从线性可分情况下的最优分类面发展而来的, 基本思想可用下图的两维情况说明. 图中, 方形点和圆形点代表两类样本, H为分类线,H1, H2分别为过各类中离分类线最近的样本且平行于分类线的直线, 它们之间的距离叫做分类间隔(margin),红蓝样本称为支持向量。 所谓最优分类线就是要求分类线不但能将两类正确分开(训练错误率为0),而且使分类间隔最大.推广到高维空间,最优分类线就变为最优分类面。 


 
图2-1 线性可分情况下的最优分类线
    最优判别函数为
 
    该式只包含待分类样本与训练样本中的支持向量的内积运算,可见,要解决一个特征空间中的最优线性分类问题,我们只需要知道这个空间中的内积运算即可。
   对非线性问题, 可以通过非线性变换转化为某个高维空间中的线性问题, 在变换空间求最优分类面. 这种变换可能比较复杂, 因此这种思路在一般情况下不易实现.非线性SVM将样本点升维,即映射到高维甚至无穷维空间,再在高维空间中采用线性问题的处理方法。
 
图2-2 样本点升维
     设非线性映射 表示将输入空间样本 映射到高维特征空间H中(即样本点升维),由最优化求解过程可见,训练算法只用到特征空间H 中的点积运算 因此若能找到一个函数K,使得 ,那么


在高维空间中实际只需要进行内积运算,甚至不必知道变换 的形式。
    只要函数 满足Mercer条件,其就对应某一变换空间中的内积。使用函数K进行非线性变换,不会增加计算复杂度。
判别函数的形式变为
  
   选择满足Mercer条件的核函数,即可构建非线性支持向量机。
三 实验步骤及程序
  1 实验步骤
要实现支持向量机的多类分类,首先要实现两类分类。支持向量机分类算法包括两部分,支持向量机的训练和支持向量机分类。然后,对支持向量机进行训练对图像进行识别分割。
 1 支持向量机训练的步骤
(1)输入训练样品向量 ,类别号分别 , 。如果 ,则 &#

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值