机器学习周志华:支持向量机
线性可分
在二维空间上,两类点被一条线分隔开称为线性可分。
在n维空间中,要分开两个线性可分的点集合,我们需要找到一个超平面(Hyper Plane)。
最大间隔超平面
从二维空间扩展到多维空间时,分开左右两类点的直线 wx + b = 0就成为了一个超平面。
为了使这个超平面更具有鲁棒性,我们需要寻找到一个最大间隔把两类点分开的超平面,称为最大间隔超平面。
该超平面到两类点的最近点的距离最大,且两类点分布在超平面的两侧。
支持向量
其中,距离最大间隔超平面的点称为支持向量。
SVM最优化
在二维空间中,最短距离为:
那么对于 wx+b=0,则有
我们的目标函数为max d,则根据两直线平行公式:
则我们的目标函数可以简化成:
(未完待续)
吴恩达机器学习:支持向量机
优化目标
以逻辑回归的代价函数作为基础,现在将 log(1/1+ exp(-θTx))这一项假设为cost1(z),右图中的1 - log(1/1+ exp(-θTx))这一项假设为cost0(z)
加上正则化后:
大间隔分类器
C 较大时,相当于 λ 较小,可能会导致过拟合,高方差。
C 较小时,相当于 λ 较大,可能会导致低拟合,高偏差。
最大间隔超平面:
数学原理
核函数
利用核函数(Kernel)计算出新的特征: f1 = x1, f2 = x2, …得到ℎθ(x) = θ1f1 + θ2f2 + … + θnfn
如下中的f1就是核函数,具体而言,这里是一个高斯核函数(Gaussian Kernel)。
在预测时,我们采用的特征不是训练实例本身的特征,而是通过核函数计算出的新特征f1, f2, f3。
支持向量机也可以不使用核函数,不使用核函数又称为线性核函数(linear kernel),当我们不采用非常复杂的函数,或者我们的训练集特征非常多而实例非常少的时候,可以采用这种不带核函数的支持向量机。
SVM的使用
以n为特征数, m为训练样本数。
(1)如果相较于m而言, n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
(2)如果 n 较小,而且m大小中等,例如n在 1-1000 之间,而m在 10-10000 之间,使用高斯核函数的支持向量机。
(3)如果 n 较小,而m较大,例如n在 1-1000 之间,而m大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。
《吴恩达机器学习》
《周志华机器学习》