本文摘抄自《机器学习》一书,作者:周志华
-
支持向量机简介
支持向量机是一种经典的二分类模型,基本模型定义为特征空间中最大间隔的线性分类器,其学习的优化目标便是间隔最大化,因此支持向量机本身可以转化为一个凸二次规划求解的问题。通常SVM用于二元分类问题,对于多元分类通常将其分解为多个二元分类问题,再进行分类。感知机是一个线性分类器,是支持向量机的基础。
给定训练样本集D,分类学习的最基本想法就是基于训练集D在样本空间找到一个划分超平面,将不同类别的样本分开。但是能将训练样本分开的划分超平面很多,哪一个才是最优的呢?直观上看,应该去找位于两类训练样本正中间的划分超平面,因为该划分超平面对训练样本局部扰动的容忍性最好。
在样本空间中,划分超平面可通过如下线性方程来描述:
其中为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。显然划分超平面被法向量
和位移b确定。样本空间中任意点x到超平面
的距离可写为:
假设超平面能将训练样本正确分类,即对
,若
,则有
;若
,则有
。令:
,
,
距离超平面最近的这几个训练样本点使上式的等号成立,他们被称为”支持向量”,两个异类支持向量到超平面的距离之和为:
它被称为“间隔”。
显然,为了最大化间隔,仅需最大化,这等价于最小化
。即:
这就是支持向量机的基本型。(支持向量机的数学推导过于复杂,所以点到为止)
-
核函数
实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去。但进一步,如果凡是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到可怕的。此时,核函数就隆重登场了,核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。
常见的核函数有:线性核函数、多项式核函数、高斯核函数,等。