第13章 支持向量机(Support Vector Machines)
一,优化目标(Optimization objective)
SVM也是广泛的应用于工业界和学术界的监督学习算法。
类似于logistic的代价函数,SVM的代价函数如图是斜直线加上平直线。所以是类似的,在之后的优化问题中,这会变得更坚定,并且为支持向量机,带来计算上的优势。例如,更容易计算股票交易的问题等等。
二,直观上对大间距的理解
人们有时将支持向量机看作是大间距分类器。
SVM可以建立一个安全间距,虽然logistic也会做类似的事情。
支持向量机是一种大间距分类器,间距margin。
三,大间距分类器的数学原理
向量的内积,vector inner product
我的推导
这不是一个非常好的选择,因为它的间距很小。这个决策界离训练样本的距离很近。我们来看一下为什么支持向量机不会选择它。
对于这样选择的参数theta,可以看到参数向量theta事实上是和决策界是90度正交的,因此这个绿色的决策界对应着一个参数向量theta这个方向,顺便提一句theta_0=0的简化仅仅意味着决策界必须通过原点。现在让我们看一下这对于优化目标函数意味着什么。
比如这个样本,我们假设它是我的第一个样本x^(1),如果我考察这个样本到参数theta的投影,投影是这个短的红线段,就等于p^(1),它非常短。类似地,这个样本如果它恰好是x^(2),我的第二个训练样本,则它到的投影在这里。我将它画成粉色,这个短的粉色线段是p^(2),即第二个样本到我的参数向量的投影。因此,这个投影非常短。p^(2)事实上是一个负值,是在相反的方向,这个向量和参数向量theta的夹角大于90度,p^(2)的值小于0。
我们会发现这些p^(i)将会是非常小的数,因此当我们考察优化目标函数的时候,对于正样本而言,我们需要,但是如果p^(i)在这里非常小,那就意味着我们需要theta的范数非常大.因为如果p^(1)很小,而我们希望,令其实现的唯一的办法就是这两个数较大。如果 p^(1)小,我们就希望theta的范数大。类似地,对于负样本而言我们需要。我们已经在这个样本中看到p^(2)会是一个非常小的数,因此唯一的办法就是的范数变大。但是我们的目标函数是希望找到一个参数theta,它的范数是小的。因此,这看起来不像是一个好的参数向量theta的选择。
四,核函数1
采用别的方法来构造非线性的特征量
高斯核函数,范数部分是欧式距离取平方。
基于x和l的相似度,计算新的特征量。
五,核函数2
六,使用svm
可以先对数据进行缩放
已有的核函数算法包
许多SVM包已有多分类功能了,也可以采用一对多方法
什么时候要用核函数,特征量特别少,样本多。
无核函数的SVM法与logistic regression类似。