支持向量机
1 间隔与支持向量
我们想要找到一个样本空间D中的超平面,将不同类别的样本划分开。这样的超平面有很多,但是现在正中的划分超平面对训练样本扰动的“容忍性”更好,更具有鲁棒性,对未见样例的泛化能力最强。
距离超平面最近的几个训练样本点使得公式6.3中的等号得以成立,它们被称为支持向量。两个异类支持向量到超平面的距离称为“ 间隔 ”。
最优的划分超平面需要使得间隔 r 最大化。
这就是支持向量机的基本型。
2 对偶问题
对式6.6使用拉格朗日乘子法可以获得其对偶问题(每一个线性规划问题都存在一个与其对偶的问题,在求出一个问题解的同时,也给出了另一个问题的解。)
求解6.11的时候,因为其是二次规划问题,可以通过二次规划算法求解。带该问题的规模正比于训练样本数,所以在实际任务中开销巨大。因此,有很多规避这一开销的算法。
SMO:
固定α以外的所有参数,求α的极值。通过约束条件,可以用其它变量将阿尔法进行表示。
过程重复以下两步:
1 选取αi、αj
2 固定其它参数,解6.11并跟新αi、αj
αi、αj有一个不满足KKT条件的时候,目标函数就在迭代后减小。违背程度大则变量更新后的目标函数减幅越大。
3 核函数
现实任务中,原始样本空间中也许不存在一个可以正确划分两类样本的超平面,但可以通过映射将原始空间映射到更高纬度的空间,进而使得样本在特征空间中线性可分。
但是要计算两个x在映射空间的内积比较困难,因为特征空间的往往是高维的。所以我们设想这样的一个函数:
即两个x在映射空间的内积等于其原始空间中通过k函数计算的结果。这个k函数就是核函数。
映射空间的好坏对支持向量机的性能至关重要。在不知道特征映射的形式的时候,我们不知道什么样的核函数合适,所以核函数的选择是支持向量机的最大变数。若将特征映射到了不合适的空间,会导致性能不佳。
核函数通过线性组合、直积等方式依然是核函数。
4 软间隔和正则化
现实任务中很难找到核函数使得训练集完全线性可分,且完全的线性可分也可能是过拟合的结果。
为了应对这一问题,允许向量机在一些样本上出错。引入了软间隔的概念。
与要求所以样本必须划分正确的硬间隔不同,软间隔允许部分样本不满足约束条件:
0/1损失函数的函数性质不佳,使得6.29不宜求解。通常使用一些替代函数来替换损失函数,他们通常是0/1损失函数的上界。
常见的替代损失函数有:
5 支持向量回归SVR
对于传统回归模型,基于模型输出f(x)与真实输出y的差别计算误差,SVR中,我们假定容忍一定程度的偏差,仅当模型输出f(x)与真实输出y的误差绝对值大于e时,才计入误差。
6 核方法
无论SVM还是SVR学得的模型都能表示为核函数的线性组合,显示出核函数的优势。所以发展出了一系列的基于核函数的学习方法,统称为核方法。
最常见的是通过引入核函数,将线性学习器进行非线性拓展。
例如KLDA,核线性判别分析
网友评论