机器学习系列算法(三)
支持向量机
1、与Logistic回归做比较
Logistic回归下,模型
的优劣准则即是
的值;而该值正相关于“样本离
的距离”,我们期望距离尽可能大。
如图所示。距离
已经很远的样本,它们离直线是否再远一点已经meaningless(例如
和
几乎没区别),而本身距离就很小的样本,使它们离直线再远一点就很有价值。
而Logistic回归是简单的将所有样本与
的距离相加。这样便可能发生,以很近的样本减小距离为代价,换取远处的样本增加距离。这不科学。

支持向量机(SVM)就是因此引出的,它只考虑离分界面(即
分界线,高维情况下这是个超平面)最近的样本;如果该样本都可以表现良好,那其它样本更不用说,这样便有理由认为模型很赞。
2、Lagrange乘子法求解等式约束的极值问题的原理
等式约束的极值问题如下:

Lagrange乘子法的步骤为:
①定义Lagrange函数

②对向量x的每一维&参数求偏导数
,令偏导数为0。这样便求得了x的目标值,然后带入f(x)中便得到最大值。注意这里共有n+1个未知数(向量x有n个维度,还有
)和n+1个"偏导数=0"的方程,正常情况下可以求解。
这里想说明的是,为什么这个方法可以求极值。
对f(x)做全微分得到:

当df(x)不能变动时,函数f(x)便取到极值。影响变动的因素有两个:梯度向量
和微分向量dx。
微分向量dx代表在当前位置,函数将要移动的方向。无约束极值问题时,dx可以是任意方向;但有了约束就不一样,例如有这个约束:

那么就有:

此时函数的移动方向
受到限制,只能沿
这条直线移动。
梯度向量
指示在当前位置,函数增加最快的方向及增加的量(就是
),这个就不解释了。
在当前位置处,除非
和微分dx垂直(若两者至少一个为0向量,也看做垂直);否则
便不等于0,函数便没有达到极值。
因此f(x)的极值点处,必定有
和dx垂直。
另一方面,考察约束G(x)=c,对其求全微分有:

因为G(x)=const,所以始终有
。即任意点都有
与dx垂直。
综合来看,极值点处,必定有:

刚好就是是Lagrange函数对向量的一阶导数为0的条件:

【Lagrange乘子法写作
的形式并且令
的依据就在于:极值点处
与
平行】
3、Lagrange乘子法的扩展
一是扩展到多个等式约束。
在m个等式约束下,每个约束的梯度依旧与dx处处垂直,不解释;而目标函数f(x)也还是在极值点处与dx垂直。所以极值点处,
与每个
都平行,即存在线性关系。
因此,Lagrange函数写作:

二是扩展到不等式约束,如下:

此时,Lagrange函数不变,只是一阶条件有变化:

条件
是想说,若
为正数(内部点)时
应当为0,这和等式约束是一样的;而
为0(角点)时
应当≤0。这称为互补松弛条件。

这个也是类似。
为正时约束取等号,称为“紧约束”;
为0时约束取不等号,称为“松约束”。
4、支持向量机的原始描述
Logistic回归的形式化描述如下:

注意这里的
等价于
。
现在改用SVM了。首先,结果记作1&-1(不再是1&0);其次,
改写为:

因此形式化描述为:


如前所述,我们期望
的值尽可能是个大正数OR大负数,这样预测的置信度才高。
任一样本到分界面(即
的超平面)的几何距离为:

这里
根据样本是正类还是负类分别取1和-1;显见
始终都是正值。
讲到SVM必然得提到“函数间隔”的概念。这也是人为定义的:

用它来衡量预测的置信度。之所以提出它,大概是因为这是最直观的衡量标准,不像集合间隔还得除以向量w的模。但是它带来一个问题是,w和b成倍增长的话,直线还是那个直线,但是函数间隔统统增大了,显得貌似训练效果提升了一样。这不科学。
已经得到了任一样本到分界面的几何间隔;因为SVM考察的是最小的那个间隔,因此可以描述为:

这里涉及凸优化,总之这个形式难以直接计算,需要做转换。首先用函数间隔
改写;然后,因为计算出的w和b都是关于
的表达式,而我们只需要确定的值,所以将其置1:

也就是将最靠近分界面的那个点与分界面的距离定义为
。再做改写:

这样就是典型的二次规划问题了,可以方便的求解。
5、为什么叫“支持向量机”
分类模型的目标是找出不同类别的分界面。因为“支持向量”在确定分界面中起决定性作用,所以这种分类模型叫做“支持向量机”。
“支持向量”定义为“离分界面最近的样本点”,也就是使约束的等号成立的点,亦即对支持向量有:

图中位于虚线上的点就是“支持向量”。它们到分界面的几何间隔分别是
。

注意到非“支持向量”样本对分界面的确定不起丝毫作用,即移动甚至抹去这些点,最终训练出来的模型仍旧不变。因此说“支持向量”在确定分界面中起决定性作用。
一般来说,“支持向量”的个数很少,所以SVM由少量的重要样本决定(作为对比,Logistic回归则由全部样本参与决策)。
6、支持向量机求解 step (1)
Lagrange函数如下:

注意到
并且
,所以
最大可能值就是
;并且肯定可以取到(只需令全体
即可)。
因此原目标函数
等价于:

根据Lagrange对偶性(这里的对偶问题更好解决),对偶问题是:

针对对偶问题,首先求解
。

将这两个式子带入初始的
表达式,化简可得:

因此有:

至此,原始的SVM最优化问题:

已经转化为:

7、支持向量机求解 step (1) 补充说明
(a)
此时,“支持向量”可以被准确定义为:使得
的样本点
。
因为,由KKT互补条件可知:

前面的感性定义已经说了,支持向量就是离分界面最近的点,它们使得约束的等号成立;从这里看,对于
的样本点,必定有
,所以是支持向量(但是《统计学习方法》上并未解释,为什么支持向量就一定是
)。
(b)
只需要求解出
就等于确定了分类模型(w,b)。因为前面已经推导过:

再由支持向量使约束的等号成立;假设
是一个支持向量,那么有:

(c)
分类决策函数仅依赖于新样本的输入(即向量x)和训练样本的输入的内积。

这是后面将要提到的“核函数”方法的基础。
8、支持向量机求解 step (2)
也就是SMO算法。
数据不线性可分时,将硬间隔最大化变为软间隔最大化,称为“线性支持向量机”(后文会详细讲)。此时待优化的问题为:

SMO算法就是用来求解线性支持向量机,这等价于求解向量
;因为只要知道
,分界面表达式立即可得。上述问题有精确解,但是数据量大时效率太低,因此SMO算法只求一个近似解
。
总体思路如下:
①取初始值
;
②按某种规则选出
的两个分量(不妨记作
、
),并将其余m-2个分量看做常量,在此场景下求解最优化问题,得到
和
;
③按照上一步计算结果,更新
;同时更新b和
(表达式后文有);
④如果此时的
已经在精度
内满足KKT条件,则退出;否则转②步骤。
以下分三个部分讨论:
PART ONE:迭代退出的条件。
若
(的每个分量都)满足KKT条件,则
是该最优化问题的解(后面详细讲),所以将KKT条件作为退出迭代的准则。
具体到本例,KKT条件形式化描述为:

在SMO的迭代中,若
的所有分量都在一定精度内满足该条件,就可以认为它是近似最优解。
PART TWO:如何由
、
计算出
、
。
原始待优化表达式的另一种写法为:

由于把向量
除
、
的分量均看做常量,上述表达式省略了常量。
约束写作:

这里包含一个等式约束(两者相互关系)和一个不等式约束(各自的取值范围)。
为求解
、
;先计算不考虑取值范围(即不等式约束)时的最优解。将
用
表示为:

这样就把
化为仅含
的表达式
,显见它是二次函数;求解
如下:

其中:

但实际上
未必能取到这个最优值,因为
的取值范围是有限制的。如下图所示:

由
可知,
、
只能沿着某条直线运动:在
符号相反时是45°直线;否则是135°直线。又因为的限制,直线变身线段。
图示的是45°直线的情况。细分为两种:①
时,
的最小值0、最大值
;②
时,的最小值
、最大值C。
可以如下形式将两种情况综合起来:

若是135°线段,类似有:

因为
的取值只能介于L和H之间,所以有:

计算出
的表达式,便立刻得到
的值,于是本阶段OK。
PART THREE:选择哪两个变量做迭代。
首先,至少有一个变量违反了KKT条件(否则已经退出迭代),因此样本1就选择违反KKT条件最严重的那个。
KKT条件前已列出:

(注意到
的意义是该样本点到分界面的函数间隔;因此KKT条件的含义可理解为:间隔线外面的样本,其系数
;间隔线之间的样本,其系数
;刚好位于间隔线之上的,系数
)
选定了样本1之后,由
的式子,我们期望
尽可能大,因此选择使得
最大的样本为样本2。
注意:每次迭代之后,都要更新更新向量b和向量E,这里不详细写了。
9、线性支持向量机
样本线性不可分时的支持向量机。
此时不存在分界面,使任意样本都被正确分类,并且离分界面的函数间隔至少是1(称为硬间隔,对应几何间隔
);因此,我们为每个样本增加一个误差
,即任意样本距离分界面的距离至少为
(称为软间隔)。
此前讨论过样本线性可分时SVM的最优化问题。引入松弛变量
向量后,最优化问题如下:

这个式子本身没什么好解释的,目标函数里的
明显是惩罚项。
下面求解该最优化问题。首先构建Lagrange函数:

原始目标函数等价于:

其对偶问题为:

令偏导为0可得:

注意
、
、
三者联合,可以消去变量
。带入原始Lagrange函数得:

再对该式求关于
、
的极大即可。
因此,样本点不能线性分隔时,SVM的最优化函数的对偶问题是:

对于该对偶问题的求解,参见SMO算法。
在已经求得一个近似解
后,据此可求解w、b。这样就确定了分界面,亦即确定了支持向量机模型;注意分界面不唯一,因为b的近似解不唯一。
w的近似解是唯一的:

然后选择一个
的样本点,记作
。那么有:

在此前讨论线性可分情况时,“支持向量”感性理解就是位于间隔线上(距分界面函数间隔为1)的样本,并且给出了准确定义:系数
的样本点
。
浙公网安备 33010602011771号