视觉论坛VISIONBBS微信公众号:石鑫华视觉网

 找回密码
 注册会员
查看: 704|回复: 0

[原创] 支持向量机SVM

[复制链接]
  • TA的每日心情
    难过
    昨天 10:29
  • 签到天数: 1251 天

    [LV.10]100FPS

    发表于 2015-3-30 11:04:13 | 显示全部楼层 |阅读模式
    支持向量机(英语:Support Vector Machine,学术文献中常简称为SVM,中文简称则是SV)是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析。
    " d- r0 A( e3 D6 r支持向量机属于一般化线性分类器,也可以被认为是提克洛夫规范化(Tikhonov Regularization)方法的一个特例。这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器。7 ?. ^5 l' ]- j) x/ D, w* ?* ~. g$ g
    0 N- M' j" h3 K( j  A: w( h
    介绍支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt和Barnard将支持向量机和其他分类器进行了比较。
    4 Q/ l+ _' ]' b( }8 j/ `; j
    有很多个分类器(超平面)可以把数据分开,但是只有一个能够达到最大分割。
      G& ^9 i9 c$ n* G
    8 i4 e/ g0 t0 P- a
    动机
    . H/ q6 X0 r4 l. y" J, v) \

    " t$ H9 t2 [# @0 S4 x& p5 B0 a" e4 ]我们通常希望分类的过程是一个机器学习的过程。这些数据点并不需要是
    中的点,而可以是任意(统计学符号)中或者 (计算机科学符号)的点。我们希望能够把这些点通过一个n-1维的超平面分开,通常这个被称为线性分类器。有很多分类器都符合这个要求,但是我们还希望找到分类最佳的平面,即使得属于两个不同类的数据点间隔最大的那个面,该面亦称为最大间隔超平面。如果我们能够找到这个面,那么这个分类器就称为最大间隔分类器。
    0 x* _5 |& p$ h9 `7 f2 l
    设样本属于两个类,用该样本训练svm得到的最大间隔超平面。在超平面上的样本点也称为支持向量.
    4 v0 T$ Z2 A# i9 p% d( X% |
    * `2 i7 P' H/ p" ?4 V  l
    我们考虑以下形式的样本点 超平面的数学形式可以写作5 L$ C+ m3 f9 ]; y4 q

    5 O+ r/ {, S# N# T0 ?2 O6 q* h其中是超平面上的点,是垂直于超平面的向量。' y5 [9 h* B; y0 q& Q& n" Q% p
    根据几何知识,我们知道向量垂直于分类超平面。加入位移b的目的是增加间隔。如果没有b的话,那超平面将不得不通过原点,限制了这个方法的灵活性。$ Z. I. M( b1 X' h1 \
    由于我们要求最大间隔,因此我们需要知道支持向量以及(与最佳超平面)平行的并且离支持向量最近的超平面。我们可以看到这些平行超平面可以由方程族:1 j) l4 Y( @$ |  N0 _

    / W" Z( ]- {; [5 p0 j! d, o* I4 N$ T9 o$ q& b2 C5 T
    来表示。 由于只是超平面的法向量,长度未定,是一个变量,所以等式右边的1和-1只是为计算方便而取的常量,其他常量只要互为相反数亦可。
    ( G. k3 k1 ^8 [) Q* T+ J如果这些训练数据是线性可分的,那就可以找到这样两个超平面,在它们之间没有任何样本点并且这两个超平面之间的距离也最大。通过几何不难得到这两个超平面之间的距离是2/|w|,因此我们需要最小化 |w|。同时为了使得样本数据点都在超平面的间隔区以外,我们需要保证对于所有的满足其中的一个条件
    & y6 F8 m8 J- k0 H这两个式子可以写作:! A$ s, L7 {  h# h9 n
    =1,i<=i
    $ H6 Q: [3 {( h# r( V- k) w
    . Y6 X# L6 h" \* ~5 r; S, z' ^. [原型9 u+ m1 }8 C- q% Z, Q

    # E" ]! B/ @4 N/ U0 x现在寻找最佳超平面这个问题就变成了在(1)这个约束条件下最小化|
    w|.这是一个二次规划QP(quadratic programming)最优化中的问题。
    ; w: w, }- }# v/ z% F" w, d! H更清楚的表示:
    ( C' e/ W" |1 P最小化,满足,其中3 c; d6 h# u# K5 x# Q6 {; ]0 j
    1/2这个因子是为了数学上表达的方便加上的。& `9 C- Z$ m$ }; e& P6 I
    解如上问题通常的想法可能是使用非负拉格朗日乘数 于下式
    ! D; }/ R( E0 @8 M, c3 b6 R! Y/ W2 ]' o* `" A
    不过这样可能出错. 原因是:假如我们能找到一族超平面将这些点分割开来;那么所有的 .因此我们可能通过将所有趋向得到最小值, 此最小值对这一族内所有成员都有效,而不是解决原问题的最优解。: Y* A+ E6 U. ]+ U4 M: T$ O& U
    不过以前的约束问题可以表示为
    # Y, E+ F7 ]5 P& Z
    / P/ A  B  i# T此式表明我们寻找一个鞍点。这样所有可以被分离的点就无关紧要了,因为我们必须设置相应的 为零。
    : O" X; R, b2 f' w& I
    % s8 b+ M. u  T. E$ J/ M' ]2 N4 `: H* Q这个问题现在可以用标准二次规划技术标准和程序解决。结论可以表示为如下训练向量的线性组合
    5 ~9 {0 `  |/ ~$ k6 g9 V' M# y0 `2 z5 N7 i
    只有很少的会大于0. 相应的就是支持向量, 这些支持向量在边缘上并且满足. 由此可以推导出支持向量也满足: 因此允许定义偏移量. 实际上此支持向量比一般的支持向量鲁棒性更强:
    - z. _/ }4 [; {7 z" l; a8 l( x6 b+ D. V
      ~+ Y  K0 ]3 }3 y
    对偶型(Dual Form)
    5 G7 I1 H0 Q; F! _; i# D* J3 f6 S
    $ r0 Y9 `2 e" V2 a
    把原型的分类规则写作对偶型,可以看到分类器其实是一个关于支持向量(即那些在间隔区边缘的训练样本点)的函数。

    . Z. z6 p5 T1 j- t根据,并且带入,可以得到支持向量机的对偶型如下: $ Y# l& L  s* z# i* R+ @4 F
    满足/ n) O) E2 p: a: ]& s
    6 e% R* V* `8 i8 G* i9 Y' E1 |- K

    ( j6 j2 g  K5 e  G# Z( R4 _9 v0 r后验SVM
    , a3 I0 B8 H; Z* ?9 V$ E9 {2 L3 M8 X0 j3 V( q) T
    后验概率对分类器非常重要 分类器的输出必须结合后验概率才能确定 借助后验概率更好的改进超平面的泛化能力

    ' _5 q' a$ q$ [3 X; g+ l软间隔Soft Margin! }# d0 W0 h1 K' }$ Z
    * T2 |$ l7 o3 O* s/ K  H3 f8 `: a  \. u
    1995年, Corinna Cortes与Vapnik提出了一种改进的最大间隔区方法,这种方法可以处理标记错误的样本。如果可区分正负例的超平面不存在,则“软边界”将选择一个超平面尽可能清晰地区分样本,同时使其与分界最清晰的样本的距离最大化。这一成果使术语“支持向量机”(或“SVM”)得到推广。这种方法引入了松驰参数
    以衡量对数据的误分类度。1 h2 f" p  x. X8 o' O3 g
    0 m% i/ {* ]  M) c5 {+ r& Z! X3 @, _
    随后,将目标函数与一个针对非0的惩罚函数相加,在增大间距和缩小错误惩罚两大目标之间进行权衡优化。如果惩罚函数是一个线性函数,则等式(3)变形为* I5 k& k4 a. K
    & m  K8 D* g$ B9 D8 \

    3 }  ~7 w- l, E# l& Y) c) A9 |8 J6 q. j回归" V0 }9 a1 ]# }' s0 x
    3 Q9 s  W+ Z  a' W
    解决问题的参数方法大多通过解决那些最优化的问题派生出来的,现有一些从SVM问题中诞生出来的可以快速解决QP问题的的算法,他们主要依靠把问题分割成更小更容易管理的模块的方法来实现。
    " o* g* B& I) y; x* T# _+ j% @; T+ t

    , \6 y" C; e  X* a" X& \4 @一个通用的算法是Platt's Sequential Minimal Optimization(SMO)算法,他把问题分成了若干个在二维空间成可以被解析的子问题,这样避开了需要解决数值最优化问题的难度。1 ]8 a, ^" k6 t% N; }) W
    ; ]# ], F7 Z, F
    另一个研究就是用使用了牛顿迭代的内点法找到Karush–Kuhn–Tucker情况下原始度偶问题的解决方法。与那些解决一系列小问题不同的是,这项研究直接解决了整体部分。避开解决这个线性问题的过程离不开核矩阵,矩阵的低阶近似往往是内核中使用技巧。& b- w& m# _% `8 r: i# n( j; x. A
    # y( N  ?8 X( G' @* Z8 ~* ?- K8 g; o
    应用
      + i. |, K" x& M" _

      & }9 F# v6 L* x! H
      : U( {( Z6 f4 G. u, {) I) Y9 ]
    • 用于文本和超文本的分类,在归纳和直推方法中都可以显著减少所需要的有类标的样本数。
    • 用于图像分类。实验结果显示:在经过三到四轮相关反馈之后,比起传统的查询优化方案,支持向量机能够取得明显更高的搜索准确度。
    • 用于医学中分类蛋白质,超过90%的化合物能够被正确分类。
    • 用于手写字体识别。6 @% t& r! Q4 b
    5 P( n7 O, z7 B, e. T9 u

    相关帖子

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    淘宝机器视觉商城

    Archiver|手机版|小黑屋| 机器视觉之家|东莞市华动智能科技有限公司 ( 粤ICP备17078359号-2 ) |网站地图

    GMT+8, 2018-7-19 06:20

    Powered by shixinhua.com X3.4

    © 2001-2018 VISIONBBS.COM 浏览量:

    快速回复 返回顶部 返回列表