zoukankan      html  css  js  c++  java
  • SVM明确的解释1__ 线性可分问题

    笔者:liangdas

    出处:简单点儿,通俗点儿,机器学习    http://blog.csdn.net/liangdas/article/details/44251469

    引言:

           1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine)。因为其可以适应小样本的分类。分类速度快等特点,性能不差于人工神经网络,所以在这之后,人们将SVM应用于各个领域。大量使用SVM模型的论文不断涌现,包含国内和国外。

           可是。直到如今,非常少能见到对在一个能对SVM的原理准确,具体,通俗。严谨阐述的论文或者资料。所以决定查阅非常多的资料。结合自己的思考和理解,来写一篇关于SVM的系列文章。

    线性可分问题:

           在分类问题中。最简单的分类就是二分类问题,并且这个二分类问题是一个线性可分问题。那么对于一个线性二分类问题,它的目标函数是什么呢?确定目标函数之后。我们又用什么方法来求解呢?

           在一维空间,也就是一个坐标轴上面。要分开两个能够分开的点集合,我们仅仅须要找到一个点。如图1:

    图1 一维线性可分示意图

           在二维空间中,要分开两个线性可分的点集合,我们须要找到一条分类直线就可以,如图2:

    图2 二维线性可分示意图

           在三维空间中,要分开两个线性可分的点集合,我们须要找到一个分类面:如图3:

    图3 三维线性可分示意图

           在n维空间中。要分开两个线性可分的点集合,我们须要找到一个超平面(Hyper Plane)。

    为了直观,我们以上面二维空间为样例来分析:在图2中分布着两类点:淡蓝色和黑色的点。分别代表着不同的两个类别,显然,我们能够找到一条直线来把这两类点分开。高中的时候,常见的直线方程表达式是y=ax+b。我们如今用向量来表示,就是:,把向量(a。-1)用向量符号w来表示,维数向量(x。y)用向量符号x(此时的x是一个向量)来表示。那么直线方程就变成了w*x+b=0。

    目标函数:

           再次观察图2。能够知道,在这个二维平面中,能够把两类点的分开的直线有非常多条。如图4所看到的,那么这些直线中。哪一条才是最好的呢?也就是怎样选择出一条最好的直线呢?

    图4 多条分类直线

           在图4中。我们先看淡蓝色的点。假设这些点到分类直线的距离越大,分类直线也就越远离蓝色的点。那么再来一个新的点,假设这个点是按照淡蓝色点集合的特性产生的(也就是它不是一个相对于蓝色点集合非常神秘的点)。那么这个点也非常可能和蓝色的点集合一样,分布在直线的同一側。分布在同一側,表明它和蓝色集合点属于同一个类别。

    用相同的思想,图4中,对于黑色的集合点,这条分类直线离它们的距离也要越远越好。所以找最优分类线。就是要找到这条一条直线,使它到两个类别点的距离越大越好。

           回顾一下高中所学的点到直线的距离公式:直线(一般式):Ax+By+C=0另外一个点的坐标(x0, y0)。那么这点到这直线的距离就是:


           那么。对于直线wx+b=0的形式,假设有一个点x,那么它到直线的距离公式就是。把向量写成二范数的形式,即是:

           所以上面的二维线性可分问题的目标函数就能够抽象成例如以下的数学表达式:



    目标函数的简化:

           对于一个待分类类别。为了自己的类别能准确地分类,都希望分类直线到自己的距离大些。当有两类的时候,就会形成相互竞争,最后的竞争结果就是让这条分类直线,到两个类别的距离相等。在生活中。通常也是这样达到一种平衡状态的。

           如图5,我们作两条直线,和分类直线平行。让这两条直线分别经过以下蓝色和黑色集合的边界,同一时候。满足这两条直线到中间分类直线的距离相等,那么,我们能够假定这两条直线方程各自是wx+b=c, wx+b=-c。

    图5 两类别到分类直线的距离相等

           用两条平行直线的距离计算公式, 那么。两个类别集合到分类直线的近期距离,这个公式,事实上和上面点到直线的距离公式是一样的。

           对于一条直线,wx+b=c,我们对应的成比例的缩小他们的系数,如变成。这条直线和原来的直线还是同一条直线。如今把它变成,新的直线还是和曾经直线是同一条直线。也就是说。对于直线wx+b=c,我们总能够找到另外的一条新的 w1=w/c, b1=w/c。使w1*x+b1=1, 并且这两条直线事实上表达的是同一条直线,这种话,上面的图5能够变成例如以下的图6:

    图6 两类别到分类直线的距离相等

           从图6中,结合我们要寻找的最优分类直线。是到两类类别点集合的距离最大的直线的思想,我们能够抽象出此时的目标函数: 

           这样,这个目标函数看起来就比原来简洁多了。

    目标函数的约束条件:

           在图6中。对蓝色样本点而言,不在w1*x+b1=1直线上的点。一定是在直线上面的点,它们满足w1*x+b1>1,所以对全部的蓝色样本点而言,它们都满足w1*x+b1>=1。同理,对全部黑色的样本点,都是满足w1*x+b1<=-1。

    这两个条件是我们求解的限制条件。也就是我们寻找上面的目标函数的时候。必须满足上面的两个不等式约束。

                                                                                 满足条件:

                                   

           观察上面的不等式条件表达式,是不是有一种想把两个式子合并成一个式子的冲动?事实上。上面蓝色点相应的不等式,我们在不等式两边同一时候乘以一个y=1;同理。黑色点相应的不等式,在式子两边同一时候乘以一个y=-1。 那么上面的两个式子能够变成

           可是,为什么能够在一个不等式的两边乘以一个1,而另外一个乘以-1呢?我们来看蓝色点相应的不等式,式子左边是样本点的维度向量x的表达式。对于一些训练样本点。它们另一个已知的类别标记量label,这里我们把它叫做y。这种话。对蓝色点的y值,我们人为将其定为1。而对黑色点的y值,我们将其定为-1,所以,对上面的两个不等式,分别在不等式的两边乘以类别值y,我们就能够自然将两个不等式合并成上面的那一个不等式了。

    这也是为什么我们在生成SVM训练样本的时候,将两个类别分别定义成1和-1的原因!

           到这里,我们目标函数能够写成:


           这种一个目标函数是一个带不等式约束条件的优化问题。它怎么来求解呢?后面一章节来继续解说这个问题。


    ps:使用或者转载请标明出处。禁止以商业为目的的使用。

    假设有须要word版,或者是pdf版的,请与我联系,QQ358536026

     

     



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Action常见注解的运用
    发现越来越喜欢来博客园了,所以自己也注册了一个!
    jsf 繁体教程下载pdf
    poj3210
    poj3224
    poj3219
    poj3233
    poj3372
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    年轻就该多尝试,教你20小时Get一项新技能
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4907369.html
Copyright © 2011-2022 走看看