机器学习笔记之——支持向量机(一)

支持向量机(一)


1. 主要思想

对于一个二分类问题,其样本分布如下所示,其中 + , − +,- +, 分别代表正负样本,红色和绿色代表两个线性分类器,这两个分类器哪个更好呢?
svm_0.PNG-9.6kB
虽然这两个分类器都能把两类样本完全分开,训练误差为 0,但是红色的分类器更好,因为其泛化能力更强,即对新样本的判断能力更好。假设我们有两个新样本(如下图紫色样本所示):
svm_1.PNG-10.9kB
左下角的紫色样本与正样本簇靠在一起,显然其应该属于正样本,同理,右上角的紫色样本理当属于负样本。但是,如果按照绿色分类器的结果,则会把这两个新样本分错。原因是因为其分类边界与样本距离太近了。因此,如果想让分类器的泛化性能较好,就应该让其和红色分类器一样,与样本间的间隔越大越好,这就是支持向量机(Support Vector Machine) 的主要思想

2. 公式表示

一个线性分类边界可以用方程 w T x + b = 0 \boldsymbol w^T \boldsymbol x+b = 0 wTx+b=0 表示,我们假设分类间隔区域与样本接触的两条直线分别是 w T x + b = + 1 \boldsymbol w^T \boldsymbol x+b = +1 wTx+b=+1 w T x + b = − 1 \boldsymbol w^T \boldsymbol x+b = -1 wTx+b=1,如下图所示:
svm_2.PNG-37.6kB

我们希望:

  • 当样本在分类间隔带的上方时,即 w T x + b > + 1 \boldsymbol w^T \boldsymbol x+b > +1 wTx+b>+1 时,把其预测为正类(+1)
  • 当样本在分类间隔带的下方时,即 w T x + b &lt; − 1 \boldsymbol w^T \boldsymbol x+b &lt; -1 wTx+b<1 时,把其预测为负类(-1)

我们可以把这两个条件统一成一个式子, y i ( w T x i + b ) ≥ 1 y_i(\boldsymbol w^T \boldsymbol x_i+b)\ge 1 yi(wTxi+b)1,其中 x i \boldsymbol x_i xi y i y_i yi 分别表示第 i i i 个样本的特征和标签, y i ∈ { + 1 , − 1 } y_i\in \{+1,-1\} yi{+1,1}。计算分类间隔的长度,得到:
γ = 2 ∥ w ∥ 2 \gamma = \frac{2}{\Vert \boldsymbol w \Vert_2} γ=w22 那么我们便可以得到 SVM 要求解的目标函数
max ⁡ w , b 2 ∥ w ∥ 2 \max_{\boldsymbol w,b} \frac{2}{\Vert \boldsymbol w \Vert_2} w,bmaxw22 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 … , m s.t.\quad y_i(\boldsymbol w^T \boldsymbol x_i+b)\ge 1, i = 1,2\dots,m s.t.yi(wTxi+b)1,i=1,2,m 这个公式的意义是:在不分错训练样本的约束下(即 y i ( w T x i + b ) ≥ 1 y_i(\boldsymbol w^T \boldsymbol x_i+b)\ge 1 yi(wTxi+b)1),使得分类间隔最大化。
显然,上述目标函数可以等价变换成:
(1) min ⁡ w , b 1 2 ∥ w ∥ 2 2 \min_{\boldsymbol w,b} \frac{1}{2} \Vert \boldsymbol w \Vert_2^2 \tag{1} w,bmin21w22(1) s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 … , m s.t.\quad y_i(\boldsymbol w^T \boldsymbol x_i+b)\ge 1, i = 1,2\dots,m s.t.yi(wTxi+b)1,i=1,2,m

3. 公式求解

3.1 拉格朗日函数

对每个约束条件乘以拉格朗日乘子 α i ≥ 0 \alpha_i \ge 0 αi0 ,加到目标函数后面,得到拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(\boldsymbol w,b,\boldsymbol \alpha)=\frac{1}{2} \Vert \boldsymbol w \Vert_2^2 + \sum_{i=1}^m \alpha_i(1-y_i(\boldsymbol w^T \boldsymbol x_i+b)) L(w,b,α)=21w22+i=1mαi(1yi(wTxi+b)) 现在分析一下拉格朗日函数的最大值与原函数的关系:

  • 当原来的约束满足时,即对于所有的样本 i i i,都有 y i ( w T x i + b ) ≥ 1 y_i(\boldsymbol w^T \boldsymbol x_i+b)\ge 1 yi(wTxi+b)1 成立,那么 1 − y i ( w T x i + b ) ≤ 0 1-y_i(\boldsymbol w^T \boldsymbol x_i+b) \le 0 1yi(wTxi+b)0,此时要想使得 L 函数取得最大值,只需要令所有的 α i = 0 \alpha_i = 0 αi=0 即可,此时 L = 1 2 ∥ w ∥ 2 2 L = \frac{1}{2} \Vert \boldsymbol w \Vert_2^2 L=21w22,与原目标函数一致。
  • 当原来的约束不满足时,即至少有一个样本 i i i,使得 y i ( w T x i + b ) &lt; 1 y_i(\boldsymbol w^T \boldsymbol x_i+b)&lt; 1 yi(wTxi+b)<1 ,那么对应的 1 − y i ( w T x i + b ) &gt; 0 1-y_i(\boldsymbol w^T \boldsymbol x_i+b) &gt; 0 1yi(wTxi+b)>0,此时要想使得 L 函数取得最大值,只需要对应的 α i = + ∞ \alpha_i = +\infty αi=+ 即可,此时 L = + ∞ L=+ \infty L=+

从以上分析,我们得到:
max ⁡ α L ( w , b , α ) = { 1 2 ∥ w ∥ 2 2 , 若 约 束 满 足 + ∞ , 若 约 束 不 满 足 \max_{\boldsymbol \alpha}L(\boldsymbol w,b,\boldsymbol \alpha)=\begin{cases} \frac{1}{2} \Vert \boldsymbol w \Vert_2^2, &amp; 若约束满足 \\ +\infty, &amp; 若约束不满足 \end{cases} αmaxL(w,b,α)={21w22,+, 因此优化带约束的原目标函数(1)等价于优化不带约束的下列函数:
(2) min ⁡ w , b max ⁡ α L ( w , b , α ) \min_{\boldsymbol w,b} \max_{\boldsymbol \alpha} L(\boldsymbol w,b,\boldsymbol \alpha) \tag{2} w,bminαmaxL(w,b,α)(2) 若约束得不到满足的话,上述式子的结果为 + ∞ +\infty +,由于外层是求最小值,所以显然 + ∞ +\infty + 不是 min ⁡ \min min 想要的结果,因此如果存在参数满足约束的话,上述函数会尽可能往约束满足的方向求解。

3.2 拉格朗日对偶问题

虽然我们把问题转化成了公式(2),但是这个很难求解。此时我们考虑其对偶问题,只要把 max ⁡ \max max min ⁡ \min min 的次序交换一下,就得到了原问题的对偶问题:
(3) max ⁡ α min ⁡ w , b L ( w , b , α ) \max_{\boldsymbol \alpha} \min_{\boldsymbol w,b} L(\boldsymbol w,b,\boldsymbol \alpha) \tag{3} αmaxw,bminL(w,b,α)(3) 这个问题比较容易求解,首先求内层最小化问题:
(4) min ⁡ w , b L ( w , b , α ) \min_{\boldsymbol w,b} L(\boldsymbol w,b,\boldsymbol \alpha) \tag{4} w,bminL(w,b,α)(4) 只要对参数求导,令其为 0 即可,得到:
(5) w = ∑ i = 1 m α i y i x i \boldsymbol w = \sum_{i=1}^m \alpha_i y_i \boldsymbol x_i \tag{5} w=i=1mαiyixi(5) (6) ∑ i = 1 m α i y i = 0 \sum_{i=1}^m \alpha_i y_i = 0 \tag{6} i=1mαiyi=0(6) 把公式(5)代入公式(4),可得:
min ⁡ w , b L ( w , b , α ) = 1 2 ∥ w ∥ 2 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) = 1 2 w T w + ∑ i = 1 m α i − ∑ i = 1 m α i y i w T x i − ∑ i = 1 m α i y i b = 1 2 w T w + ∑ i = 1 m α i − w T w − 0 ( 利 用 公 式 ( 5 ) , ( 6 ) ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \begin{aligned} \min_{\boldsymbol w,b} L(\boldsymbol w,b,\boldsymbol \alpha) &amp;= \frac{1}{2} \Vert \boldsymbol w \Vert_2^2 + \sum_{i=1}^m \alpha_i(1-y_i(\boldsymbol w^T \boldsymbol x_i+b)) \\ &amp; = \frac{1}{2} \boldsymbol w^T \boldsymbol w + \sum_{i=1}^m \alpha_i-\sum_{i=1}^m \alpha_i y_i \boldsymbol w^T \boldsymbol x_i-\sum_{i=1}^m \alpha_i y_i b\\ &amp; = \frac{1}{2} \boldsymbol w^T \boldsymbol w + \sum_{i=1}^m \alpha_i - \boldsymbol w^T \boldsymbol w - 0 \quad(利用公式(5),(6))\\ &amp; = \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j \end{aligned} w,bminL(w,b,α)=21w22+i=1mαi(1yi(wTxi+b))=21wTw+i=1mαii=1mαiyiwTxii=1mαiyib=21wTw+i=1mαiwTw0((5),(6))=i=1mαi21i=1mj=1mαiαjyiyjxiTxj 所以对偶问题转化为:
(7) max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_{\boldsymbol \alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j \tag{7} αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj(7) s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , … , m \begin{aligned} s.t.\quad &amp; \sum_{i=1}^m \alpha_i y_i = 0 \\ &amp; \alpha_i \ge 0, \quad i = 1,2,\dots,m \end{aligned} s.t.i=1mαiyi=0αi0,i=1,2,,m

3.3 KKT 条件

前面我们一直在尝试求对偶问题的解,但是对偶问题与原问题真的完全等价吗?求出了对偶问题的最优值就能得到原问题的最优值吗?答案是不一定。但是对偶问题与原问题之间确实存在一定的联系。令 p ∗ p^* p 为原问题的最优值, d ∗ d^* d 是对偶问题的最优值:

  • 在任何情况下,都有 d ∗ ≤ p ∗ d^* \le p^* dp 成立,这个性质称为弱对偶性。
  • 当原问题是凸问题,且 Slater 条件满足时,有 d ∗ = p ∗ d^* = p^* d=p,这个被称为强对偶性。

原问题公式(1)的目标函数和约束条件都是凸函数,因此原问题是凸问题。另外,由于约束函数是仿射函数,因此只要存在参数满足公式(1)的约束(即只要样本是线性可分的),那么 Slater 条件就满足。由此我们可以看出,对于这个问题,强对偶性是成立的。所以,我们只要求出对偶问题的最优值,就可断定其一定也是原问题的最优值。

不过,我们提到的是原问题和对偶问题的最优值相等,其实它们的最优解之间也存在一定的联系。令 w , b \boldsymbol w, b w,b 是原问题的最优解, α \boldsymbol \alpha α 是对偶问题的最优解, f ( x ) = w T x + b f(\boldsymbol x)=\boldsymbol w^T \boldsymbol x + b f(x)=wTx+b, 那么对于 i = 1 , 2 … , m i = 1,2\dots,m i=1,2,m, 一定有下列关系满足:
{ y i f ( x i ) ≥ 1 α i ≥ 0 α i ( y i f ( x i ) − 1 ) = 0 ∂ L ∂ w = 0 ∂ L ∂ b = 0 \begin{cases} y_i f(\boldsymbol x_i)\ge 1 \\ \alpha_i \ge 0 \\ \alpha_i (y_i f(\boldsymbol x_i)-1) = 0 \\ \frac{\partial L}{\partial \boldsymbol w}=0 \\ \frac{\partial L}{\partial b}=0 \end{cases} yif(xi)1αi0αi(yif(xi)1)=0wL=0bL=0 上述条件被称作 KKT 条件。当原问题是凸问题且强对偶性成立时,KKT 条件是最优解的充分必要条件

从公式(5)可以看出,参数 w \boldsymbol w w 是样本 x i \boldsymbol x_i xi 的线性组合,权重为 α i \alpha_i αi(因为 y i ∈ { + 1 , − 1 } y_i\in \{+1,-1\} yi{+1,1},只决定符号,不影响大小)。 现在我们重点关注第三个条件,被称为互补松弛性条件, α i ( y i f ( x i ) − 1 ) = 0 \alpha_i (y_i f(\boldsymbol x_i)-1) = 0 αi(yif(xi)1)=0,具体分析如下:

  • y i f ( x i ) − 1 &gt; 0 y_i f(\boldsymbol x_i)-1 &gt; 0 yif(xi)1>0,那么必有 α i = 0 \alpha_i = 0 αi=0,也就是说该样本不会在公式(5)的求和出现,不会对分类边界产生影响;
  • α i &gt; 0 \alpha_i &gt; 0 αi>0,那么必有 y i f ( x i ) − 1 = 0 y_i f(\boldsymbol x_i)-1 = 0 yif(xi)1=0,也就是说该样本在分类最大间隔的边界上,会在公式(5)中的求和中出现,因此会影响到分类边界。

所以可以看出,分类边界的参数 w \boldsymbol w w 只与少数的那些在边界上(即 α i &gt; 0 \alpha_i &gt; 0 αi>0)的样本有关,这些样本被称为支持向量,这就是支持向量机的名字由来。

3.4 求解

对公式(7)进行求解,解得一组 α i \alpha_i αi。常用的算法是 SMO(Sequential Minimal Optimization) 算法,SMO 算法不断执行下列两个步骤直到收敛:

  • 选取一对需要更新的 α i , α j \alpha_i, \alpha_j αi,αj
  • 固定除了这两个变量之外的参数,更新 α i , α j \alpha_i, \alpha_j αi,αj

求出 α \boldsymbol \alpha α 之后,代入公式(5)即可求出 w \boldsymbol w w。而对于任意的支持向量,都有 y i f ( x i ) = 1 y_i f(\boldsymbol x_i)=1 yif(xi)=1,所以只要代入任意一个支持向量,即可求出 b b b。在现实中,我们常用一种更鲁棒性的做法:使用所有支持向量求出的 b b b 的平均值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值