西瓜书学习笔记——第六章:支持向量机(含公式推导)
6. 本章简介
支持向量机(Support Vector Machine),简称SVM,是一种经典的二分类模型,属于监督学习算法。
- 6.1节:介绍了支持向量机的目标是确定一个对样本的分类结果最鲁棒的线性分类器,即找到一个具有最大间隔的划分超平面。为此以间隔为优化目标,可将其转化为一个凸二次规划问题。
- 6.2节:对于6.1节求出的凸二次规划问题,采用拉格朗日乘子法可得到其对偶问题。由于该对偶问题又为二次规划问题,文中采用了SMO算法对其进行求解。
- 6.3节:前两节是在样本在其原始样本空间线性可分的假设下进行讨论的,该节针对原始样本空间线性不可分的问题,基于有限维原始样本空间一定存在一个高维特征空间使样本线性可分这一定理,引出了原始空间和特征空间的桥梁——核函数的相关概念,并强调核函数的选择是支持向量机的最大变数。
- 6.4节:前三节都是基于理论进行的推导,但在现实情况下我们很难确定合适的核函数对样本进行完美分类,故提出了软间隔的概念,允许有尽可能少的样本不满足约束条件。于是在前面的基础上,模型加入了对各个样本松弛变量的考量,并采用6.2节的方法进行求解。
- 6.5节:本节从分类问题转向了回归问题,介绍了相对于传统回归问题上对损失的严格定义,支持向量回归(SVR)则对模型输出和真实输出设有容许偏差,只有超过偏差才计算损失。凭此建立了SVR模型,并还是采用6.2节的方法进行求解。
- 6.6节:由前面的推导发现,SVM和SVR学得的模型总能表示成核函数的线性组合,并引出了表示定理,强调了该类型的优化问题的解总可表示为核函数的线性组合,并以线性判别分析(LDA)为例向我们演示了如何通过引入核函数(核化)进行非线性拓展。
6.1 间隔与支持向量
支持向量机的目标是确定一个对样本的分类结果最鲁棒的线性分类器,即找到一个具有最大间隔的划分超平面。为此以间隔为优化目标,可将其转化为一个凸二次规划问题。
对于二分类问题,其基本思想就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。
但仅仅是将样本分开的话,那么我们可能可以找到许多个划分超平面。如图6.1所示,从几何意义易知,粗线对训练样本局部的扰动的“容忍性”最好(其他的超平面训练样本很容易越界,考虑到噪声等因素,其分类结果很不稳定),也是最鲁棒的。于是粗线也就是我们想要的最优划分超平面。
我们知道最优划分超平面应该满足超平面同时离两个不同类的样本尽量远这一条件,以下是为了量化“尽量远”进行的概念引申:
- 超平面方程:样本空间中,用来描述超平面的线性方程为:
(6.1) w T x + b = 0 w^Tx+b=0\tag{6.1} wTx+b=0(6.1)
其中, w = ( w 1 ; w 2 ; . . . ; w d ) w=(w_1;w_2;...;w_d) w=(w1;w2;...;wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。 - 点到超平面的距离:样本空间中任意点 x x x到超平面(记为 ( w , b ) (w,b) (w,b))的距离为:
(6.2) r = ∣ w T x + b ∣ ∥ w ∥ r=\dfrac {\left| w^{T}x+b\right| }{\left\| w\right\| }\tag{6.2} r=∥w∥∣∣wTx+b∣∣(6.2) - 约束条件与支持向量(support vector)
式(6.3)即为超平面将训练样本正确分类的约束条件。如下图所示,距离超平面最近的三个训练样本使得式(6.3)的等号成立,它们就是支持向量。
- 间隔(margin):两个不同类别的支持向量分别到超平面的距离之和
以下是对式(6.2)和(6.3)的推导:
(6.2):
设 x ′ x' x′为超平面上的一点,则样本空间任意点 x x x到超平面的距离 r r r即为:向量 x x ′ xx' xx′在经过点 x x x的超平面的法向量 w w w上的投影,计算投影 = ∣ w T ( x − x ′ ) ∥ w ∥ ∣ =\left| \dfrac {w^{T}(x-x')}{\left\| w\right\| }\right| =∣∣∣∣∥w∥wT(x−x′)∣∣∣∣,又 w T x ′ = − b w^Tx'=-b wTx′=−b,可得 r = ∣ w T x + b ∣ ∥ w ∥ r=\dfrac {|w^{T}x+b|}{\left\| w\right\| } r=∥w∥∣wTx+b∣
注:分子加绝对值是因为向量内积可能小于0
(6.3):
于是,最优划分超平面即对应最大间隔的划分超平面,也就是找到满足(6.3)约束条件的 w 和 b w和b w和b使得 γ \gamma γ最大,即:
最大化 ∣ ∣ w ∣ ∣ − 1 ||w||^{-1} ∣∣w∣∣−1等价于最小化 ∣ ∣ w ∣ ∣ 2 ||w||^{2} ∣∣w∣∣2,于是(6.5)可重写为:
这就是支持向量机(Support Vector Machine,SVM)的基本模型
这里解释一下为什么用 ∣ ∣ w ∣ ∣ 2 ||w||^{2} ∣∣w∣∣2:
\qquad 由约束条件可知将不会存在错误分类的样本,即不存在欠拟合的问题;那么,式(6.6)的优化目标可进一步解释为“最小化 1 2 ∣ ∣ w ∣ ∣ 2 \dfrac{1}{2}||w||^{2} 21∣∣w∣∣2则相当于寻找最不可能过拟合的分类超平面”,为了防止过拟合引入了正则化,即在最小化目标函数中加入分类器的所有参数的模值的平方(不含位移项b)
6.2 对偶问题
对于式(6.6),接下来我们将采用拉格朗日乘子法得到其对偶问题。由于该对偶问题又为二次规划问题,故采用了SMO算法对其进行求解。
6.2.1 转换对偶问题
以下是拉格朗日乘子法求得其对偶问题的基本步骤:
按照上面的步骤,有:
①:对式(6.6)的每一条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i\geq0 αi≥0,则该问题的拉格朗日函数可写为:
其中, α = ( α 1 ; α 2 ; . . . ; α m ) \alpha=(\alpha_1;\alpha_2;...;\alpha_m) α=(α1;α2;...;αm)
注:对于拉格朗日乘子那一项,需将括号里的约束条件转化为 ≤ 0 \leq0 ≤