cs229-note3

Part V

支持向量机

这一节讲支持向量机(Support Vector Machines(SVM))学习算法.SVMs基本上是最好的现成的监督学习算法(这应该是2004年的讲义,所以现在放在现在可能这个描述并不准确 –me).

1.边界:直觉

我们将通过讨论边界(margins)来开始我们的SVMs的学习.这一节将给出关于边界的直觉和对于我们的预测的置信度;这些想法将在第三小节证明.
 考虑逻辑回归,p(y=1;|x;θ)的概率由hθ(x) = g(θTx)表示,如果hθ(x) >= 0.5,等价地,θTx >= 0,我们就预测为”1”.θTx越大,hθ(x) = p(y = 1|x; w, b)也就越大,这个的概率为1的置信度也就越高.给出一个训练集,似乎如果我们能找到θ使对于任何的yi = 1都有θTx(i) >> 0;并且对于任何的yi = 0都有θTx(i) <<0 .
 考虑以下图形,x代表正训练集,o代表负训练集,一个分界线(也被称为分离超平面(separating hyperplane))也在图形中,3个点被标记为A,B,C.

 由图中可以看出,说A所在的点的y值为1的可信度要比C所在的点的y值为1要高得多.

2.记号

为了使得讨论更简单,引入一种新的记号.现在我们使用y ∈ {−1, 1}(代替{0, 1})来表示分类结果。并且,我们现在使用参数w,b,而不是向量θ来表示我们的线性分类器。并且我们的分类器如下:

如果z>=0,那么g(z) = 1;反之,g(z) = -1。”w,b“记号能够帮助我们特别对待截距b.因此,b也就是我们之前的θ0,w就是[θ1…θn]T.
 还请注意,从我们上面定义的g,我们的分类器可以直接预测1或者-1(参见感知器算法),而不用通过建立y取1的概率(逻辑回归就是这么做的)这一中间步骤。

3 函数间隔和几何间隔

让我们公式化函数间隔和几何间隔。给出一组训练集(x(i), y(i)),我们定义(w,b)函数间隔(functional margin)为:
Paste_Image.png
注意如果y(i) = 1,那么为了让函数间隔更大,我们需要wTx + b是一个大的整数;与此相对,如果y(i) = -1,为了让功能函数更大,我们需要wTx + b是一个大的负数。更进一步,如果y(i)(wTx + b)>0,那么我们对于这个训练集的预测就是对的。因此,一个大的函数间隔代表着更大的置信度。
 对于以上给出的线性分类器(y取值为{-1,1}),函数间隔的一个性质使得它不是一个对于置信度很好的判别标准。然后,我们注意到使用2w代替w2b代替b,也就是g(wTx + b) = g(2wTx + 2b),这不会改变hw,b(x)的性质。
 给出训练集S = {(x(i),y(i));i=1,…,m },我们定义(w,b)对于S的函数间隔是这些独立的训练集中最小的函数间隔。用以下的式子表示:

 接下来,让我们讨论几何间隔(geometric margins)。考虑下面的图片:

 The decision boundary corresponding to (w, b) is shown, along with the
vector w。注意w与分离超平面是正相交的。考虑点A,代表某些训练集的输入x(i)取值y(i) = 1.它距离判定边界的距离,γi,由线段AB给出。
 那么,我们怎么能够得到γi的值呢?w/||w||w方向上的单位向量。因为点A代表x(i),我们能够得到点Bx(i) - γi·w/||w||给出。这个点在判定边界上,并且在判定边界上的所有点x满足等式wTx + b = 0.因此,

解出γi

w是一维向量,所以wTw/||w|| = ||w|| –me)
这个等式对于A点的这个正的训练集有用。一般地,我们定义对于训练集x(i),y(i)的(w,b)的几何边界是

 注意如果||w|| = 1,那那么函数间隔与几何间隔相等–这个也给出了这两种不同的间隔的联系。并且,当我们重新调节参数的时候,几何间隔是不变的。比如,我们我们使用2w代替w2b代替b,几何间隔也是不变的。这个性质之后有用。特别地,因为重新调节参数几何间隔也不会变,当调节wb的时候,我们能够选定(impose)w上的任意标尺约束而不会改变任何重要的性质;比如,我们能够使||w||=1,或者||w||=5,或者|w1+b| + |w2| = 2,重新调节wb的大小就能够满足这些。
 最后,给出训练集S = {(x(i),y(i));i=1,…,m },我们定义(w,b)对于S的函数间隔是这些独立的训练集中最小的函数间隔

4 最优间隔分类器

我们假设我们已经得到了一组线性可分的训练集;比如,一组可以使用分离超平面分隔为正或者负的训练集.我们怎么能够找到能够使几何边界最大的参数呢?以此,有了以下的最优解问题:

如果我们能够解出这个最优解问题,那么就简单了.但是”||w||=1”这个约束是非凸的(凸优化问题和非凸的问题原因在于凸优化问题中局部最优解同时也是全局最优解 –me),这个问题也不是一个我们放进标准优化软件就能解决的问题.因此,让我们尽量把这个问题转化成一个更易解决的问题.考虑:

这里,我们将最大化γ^/||w|| (γ上面那个符号打在了右上角,能看懂就好 –me),而这个式子受所有的函数边界都大于γ^.因为几何边界和函数边界的关系是γ = γ^/||w||.我们已经去掉了我们不喜欢的约束||w||=1,然而我们现在还是得到的非凸的函数边界γ^/||w|| ;同样的,我们还是没有现成的软件能够直接解决这个问题.
 回想我们之前对于改变wb的值不会改变什么性质的讨论.这是我们现在要使用的关键点.我们将要引入对于训练集的参数w,b的函数间隔一定要为1:

把这个代入我们之前的式子,并且注意到最大化γ^/||w|| = 1/||w||与最小化||w||2等价,我们能够得到以下的最优解问题:

 我们现在已经把问题转化成了一个更易解决的问题.以上的问题是线性约束的凸二次目标问题.这个问题的解就是最优间隔分类器(optimal margin classifier).这个最优解问题能够使用commercial quadratic programming(QP) code. (QP是一种对函数求解的软件 –me).
 这个问题可以说已经解决了.我们接下来要做的就是讲拉格朗日对偶(Lagrange duality).这个将把我们引向最优化问题的对偶形式(dual form),而对偶形式则可以帮助我们将最优间隔分类器应用在非常高维的空间.对偶形式也可以帮助我们使用有效率的算法来解决最优解问题.

5 拉格朗日对偶

让我们暂时把SVMs和最大间隔分类器问题放在一边,讨论解决约束优化问题.
 考虑一个如下的问题:

拉格朗日乘子(Lagrange multipliers)能够解决这个问题.我们定义拉格朗日算式(Lagrangian)为:

βi称作拉格朗日乘子.并且使L的偏导是0:

并且解出wβ.
 考虑下面的我们称为原始(primal)优化问题的式子:

为了解出这个,我们定义广义拉格朗日(generalized Lagrangian).

在这个式子中,αiβi是拉格朗日乘子.考虑以下等式:

下标”P“表示”主要”.假设有w被给出,如果w违反任何的主要约束(比如,对于某些i,gi(w)>0或者hi(w)!=0),那么你应该能够得到这个:

相反,如果对于某个w所有的约束都满足,那么有θP(w) = f (w).因此:

我们考虑一下的最小化问题:

容易看到这与我们原始问题一致.为了后面用到,我们定义最优解为p* = minwθP(w);我们称它为最优解问题的(value).
 现在,让我们看看一个稍微不一样的问题.我们定义:

这里,下标”D“代表”对偶”.注意在θP的定义中,我们以α, β为变量求最优解(最大值),而这里我们以w为变量求最小值.
 现在我们可以提出dual(没找到好的翻译,大概意思是对偶吧,以下翻译为”对偶” –me)优化问题;

这与我们开始说的原始问题一致,除了”max”和”min”的顺序对换了.我们也定义这个问题的最优解为d*=maxα,β : αi≥0θD (w)
 原始问题与对偶问题之间的关系如下:

(这个关系有一个函数的”max min”总是比”min max”要小得出来).然而,在特定的条件下,我们有:

因此我们可以解决对偶问题而不是解决原始问题让我们看看这些条件是什么.
 假设fgi是凸面的,并且hi是仿射的1(affine)。更进一步地假设约束gi是严格可行的;也就是说存在w使得对于所有的i都有gi(w)<0

1比如,存在ai,bi,使得hi(w)=aTiw+bi.”仿射”与线性意思相同,除了彷射可以有额外的截距bi

 在我们以上的假设下,一定存在这w** , β*使得w*是原始问题的解,α* , β*是对偶问题的解,并且能够使得p* = d* = L(w*, α*, β*).而且,w*, α*, β*满足Karush-Kuhn-Tucker(KKT) conditions,也即是以下这些条件:

更进一步,如果有w*, α*, β*满足KKT条件,那么他们也是原始问题和对偶问题的解。
 我们注意到等式(5),它被称为KKT对偶互补条件(KKT dual complementarity condition)。特别地,它指出了如果α*i>0,那么gi(w*) = 0.(I.e., the “g i (w) ≤ 0” constraint is active, meaning it holds with equality
rather than with inequality.)稍后,这个是证明SVM只有很少数量的“支持向量”的关键点;KKT对偶互补条件将在我们谈论SMO算法的时候给出收敛性测试。

6 最优边缘分类器

 之前,我们提出了找出最优边缘分类器(optimal margin classifier)的原始问题:

而约束条件如下:

对于每一个训练集都满足这个约束条件.从KKT对偶互补条件我们有:当训练集的函数边界等于0时,有αi >0(i.e., the ones corresponding to constraints that hold with equality, gi(w) = 0).考虑下面这幅最大边缘分离超平面(maximum margin separating hypeplane)由实线所标注的图片。

 在这幅图中,有3个点(一个负的,两个正的)在与判定边界(decision boundary)平行的虚线上。因此,只有3个αi也就是3个训练集非零。这3个点被称为支持向量(support vectors).支持向量的数量比训练集的数量要少的多这一特性将在后面很有用。
 当我们对这个优化问题构建拉格朗日式子:

注意,这里只有”αi“,而没有“βi”拉格朗日乘子,因为这个问题只有不等式约束。
 让我们找出这个问题的对偶形式。我们需要对于w,b(固定α)最小化L(w, b, α),为了得到θD,我们令Lwb的导数为0,令:

这意味着

至于对b的偏导,有:

如果我们把等式(9)的定义代入到拉格朗日式子(等式8),有:

而由等式(10),上式最后一个多项是为0,所以,

回想我们通过对于w,b最小化L得到以上等式。把这些与约束αi>=0和约束(10)放在一起,我们得到以下的对偶优化问题:

 以上的等式还需要p* = d*和KKT条件(等式3-7)。因此,我们可以解决对偶问题而不是原始问题。特别地,在以上的对偶问题里,我们有一个以αi为参数的最大化问题。我们将在稍后使用特定的算法来解决对偶问题,而如果我们已经解出了这个问题(比如,找出能够使W(α)最大化的α),那么我们可以使用等式(9)代回原等式并解出w的最优解和α的函数边界(function)。已经找出了w*之后,考虑原始问题,很直接地可以得到截距b的最优解:

 在继续之前,让我们更加仔细地看一下等式(9)。解设我们已经使得我们模型的参数适配一个训练集,现在想要预测一个新输入点x的结果。我们将要计算wTx+b并且当且仅当这个等式大于0的时候,我们还要预测y=1的概率。但是使用等式(9),这个等式也能写作:

因此,如果我们已经找出了αi,我们可以计算x和训练集中的点的内积来作出预测。更进一步,我们之前看到除了支持向量之外的αi都是0,我们真正需要做的只是找出x和支持向量之间的内积(而这一部分通常数量都很少)。
 下一小节,我们将应用这一小节学到的性质到分类问题的核心(kernels)。支持向量机(support vector machines),能够在非常高维空间上有效地解决问题。

7.Kernels

回到我们对于线性回归的讨论,我们有表示居住面积的变量x,考虑使用x,x2,x3来导出回归函数。为了区分这两套变量,我们称“原始”输入为问题的输入属性(attributes)(在这个例子中,是居住面积x)。x被映射到一组要传给学习算法的变量的时候,我们称那些新的变量是输入特征(features).(在这个例子里面,是x,x2,x3).我们也使用φ来表示特征映射(feature mapping),也就是从输入属性映射到输入特征。比如,在我们的例子中是:

 我们想要使用特征φ(x)而不是属性x来应用到支持向量机上。我们只需要重温之前的算法,并且使用φ(x)替换x.
 因此,算法能够使用点积

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值