()支持向量机SVM(上)-大数据文档资料.docx
支持向量机(上)
JerryLead
csxulijie@
2011年3月12日星期六
1简介
支持向量机基本上是最好的有监督学习算法了。最开始接触SVM是去年暑假的时候,老师要求交《统计学习理论》的报告,那时去网上下了一份入门教程,里面讲的很通俗,当时只是大致了解了一些相关概念。这次斯坦福提供的学习材料,让我重新学习了一些SVM知识。我看很多正统的讲法都是从VC维理论和结构风险最小原理出发,然后引出SVM什么的,还有些资料上来就讲分类超平面什么的。这份材料从前几节讲的logistic回归出发,引出了SVM,既揭示了模型间的联系,也让人觉得过渡更自然。
2重新审视logistic回归
Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。
形式化表示就是假设函数
其中x是n维特征向量,函数g就是logistic函数。
的图像是
可以看到,将无穷映射到了(0,1)。
而假设函数就是特征属于y=1的概率。
当我们要判别一个新来的特征属于哪个类时,只需求?θ(x),若大于0.5就是y=1的类,反之属于y=0类。
再审视一下?θ(x),发现?θ(x)只和θTX有关,θTX0,那么?θ(x)0.5,g(z)只不过是用来映射,真实的类别决定权还在θTX。还有当θTX?0时,?θ(x)=1,反之?θ(x)=0。如果我们只从θTX出发,希望模型达到的目标无非就是让训练数据中y=1的特征θTX?0,而是y=0的特征θTX?0。Logistic回归就是要学习得到θ,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练实例上达到这个目标。
图形化表示如下:
中间那条线是θTX=0,logistic回顾强调所有点尽可能地远离中间那条线。学习出的结
果也就中间那条线。考虑上面3个点A、B和C。从图中我们可以确定A是×类别的,然而C我们是不太确定的,B还算能够确定。这样我们可以得出结论,我们更应该关心靠近中间分割线的点,让他们尽可能地远离中间线,而不是在所有点上达到最优。因为那样的话,要使得一部分点靠近中间线来换取另外一部分点更加远离中间线。我想这就是支持向量机的思路和logistic回归的不同点,一个考虑局部(不关心已经确定远离的点),一个考虑全局(已经远离的点可能通过调整中间线使其能够更加远离)。这是我的个人直观理解。
3形式化表示
我们这次使用的结果标签是y=-1,y=1,替换在logistic回归中使用的y=0和y=1。同时将θ替换成w和b。以前的θTX=θ0+θ1X1+θ2X2+?+θnXn,其中认为x0=1。现在我们替换θ0为b,后面替换θ1X1+θ2X2+?+θnXn为w1X1+w2X2+?+wnXn(即WTX)。这样,我们让θTX=WTX+b,进一步?θ(x)=g(θTX)=g(WTX+b)。也就是说除了y由y=0变为
y=-1,只是标记不同外,与logistic回归的形式化表示没区别。再明确下假设函数?w,b(x)=g(WTX+b)
上一节提到过我们只需考虑θTX的正负问题,而不用关心g(z),因此我们这里将g(z)做一个简化,将其简单映射到y=-1和y=1上。映射关系如下:
4函数间隔(functionalmargin)和几何间隔(geometricmargin)
给定一个训练样本(X(i),y(i)),x是特征,y是结果标签。i表示第i个样本。我们定义函数间隔如下:
(i)=y(i)(WTX(i)+b)
可想而知,当y(i)=1时,在我们的g(z)定义中,WTX(i)+b≥0,(i)的值实际上就是
|WTX(i)+b|。反之亦然。为了使函数间隔最大(更大的信心确定该例是正例还是反例),当y(i)=1时,WTX(i)+b应该是个大正数,反之是个大负数。因此函数间隔代表了我们认为特征是正例还是反例的确信度。
继续考虑w和b,如果同时加大w和b,比如在(WTX(i)+b)前面乘个系数比如2,那么所有点的函数间隔都会增大二倍,这个对求解问