SVM的来龙去脉(1)

SVM的来历

     SVM作为机器学习中的一大霸主(虽然今时不同往日),对机器学习领域产生了很大的影响。SVM的相关原理看的时间比较久,所以想记录一下,想说清楚这件事需要比较多的文字,所以文章比较长(分为几部分),我们先谈谈SVM的来历  

1、Logistic回归

我们就先从logistic回归谈起,我们都知道线性回归是试图学得一个线性模型,以尽可能准确的预测实值输出标记。假如我们将线性回归用于分类问题,然后设置一个阈值对实值输出标记进行分类,如下图所示:

(这是一个用肿瘤尺寸判断良性\恶性的线性回归模型)

   像图中,假设我们用线性回归做分类处理,然后设置阈值为0.5,输出值为0.5所对应的肿瘤尺寸大小为分割线,那么红色线可以得到不错的性能,但是当样本集中出现途中最右边的样本点时,回归线变为蓝色,这时性能就会很差。          

   直接将线性回归应用于分类问题性能会相当差。简单来说,以二分类为例,输出结果非0即1,但是线性回归的输出结果有时会远大于1或远小于0,这看起来就会很奇怪。          

   所以logistic回归,说到底其实就是要找到合适的函数将线性回归中的值转化为0/1

   使用sigmoid函数来实现对线性回归结果的转换,如下图所示:

   Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率,如此一来我们便得到了一个0/1分类器。

 对于如何拟合logistic回归模型的参数theta,具体说就是定义拟合参数的优化目标或者代价函数,我们定义如下的cost函数:

之所以没有用到预测值与实际值之间偏差的平方作为代价,它会得到一个非凸函数,而我们要获得一个凸函数,才可以利用梯度下降法有效的求出其最优解。当代价函数确定,logistic模型也就确定了

2、logistic向SVM过渡(SVM要做什么)

       1、如下图(1)所示,我们可以看到SVM的代价函数,与logistic不同的是当我们判断样本x为0/1分类中的“1”时不再仅仅要求它大于0,而是让其大于1,与之对应的“0”的判别条件是让其小于-1。这样我们会产生一个安全间距,如图二所示蓝色和红色线间的距离即我们所说的安全间距,绿色线即为我们的“决策边界”。而红线和蓝线上的样本即为支持向量。 

                   

                            (图一)                                                                                  (图二)

3、关于SVM的最大间隔(SVM要做的事)

          首先,分类学习最基本的思想就是:寻找一个超平面把数据集的样本空间划分成不同的样本。比较直观的一种情况就是二维下的,如下图:

         直观上看,我们应该去寻找两类样本正中间的直线来划分这两类样本。图中有三根直线:先看绿线,不难发现,它穿过了黑色点集,分类肯定错误了;红线和蓝线都正确地分开了两类样本。然而,我们肯定都觉得蓝线不是一种很好的方法,因为它距离样本太近了,在这个数据集附近随机再取一个新的样本,很有可能就越过了它,导致分类错误;相对而言,红线更好,因为它到两类样本的距离都有一定距离,这也意味着,它对未知示例的泛化能力更强,是最鲁棒的。这也就是SVM所要求解的“决策函数”。

        SVM就是要求的使上文中所提到的安全间隔最大化的决策函数,选择使得间隙最大的函数作为分割平面是由很多道理的,比如说从概率的角度上来说,就是使得置信度最小的点置信度最大(距离分割平面距离越大置信度越高),从实践的角度来说,这样的效果非常好。从直观上来说,就是分割的间隙越大越好,把两个类别的点分得越开越好。就像我们平时判断一个人是男还是女,就是很难出现分错的情况,这就是男、女两个类别之间的间隙非常的大导致的,让我们可以更准确的进行分类。          

       它不再像logistic回归一样企图去拟合样本点(中间加了一层sigmoid函数变换),而是就在样本中去找分隔线(让间隔最大化,这是通过样本直接确定的),为了评判哪条分界线更好,引入了几何间隔最大化的目标。

好,介绍完SVM的由来接下来我们就要说一下SVM的拟合过程了,见后续。

发布了5 篇原创文章 · 获赞 0 · 访问量 118

猜你喜欢

转载自blog.csdn.net/qq_37705280/article/details/105352119
svm