Content
8. Support Vector Machines(SVMs)html
8.1 Optimization Objection算法
8.2 Large margin intuition网络
8.3 Mathematics Behind Large Margin Classification机器学习
8.4 Kernels函数
8.5 Using a SVM学习
8.5.1 Multi-class Classification优化
8.5.2 Logistic Regression vs. SVMsui
支持向量机(Support Vector Machine: SVM)是一种很是有用的监督式机器学习算法。首先回顾一下Logistic回归,根据log()函数以及Sigmoid函数的性质,有:spa
同时,Logistic回归的代价函数(未正则化)以下:orm
为获得SVM的代价函数,咱们做以下修改:
所以,对比Logistic的优化目标
SVM的优化目标以下:
注1:事实上,上述公式中的Cost0与Cost1函数是一种称为hinge损失的替代损失(surrogate loss)函数,其余常见的替代损失函数有指数损失和对率损失,具体参见《机器学习》P129 周志华)
注2:注意参数C和λ的对应关系: C与(1 / λ)成正相关。
根据8.1中的代价函数,为使代价函数最小,有以下结论:
现假设C很大(如C=100000),为使代价函数最小,咱们但愿
因此代价函数就变为:
因此问题就变成:
该问题最后的优化结果是找到具备"最大间隔"(maximum margin)的划分超平面,因此支持向量机又称大间距分类器(large margin classifier)。那么什么是间隔? 为何这样优化就能够找到最大间隔?首先,咱们经过图8-1所示的二维的0/1线性分类状况来直观感觉。
图8-1 SVM Decision Boundary: Linearly separable case
直观上,应该去找位于两类训练样本"正中间"的划分超平面,即图8-1的黑色直线(二维),由于该划分超平面对训练样本局部扰动的"容忍"性最好。例如,图中的粉色和绿色直线,一旦输入数据稍有变化,将会获得错误的预测。换言之,这个划分超平面所产生的分类结果是最鲁棒的,对要预测数据集的泛化能力最强。而两条蓝色直线之间的距离就称为间隔(margin)。下一节将从数学角度来解释间隔与最大间隔的优化原理。
首先介绍一些数学知识。
因此有:
其中是
在
向量上的投影长度。
因此,8.2节获得的优化问题能够转为以下形式:
分界线为,因此可知
和分界线正交(垂直),而且当
时,分界线过原点(欧式空间)。为使目标最优(取最小值)且知足约束,
应该尽量大,这样就要求间距尽量的大。直观的如图8-2所示,图左为间距较小的状况,此时的
较小,为知足约束,致使目标函数变大,图右为最大间距的状况,此时的
是最大的,因此目标能够尽量的小。
图8-2 两种不一样间距的状况
上述的讨论都是基于线性可分的样本,即存在一个划分超平面能够将训练样本正确分类,然而现实世界存在大量复杂的,非线性分类问题(如4.4.2节的异或/同或问题)。Logistic回归处理非线性问题能够经过引入多项式特征量做为新的特征量;神经网络经过引入隐藏层,逐层进化解决非线性分类问题;而SVM是经过引入核函数(kernel function)来解决非线性问题。具体作法以下:
,其中
与
为一一对应;
如今有两个问题,
对于第一个问题,能够按照以下方式,即将训练集的输入做为landmarks
因此特征量的个数与训练集的个数相等,即n = m,因此带有核的SVM变为以下形式:
对于第二个问题,经常使用的核函数有线性核,高斯核,多项式核,Sigmoid核,拉普拉斯核等,现以经常使用的高斯核(Gaussian)为例。
高斯核具备以下性质:
也就是说,若是x和landmark接近,那么核函数的值也就是新的特征量将会接近1,而若是x和landmark距离很远,那么核函数的值将会接近0.
是高斯核的参数,它的大小会影响核函数值的变化快慢,具体的,图8-3是一个二维状况下的特殊例子,可是所含有的性质是可推广的。即
越大,核函数变化(降低)越缓慢,反之,
越小,核函数变化越快。
图8-3 参数对高斯核的影响举例
下面对SVM的参数对误差和方差的影响作简要分析:
上文简单的介绍了SVM的优化原理以及核函数的使用方式。在实际应用SVM中,咱们不须要本身去实现SVM的训练算法来获得参数,一般是使用现有的软件包(如liblinear, libsvm)。
可是下面的工做是咱们须要作的:
下面是须要注意的地方:
参考:《机器学习》 周志华