支持向量机(一)——深入理解函数间隔与几何间隔

1.支持向量机和logistic函数的有什么区别

实践发现,在所给的例子中,两种方法线性划分两类事物时得到的线性分类器的效果差不多。那具体的差别在哪呢?

SVM更关心的是靠近中间分割线的点,让他们尽可能地远离中间线,而不是在所有点上达到最优,因为那样的话,要使得一部分点靠近中间线来换取另外一部分点更加远离中间线。因此支持向量机和和逻辑斯蒂回归的不同点,一个是考虑局部(不关心已经确定远离的点,更考虑靠近中间分割线的点),一个是考虑全局(已经远离的点可能通过调整中间线使其能够更加远离)

2. 函数间隔和几何间隔

首先我们定义超平面的表达式为y=ωTx+by=\omega ^Tx+by=ωTx+b,然后熟悉一下一个点(x,y)(x,y)(x,y)到Ax+By+C=0,的距离公式是Ax+By+CA2+B2\frac{Ax+By+C}{\sqrt{A^{2}+B^{2}}}A2+B2​Ax+By+C​,其次我们要清楚我们的任务是找到离超平面最近的点,并使它最远。

2.1 函数间隔

接着来看函数间隔的定义:给定一个训练样本(xi,yi)(x_i,y_i)(xi​,yi​),x是特征,y是结果标签,i表示第i个样本。定义函数间隔为:

γi^=yi(w∗xi+b)\widehat{\gamma_{i}}=y_{i}(w*x_{i}+b)γi​​=yi​(w∗xi​+b)

由于之前对g(z)进行了定义,当yi=1y_i=1yi​=1时,w∗xi+b≥0w*x_i+b≥0w∗xi​+b≥0,所以函数间隔实际上是∣w∗xi+b∣|w*x_i+b|∣w∗xi​+b∣。由于是一个训练样本,那么为了使函数间隔最远(更大的信息确定该样本是正例还是反例),所以,当yi=1y_i=1yi​=1时,我们希望w∗xi+bw*x_i+bw∗xi​+b能够非常大,反之是非常小。因此函数间隔代表了我们认为特征是正例还是反例的确信度。

函数间隔如果同时扩大w和b的话,例如将w∗xi+bw*x_i+bw∗xi​+b乘个系数2,函数间隔会增大2倍,但是所求的超平面w∗xi+b=0w*x_i+b=0w∗xi​+b=0不会变化(注意这里一个是超平面概念,一个是函数间隔概念)刚刚我们定义个函数间隔是针对某一个样本的,现在我们针对全局样本的定义的函数间隔:

γ^=minγ^ii=1,...,N

\widehat{\gamma }=\underset{i=1,...,N}{min \widehat{\gamma}_{i}}

γ​=i=1,...,Nminγ​i​​

意思就是找到训练样本中函数间隔最小的那个样本,并且要让它的函数间隔最大。

2.2 几何间隔

几何间隔首先简单一点说就是点到直线距离,如图

假设我们有B点所在的w∗xi+b=0w*x_i+b=0w∗xi​+b=0,任何其他一点,比如A到该面的距离以γiγ^iγi表示,假设B就是A在分割面上的投影。W是法向量,则单位向量就是ω∣∣ω∣∣\frac{\omega }{||\omega ||}∣∣ω∣∣ω​。A点坐标是(xi,yi)(x_i,y_i)(xi​,yi​)。所以B点是x=xi−γi∗ω∣∣ω∣∣x=x_i-γ^i*\frac{\omega }{||\omega ||}x=xi​−γi∗∣∣ω∣∣ω​(初中数学知识),带入到所需要求的超平面w∗xi+b=0w*x_i+b=0w∗xi​+b=0,就得到以下公式:

看吧,几何距离实际上就是点到直接距离,换一种写法:

当||w||等于1的时候,函数间隔就和几何间隔一样,可以理解为函数间隔是几何间隔没有除以||w||的表达,几何间隔是函数间隔归一化的结果。这是为什么呢?因为函数间隔是我们定义的,在定义的时候就有几何间隔的色彩。几何间隔最大的优势就是不管将w和b扩大几倍,几何间隔都没有影响。

同样,定义全局的几何间隔为

几何间隔与函数间隔的关系就是:

γ=γ^∣∣ω∣∣\gamma =\frac{\widehat{\gamma }}{||\omega ||}γ=∣∣ω∣∣γ​​