初译 Support Vector Machines:A Simple Tutorial(二)

(二)Maximum margin hyperplane for linearly separable classes (线性可分的数据的最大间隔分类器)

接上文,假设SVM分类器是由两种线性可分的数据集训练而成,其决定函数(decision function)为:

                                                                                    (2.1)

其中gif.latex为定义该超平面的公式,该超平面对于训练集拥有最大的margin,并且相对于两种训练集的距离相等(见下图)

                                                              TIM截图2017是17154915

在本节中,我们会讨论一种一个关于超平面参数gif.latex的优化问题,我们同样会讨论一些最大间隔超平面的一些重要的性质,我们会使用一些微积分和优化问题的概念。

2.1、Primary optimization problom 最初的优化问题

对于超平面参数gif.latex的优化问题可以归结到公式2.2-2.4表示出来的优化问题

                                                gif.latex                                                       (2.2)

                                               s.t.

                                                gif.latex                                         (2.3)

                                                gif.latex                                      (2.4)

                                             其中gif.latexgif.latex为训练集的两个分类

如果转换成坐标形式,问题(2.2)-(2.4)可以被描述如下:

                                              gif.latex                                                    (2.5)

                                              s.t.

                                                 gif.latex                                   (2.6)

                                              gif.latex                                 (2.7)

                                     约束条件中的b为需要优化的参数之一,尽管在公式2.5中并未涉及到b

约束条件(2.6)和(2.7)可以被简化成为如下公式:

                                                 gif.latex                       (2.8)

其中当gif.latexgif.latex ,当gif.latexgif.latex,l为训练集中的向量x的数量, 代表了向量x中第k个分量(?)

上述的一大坨公式中,(2.5)-(2.7)组成的优化问题是由一个二次优化函数(2.5)和线性约束(2.6),(2.7)所组成,我们称这种问题为二次优化问题,目前对于二次优化问题的解决已经有了十分高效的算法。

值得一提的是目的函数(2.5)是严格的凸函数(convex function),因为其Hessian矩阵为正定矩阵(?),由线性不等式定义的可行区域也是凸的因此此二次优化问题将会有一个gif.latex来达到全局最优解。

一旦我们所使用的训练集不是线性可分的,那么由(2.6),(2.7)所定义的可行域即为空集,那么此问题无解(当然对于非线性可分的数据集之后会介绍其解决方法),显而易见如果训练集只有一类的话更加无法得到解。

现在来解释一下为什么对于最大间隔分类器的超平面的优化会突然变成公式(2.5)-(2.7)这种奇怪的形式,为了回答这个问题,我们可以将这个优化问题转换为更加直观的几何形式如下:

首先gif.latex的最小化等价于对gif.latex的最小化,而后者又等价于对于gif.latex的最大化,因此我们可以将(2.2)-(2.4)转换成如下形式:

                                                gif.latex                                                       

                                                s.t.

                                               gif.latex                                              (2.9)

                                               gif.latex                                           (2.10)

其次,对于线性约束(2.9),(2.10),可以在不等号左右同时除以  如下:

                                                 gif.latex

                                                 s.t.

                                                 gif.latex     

                                                gif.latex

在上一章节(1.2)中我们已经得知,gif.latex为超平面sddastex和点x之间的距离,同时我们定义一个新的变量gif.latex,上式就可以转化为:

                                                gif.latex

                                             s.t.

                                             gif.latex                                       (2.11)

                                             gif.latex                                    (2.12)

上式就代表着在拥有C1和C2两类的训练集中寻找一个拥有最大的间隔(margin=2*d)的超平面,即我们最初的问题。

从几何上来说,我们可以这样描述s.latexbexd的关系:我们可以围绕训练集中每一个向量x(代表向量空间中的一个点)画一个半径为gif.latex的圆形(圆形为二维空间的概念,如果在三维向量空间即为球体,更高维空间同理,一下所说的圆形皆指相应维度空间的“圆形”原著中使用hulls这个概念),在空间中加入一个超平面pif.latex

同时根据公式(2.11)与(2.12),这个超平面必须将训练集中所有的向量x连同x带有的圆形一起分开(见下图a),这时如果我们将d的值扩大两倍来使圆形的半径扩大(因为gif.latex所以我们需要将s.latex缩小两倍,(如果我们只是将s.latex缩小的话会使我们的超平面向着远离原点的方向平移,或者我们同时缩放s.latex和b,如此的话我们的超平面就不会改变),通过不停地将s.latex和b同时缩小,我们可以在不改变超平面的位置和方向的情况下增加圆形的半径,直到至少有一个圆形与超平面相切(如下图b),此时如果我们还有平移的空间来使超平面远离触碰到它的圆形,我们可以通过只改变b来平移超平面来使这些圆形继续生长直到我们得到了此条件下最大的d(如下图c),此时如果可以的话我们还可以通过改变s.latex(但是保持sssssssgif.latex始终等于当前的1/d)来改变超平面pif.latex的方向来使这些圆形有更多的生长空间,之后再同时调整s.latex和b来圆形的半径,总之我们可以尽可能的扩大d的值直到我们得到一个d的最大值(如下图d)。

                                

                                            TIM上式0170417154941

2.2 Dual problem 对偶问题

在优化理论中,对偶的概念扮演了十分重要的角色,当一个优化问题难以解决时,我们可以考虑将其转化为与之相等价的另一个优化问题(即对偶问题),而这些对偶问题的解决往往意味着原问题的解决。总的说来,在不同的情况下原问题和对偶问题各有各的优点和缺陷,我们可以根据不同的情况灵活选择。

而在我们的最大间隔超平面的寻找中,对偶问题的使用带来了两点好处:1、在对偶问题中我们可以通过拉格朗日乘子更好的掌控约束条件。2、对偶问题更加适合加入核函数。(对于这拉格朗日乘子和核函数之后会提及),这就是为什么绝大多数的SVM算法中都使用了对偶问题来进行计算。同时对偶问题也允许我们在之后的讨论中建立支持向量的概念——即定位最大间隔超平面的训练点。

在定义对偶问题之前复习一下我们的原问题,我们要通过优化问题寻找到拥有最大间隔的超平面pif.latex

原问题为:

                                          1x                                                 (2.13)

                                                     s.t.

                                        2 (此处为大于等于)     (2.14)

原问题的对偶问题可以被描述为如下形式:

                                                     2s                                                      (2.15)

                                                     s.t.      

                                                     ddex                                             (2.16)

                                                     其中 eeeeeeeeeeeex,我们定义ssssssssssssdddex为对偶函数如下

                                                     xxxxxxxxxxxxxxx.latex                         (2.17)

并且gif.latex作为拉格朗日函数的定义如下:

 

                                                  ssssssssssssex     (2.18)

因为在此问题中拉格朗日函数是凸函数,所以对于任意的α,

                                        当且仅当gif.latex                                              (2.19)

gif.latex才会达到全局最小值,因此,将(2.19)的变量带入(2.17)得到gif.latex,因此我们的对偶问题(2.15)-(2.16)可写作如下形式:

                                                  gif.latex                                                    (2.20)

                                                   s.t.

                                                   gif.latex                                                   (2.21)

                                                      gif.latex                                                  (2.22)

对于公式(2.21)进一步计算得(即对公式(2.18)分别对s.latexbex求导,使导数等于零解方程得):

                                                      gif.latex                             (2.23)

                                                      gif.latex

最后,我们可以将公式(2.23)带入到公式(2.18)中,并将对偶问题(2.20)-(2.22)改为如下形式:

                                                     gif.latex                             (2.24)

                                                     s.t.

                                                    gif.latex                                                                   (2.25)

                                                    gif.latex                                                     (2.26)

和我们得原问题一样,(2.24)-(2.26)所表示的对偶问题同样是一个二次规划问题,但是后者的线性约束比前者的更加容易进行计算这就是我们使用对偶问题来进行SVM的计算得原因之一。

目的函数(2.24)对于变量的Hessian矩阵(即由二阶导数组成的矩阵)如下:

                                                    gif.latex                                                    (2.27)

其中矩阵gif.latexgif.latex是全等的,而后者为向量(vectors)gif.latex的Gramian矩阵,因为Gramian矩阵为半正定矩阵,因此矩阵(2.27)为半负定矩阵,这意味着(2.24)-(2.26)所描述的问题是一个凹面问题(但并非严格的凹。。。)这种问题可能有一个或者多个最大值,因此总的来说,原问题(2.13)-(2.14)的解是唯一的但对偶问题(2.24)-(2.26)的解并不是独一无二的,在下一小节中我们将会说明这些对偶问题的解将会组成我们的支持向量(?)。

下面说明一下原问题(2.13)-(2.14)与对偶问题(2.24)-(2.26)之间的联系,当我们的原问题有解,其对偶问题也将有解,反之亦然,如果原问题是无界的(当训练集只有一类时会出现这种情况,私以为应当是超平面的选择不受限制的情况。)则此时的对偶问题则是不可解的,如果原问题时不可解的(即数据集无法线性可分),那么对应的对偶问题的解则是无界的。

那么对偶问题的解ssssssssssssssssssssssssssssssssssssss和原问题的解omagatex的关系如何呢?我们可以将公式(2.23)写成向量形式如下:

                                                     gif.latex                                                              (2.28)

上式足以代表着ssssssssssssssssssssssssssssssssssssss和的关系

而对于截距来说,我们可以假设约束(2.14)为等式如下(这种情况应当为向量点距离超平面的距离恰好为gif.latex,即下节所说的支持向量)

                                                   gif.latex

则有:

                                                      gif.latex

 

在我们的原问题和对偶问题中,虽然omagatex为原问题唯一的全局最优解而ssssssssssssssssssssssssssssssssssssss为对偶问题众多最优解中的一个,但在我们的分类问题中二者的目的函数之间并无不同,即完全相等,如下所示:

                                                     gif.latex

 

2.3 support vectors 支持向量

定义:在分类器的训练过程中,其gif.latex的向量x被叫做支持向量

直观上来说只有那些在训练集中能够决定超平面的位置的向量才是支持向量(即支持了超平面的定位)那么这些支持向量如何定位了超平面的位置?

为了解答这个问题,我们首先定义对偶问题的解为1,对于已经给出的可以使拉格朗日函数(2.18)得到最小值的s.latexbex来说,因此只有在下式所示的情况下才有allefaex为非零值。

                                            2_                         (2.29)

因为如果

                                            3                          (2.30)

在此状态下如果allefaex>0则无法保持(2.18)对于allefaex的最大值,所以一定有allefaex=0

 

 

 

 

 

 

 

 

 

显然公式(2.29)同样也等同于如下表达形式:

                                                        4                           (2.31)

                                                        5                              (2.32)

 

将(2.31)和(2.32)同时除以sssssssgif.latex得,我们会得到:

                                                       6                       

                                                       7

等号左边的部分为我们已经定义的向量点x和超平面pif.latex之间的距离8,将其与公式(2.11)与(2.12)对比,我们会发现所谓的支持向量则是距离最优超平面距离最近的一些向量,并且支持向量与超平面之间的距离总是gif.latex,换一种说法可以说支持向量位于两个分类的margin上,如下图所示:

                                                         TIM截图2017是17154915

 

 

 

 

 

 

 

 

在前几节中我们定义margin为一个数值,然而,我们可以用margin指代超平面与两类训练集之间的空间间隔(gap),对于最大间隔超平面,这个空间间隔可以作为超平面 < \omega ,x >  + b =  - 1和超平面 < \omega ,x >  + b = 1之间的空间间隔(二者的几何距离为\frac{2}{{\left\| \omega  \right\|}}),因此,当我们说“向量x位于margin上则代表着 < \omega ,x >  + b =  - 1或者 < \omega ,x >  + b = 1上”,当我们说”向量x位于margin内则代表\left\langle {\omega ,x} \right\rangle  + b > 1或者\left\langle {\omega ,x} \right\rangle  + b > 1

那么支持向量是如何影响SVM的分类效果的呢?

对于训练集中同一类别的所有向量来说,与另一个类别距离越近越难以被分类,因为距离另一个分类越近则越容易被误分类,因此,在SVM分类器中为了处理这这种易被误分类的点,就索性让这些最难分类的点位于margin上,使其对分类超平面施加最强的影响,同一类别中平均的或者典型的向量点则会分布在这个类别所有向量点的中心,对于那些最易分类的向量点则分布在距离分类超平面最远的位置上。他们对分类超平面所施加的影响最小,因为这些点最不容易出错。

一个分类器会有多少个支持向量的呢?

理论上说最小的数量为两个,每个类别都至少有一个支持向量在起作用,因为公式(2.25)决定了至少要有两个非零的allefaex,少于两个则等式不成立。一般来说,训练集中支持向量所占的比例是一个分类器的重要的性质,代表了分类器总体的性能和是否存在overfitting,当overfitting时,分类器在训练集中表现很好但是在测试集中表现极差。这并不是我们想要的结果,我们希望分类器在测试集中表现得和训练集中一样好。而在训练集中支持向量所占的比例过大可能代表着SVM分类器可能出现了overfit现象。

最后应当说明的是s.latex的优化结果并不唯一,因此相同的超平面按可能由不同的支持向量来定义,,因为(2.24)-(2.26)中的allefaex的解并不唯一,又有下图所示公式

                                              ss

所以s.latex也不唯一

例如:二维向量空间中存在五个向量点列出如下,空间位置见右图:

                                         ss                                  TIM截图20170419001055

最大间隔分类超平面的参数如下:

                                          ss

那么我们可以考虑以下三个对偶问题的解:

                                        ss

显然,ss1ss2分别形成了不同的支持向量集合,ss2ss3形成了相同的支持向量集合但是对于这些支持向量却有不同的s.latex值。

 

 

下一章:Maximun margin hyperplane for linearly nonseparable classes

 

posted @ 2017-04-19 00:20  玄机如卦  阅读(340)  评论(0编辑  收藏  举报