以下文章摘录自:
《机器学习观止——核心原理与实践》
京东: https://item.jd.com/13166960.html
当当:http://product.dangdang.com/29218274.html
(由于博客系统问题,部分公式、图片和格式有可能存在显示问题,请参阅原书了解详情)
1.1 SVM的数学表述
通过前一小节的学习,我们已经了解了SVM的目标是:寻找最优的决策面——即“what”的问题。接下来,我们就要进一步回答“How”的问题了——即如何寻找到这个最优解?
我们知道,求最优解的第一个步骤通常是把遇到的问题“数学化”,或者说建立一个能够完整描述问题的“模型”。具体到SVM这个场景下,包括分类间隔、决策面等在内的核心元素都是我们首先要去思考的。
1.1.1 决策面的数学表述
二维空间下的线性决策面就是一条直线,因而我们只需利用初中知识就可以把它用数学公式表示出来了:
x2 = ax1 + b
其中x1和x2分别表示横轴和纵轴。
当然,我们还可以对上述公式进行一些调整,成为如下的形式:
ax1 - x2 + b = 0
或者还可以用向量来表示:
ax1 - x2 + b = 0
à[a, -1] + b = 0
à wT x + b = 0
最后一个式子是带有一般性质的向量表达方式,其中T代表的是转置标志。
对照上述几个式子,不难发现:
w =
x =
现在我们已经有了决策面的数学表达式,可以再回来思考SVM所要解决的问题了。在前面小节中,我们曾有过这样的描述:
“我们保持某个决策面(例如H3)的方向不变,然后分别向左右两边挪动,并保证不会出现样本错分的情况。那么它们最后一定会遇到这样一个临界位置——只要跨过这个位置就会出现样本错分的情况…”
从数学的角度来讲,我们如何“保持某个决策面(例如H3)的方向不变,然后分别向左右两边挪动”呢?
很简单,不就是在左右挪动过程中保持与决策面(如H3)平行不就行了嘛。或者换一种说法,就是保证在挪动的过程中要始终沿着决策面的垂直方向行进。
因为x2 = ax1 + b的斜率为a,所以如果我们构建一个向量u:
u = [1, a] T
那么u与这条直线就是平行的。
又因为向量wT和u的乘积如下:
wT*u
= [a -1]
= a-a
= 0
这说明它们两个向量相交,或者说垂直。所以在SVM的概念里,w就控制了决策面的方向。
1.1.2 分类间隔的数学表述
通过前面小节的学习,我们知道“两条左右直线的正中间分界线就是我们所寻找的方向不变条件下的最优决策面,而它们之间的垂直距离代表的便是分类间隔了”。另外,因为决策面处于正中间,所以分类间隔当然就是support vector到决策面距离的两倍了。
可以参考wikipedia提供的下述图示:
图 ‑ 分类间隔
对于二维空间的点到直线的距离,我们只需应用简单的欧几里德距离(Euclidean Distance)公式就可以计算出来,即:
上式假设直线方程为Ax + By + C =0,点的坐标则为(x0, y0)
更为一般的表达方式是: