热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

理解支持向量机

支持向量机是一个二类分类模型,但也可以扩展为多类分类。其基于间隔最大化和核技巧的特点可以使它可以灵活处理线性或非线性分类问题。支持向量机可是形式化为一个凸二次规划问题,学习算法是求解

支持向量机是一个二类分类模型,但也可以扩展为多类分类。其基于间隔最大化和核技巧的特点可以使它可以灵活处理线性或非线性分类问题。
支持向量机可是形式化为一个凸二次规划问题,学习算法是求解基于凸二次规划的最优化算法
按照训练数据是否线性可分,支持向量机可以分为基于硬间隔的线性可分支持向量机、基于软间隔的线性支持向量机、基于核技巧和软间隔最大化的非线性支持向量机。三者复杂性是依次增加的。
1、基于硬间隔最大化的线性可分支持向量机
我们知道,感知机和决策树等学习方法没有区分模型的输入空间和特征空间,即认为两者所处的空间是一样的。支持向量机的输入空间和特征空间是不同的,输入空间为欧氏空间或离散集合,特征空间是希尔伯特空间。希尔伯特空间可以看作是欧氏空间的扩展,其空间维度可以是任意维的,包括无穷维。并且一个重要的性质是其具有欧氏空间不具备的完备性。这些特点都是支持向量机在做非线性特征空间映射所需要的。
下面从最简单的线性可分支持向量机入手,学过感知机的都知道,感知机通过训练一个超平面将平面或空间线性可分的点进行划分。
其超平面方程为 w∙x+b=0;
分类决策函数f(x)=sign(w∙x+b)。
线性可分支持向量机也是如此,通过找寻分割平面来划分数据集。不同的是,感知机的学习策略是误分类点到超平面距离和最小化,而线性可分支持向量机是基于硬间隔最大化的

何为硬间隔最大化?
我们知道,当参数w,b确定后,其分类超平面也就确定了,那么分类超平面两侧的点到超平面的距离就可以得出,
这里写图片描述

这些点到分类超平面中必然有一个最小距离,实际上可划分这两组点的超平面的参数w,b有很多组,同样对应有最小距离。w,b选取什么值时,分类效果最好呢?就是分类面到两侧的距离越远说明分类效果越好,即找出这组最小距离中的最大值。为了度量这个值,这里引出了函数间隔和几何间隔的概念。
在超平面w∙x_i+b=0确定的情况下,|w∙x_i+b|能够相对表示点x距离超平面的远近,可以理解为对超平面进行上下移动。
w∙x_i+b的符号与类标记符号是否一致能够表示分类是否正确。
函数间隔:对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(x_i,y_i)的函数间隔为:

这里写图片描述 定义:
这里写图片描述 为超平面(w,b)对所有样本点函数距离最小值。
但是函数间隔存在一个问题,就是如果我们成比例地改变w,b的值,那么函数间隔的值就是变为原来的两倍,而超平面却并没有改变。为了解决这个问题,定义了几何间隔:
对于给定的训练数据集T和超平面(w,b),定义超平面关于样本点这里写图片描述的几何间隔为:
这里写图片描述 定义:
这里写图片描述 为超平面(w,b)对所有样本点几何间隔最小值。
其中||w||为w的L2范数,通过除以法向量的范数来对距离进行约束,保证了如果w,b成比例变化时,点到超平面的几何间隔不变。
从函数间隔和几何间隔的定义可以看出:
这里写图片描述 这里我们回到硬间隔最大化。为了使分类效果最好,我们要求这个最小间隔值最大,即求使下列目标函数和约束条件成立的w,b值 ,
这里写图片描述 即:
这里写图片描述 我们知道,
函数间隔r ̂随着w,b成比例的变化而成同比例的变化,即若w,b同时变为原来的两倍,则函数间隔也为原来的两倍,故当w,b成比例变化时,目标函数不变,约束条件也不变。也就是说r ̂取值并不影响目标函数和约束条件,不影响整个问题的
求解,因此为了接下来的计算方便,我们取r ̂=1,从而目标函数可以写为:
这里写图片描述 因为求1/|(|w|)| 的最大等价于求||w||的最小,也就等价于求1/2 〖||w||〗^2的最小,从而将问题改写为:
这里写图片描述 为什么要将1/|(|w|)| 的最大等价求1/2 〖||w||〗^2的最小,是因为要将目标函数转换为一个凸二次规划问题,从而满足后面求对偶问题需要的KKT条件,而且使所求的解为全局最优解。系数加个1/2是为了求导的时候约去系数,计算方便。
现在的问题就是如何求解在有不等式约束条件下的函数最优。我们可以使用拉格朗日乘子法来求解,定义拉格朗日函数的形式如下:
这里写图片描述
由上式可知,因为h(x)=0, g(x)≤0,在满足约束条件下的 L(x,α,β)必然小于等于f(x),且max L(x,α,β)=f(x)。
为每个约束条件引入一个拉格朗日乘子α_i≥0,且根据拉格朗日乘子法的形式将约束条件添加负号转化为小于等于,定义拉格朗日函数:
这里写图片描述 这样问题就变成了求
min┬(w,b)maxαLw,b,α 一般来说,这样的形式不太容易求解,我们可以转为求其对偶问题〖max┬α  min┬(w,b)〗⁡L(w,b,α)的解。
原始问题与对偶问题存在相同的最优解,要求原始问题满足KKT条件。所谓KKT条件就是:
1. L(w,b,α)对x求导为零;
2. h(x) =0;
3. α∙g(x) = 0;
这时我们之前构造的凸二次规划问题就派上用场了,可以证明其存在对偶问题,且对偶问题最优值与原始问题最优值相同。
转换为对偶问题后,求解过程如下:
1.求求min┬(w,b)⁡L(w,b,α)
将拉格朗日函数L(w,b,α)分别对w,b求偏导且令其等于0,解出
这里写图片描述
2.求求min┬(w,b)⁡L(w,b,α)对α的极大,即:
这里写图片描述
对上述问题可以使用SMO算法求出α的解为α=(α_1,α_2,…,α_N)
我们知道α≥0,且可以用反证法证明必然存在至少一个α_j>0,若α全部等于0,则由上式可知w=0,而w=0显然不是原始问题的解。对此i,α_j>0,又根据KKT条件α∙g(x) = 0,故g(x)=0,即:
这里写图片描述
注意到〖y_j〗^2=1,将〖y_j〗^2替换1,并提取y_j,可以算出:
这里写图片描述
从而可以写出分类超平面:
这里写图片描述
分类决策函数为:
这里写图片描述

2、基于软间隔最大化的线性支持向量机
上面所说的线性可分支持向量机是基于训练样本线性可分的理想状态,当训练样本中存在噪声或者特异点而造成线性不可分时,就需要用到下面讲到的线性支持向量机。
在线性可分支持向量机中,我们假设函数间隔r ̂为1,若存在噪声或特异点函数间隔处于
(0,1)中间,那么这些点就不满足问题的约束条件,也就线性不可分。为了解决这样的问题,引入了松弛变量ζ_i≥0,使得函数间隔与松弛变量的和大于等于1,从而约束条件变为:
这里写图片描述同时因为约束条件引入了ζ_i,所以目标函数也要改变,改为:

这里写图片描述 C>0,称为惩罚系数,一般由应用问题决定,C值大时会对误分类的惩罚增大。最小化目标函数包含了两层含义:一个是使1/2 〖||w||〗^2 尽可能小即间隔尽可能大,一个是误分类点尽可能少,C作为两者的调和系数。
这种情况称为软间隔最大化。其问题可以定义为:
这里写图片描述
依然构造拉格朗日函数,并转换为对偶问题:
这里写图片描述

支持向量
之前一直说到支持向量机,那么什么是支持向量呢?支持向量机是基于间隔最大化来分类数据集的。在硬间隔最大化的情况下,如下图的红线为分离超平面,粉线和蓝线是将两类点分开的最大间隔线,其到分离超平面的距离分别为1/|(|w|)|,决定这个最大间隔的蓝线上的两个点与粉线的一个点就是分类关键点,称为支持向量。
这里写图片描述
在软间隔最大化的情况下,
如下图,每个实例点到超平面的距离为ζ_i/(||w||)
支持向量由间隔边界(如红圈点)、间隔边界与超平面之间(如绿圈点)或误分点(如蓝圈点)这些对分类起着关键作用的点组成。
这里写图片描述

3、基于软间隔和核技巧的非线性支持向量机
前面说的数据集都是线性可分或者近似可分的,而实际情况下的数据都是非线性可分的。
这时就需要用到非线性变换,将输入空间上的输入映射到高维特征空间,将非线性问题变换为线性问题,从而利用线性分类器进行分类。例如:
对于非线性的方程(x+y)2=1,我们取z_1=x^2, z_2=y2, z_3=xy,那么原方程就变为:

这里写图片描述 从而将问题转化为三维空间上的线性可分问题。
核函数就是做这样一个事情,它通过一个非线性变换将输入空间对应到一个希尔伯特空间,使得在输入空间中的超曲面模型对应特征空间中的超平面模型。核函数的定义如下:
设χ是输入空间(欧氏空间或离散集合),Η是特征空间(希尔伯特空间),如果存在一个从χ到Η的映射
φ(x):χ→Η 使得对所有的x,z∈χ,函数Κ(x,z)=φ(x)·φ(z),例如:
假设输入空间为二维欧氏空间,核函数是Κ(x,z)=(x·z)^2
可以取特征空间为三维欧氏空间,记输入x=(x1,x2),z=(z1,z2)
取映射函数为:
这里写图片描述
则满足Κ(x,z)=(x·z)^2
由之前讲到的线性可分的向量机可以知道,向量机的分类函数取决与属于x与输入样本点的内积,当线性不可分的时候,我们通过核函数将样本点的内积(x,z)映射为特征空间上内积的(φ(x),φ(z)),仍然使用前面定义的线性分类器,从而实现了有效且简便的非线性分类问题。非线性支持向量机的分类决策函数如下:
这里写图片描述
其中x是输入,x_i,y_i为样本点,α_i可通过SMO求解得出,b是关于α_i,x_i,y_i的函数,也可以得出,故函数分类结果可以求出。
到这里,支持向量机的大体思路基本完成了,也就是寻找分类超平面构造分类函数的过程;遇到非线性可分时候,就要想办法将其转换成线性问题,利用线性分类器来分类。求解的过程也就是求得分类超平面的参数问题,当参数不容易求解时,转换为其对偶问题来求,终于,最后可以求出来了。
好吧,支持向量机太长了,先到此为止,下一节介绍核函数及SMO算法。


推荐阅读
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • 分隔超平面:将数据集分割开来的直线叫做分隔超平面。超平面:如果数据集是N维的,那么就需要N-1维的某对象来对数据进行分割。该对象叫做超平面,也就是分类的决策边界。间隔:一个点 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 支持向量机(SVM)算法综述
    支持向量机(Support Vector Machine, SVM)是由Cortes和Vapnik于1995年首次提出的一种机器学习算法。SVM在处理小样本、非线性及高维模式识别问题上表现出显著的优势,并广泛应用于函数拟合等其他机器学习任务中。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 支持向量机(SVM)在机器学习中的应用与学习心得
    支持向量机(SVM)是一种高效的二分类模型,其核心目标是通过寻找最优超平面来区分不同类别的数据点。在实际应用中,SVM能够有效地处理高维数据,并通过核技巧扩展到非线性分类问题。当新的数据点输入时,SVM会根据其相对于超平面的位置来判定其所属类别。训练过程中,SVM通过最大化间隔来确定最优超平面,从而提高模型的泛化能力。本文总结了SVM在机器学习中的应用及其学习心得,探讨了其在实际问题中的优势和局限性。 ... [详细]
  •     目标检测是计算机视觉一个非常重要的子任务。目标检测需要发现并准确定位自然图片中的物体。在2012年之前,目标检测主要基于手工设计的特征以及传统分类器。2012年以后,出现了 ... [详细]
  • 深度学习: 目标函数
    Introduction目标函数是深度学习之心,是模型训练的发动机。目标函数(objectfunction)损失函数(lossfunction)代价函数(costfunction) ... [详细]
  • NLP篇【01】tfidf与bm25介绍与对比
    上一篇:自然语言处理【NLP】遇上电商——专栏导读下一篇:NLP篇【02】白话Word2vec原理以及层softmax、负采样的实现一、tfidf介 ... [详细]
author-avatar
爱她一生2502876055
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有