支持向量机—hard-margin SVM

前言

本篇博客是看大佬白板推导课程记录下来的笔记,有些过程可能写的不太详细,如果单看博客看不懂可以去看大佬的推导过程,视频讲的特别详细,视频链接在这里https://www.bilibili.com/video/BV1aE411o7qd?p=30&spm_id_from=pageDriver&vd_source=cc6b648f0be4739dc1f71ddcadf3f9f6

支持向量机

SVM有三宝:间隔,对偶,核技巧
支持向量机(SVM)算法在分类问题中有着重要地位,其主要思想是最大化两类之间的间隔。按照数据集的特点:

  1. 线性可分问题,如之前的感知机算法处理的问题
  2. 线性可分,只有一点点错误点,如感知机算法发展出来的 Pocket 算法处理的问题
  3. 非线性问题,完全不可分,如在感知机问题发展出来的多层感知机和深度学习

这三种情况对于 SVM 分别有下面三种处理手段:

  1. hard-margin SVM
  2. soft-margin SVM
  3. kernel Method
    SVM 的求解中,大量用到了 Lagrange 乘子法,首先对这种方法进行介绍。

约束优化问题

一般地,约束优化问题(原问题)可以写成:
min ⁡ x ∈ R p f ( x ) s . t .   m i ( x ) ≤ 0 , i = 1 , 2 , ⋯   , M          n j ( x ) = 0 , j = 1 , 2 , ⋯   , N \begin{align} &\min_{x\in\mathbb{R^p}}f(x)\\ &s.t.\ m_i(x)\le0,i=1,2,\cdots,M\\ &\ \ \ \ \ \ \ \ n_j(x)=0,j=1,2,\cdots,N \end{align} xRpminf(x)s.t. mi(x)0,i=1,2,,M        nj(x)=0,j=1,2,,N
定义 Lagrange 函数:
L ( x , λ , η ) = f ( x ) + ∑ i = 1 M λ i m i ( x ) + ∑ i = 1 N η i n i ( x ) L(x,\lambda,\eta)=f(x)+\sum\limits_{i=1}^M\lambda_im_i(x)+\sum\limits_{i=1}^N\eta_in_i(x) L(x,λ,η)=f(x)+i=1Mλimi(x)+i=1Nηini(x)
那么原问题可以等价于无约束形式:
min ⁡ x ∈ R p max ⁡ λ , η L ( x , λ , η )   s . t .   λ i ≥ 0 \min_{x\in\mathbb{R}^p}\max_{\lambda,\eta}L(x,\lambda,\eta)\ s.t.\ \lambda_i\ge0 xRpminλ,ηmaxL(x,λ,η) s.t. λi0
这是由于,当满足原问题的不等式约束的时候, λ i = 0 \lambda_i=0 λi=0 才能取得最大值,直接等价于原问题,如果不满足原问题的不等式约束,那么最大值就为 正无穷,由于需要取最小值,于是不会取到这个情况。

这个问题的对偶形式:
max ⁡ λ , η min ⁡ x ∈ R p L ( x , λ , η )   s . t .   λ i ≥ 0 \max_{\lambda,\eta}\min_{x\in\mathbb{R}^p}L(x,\lambda,\eta)\ s.t.\ \lambda_i\ge0 λ,ηmaxxRpminL(x,λ,η) s.t. λi0
对偶问题是关于 λ , η \lambda , \eta λ,η 的最大化问题。

由于:
max ⁡ λ i , η j min ⁡ x L ( x , λ i , η j ) ≤ min ⁡ x max ⁡ λ i , η j L ( x , λ i , η j ) \max_{\lambda_i,\eta_j}\min_{x}L(x,\lambda_i,\eta_j)\le\min_{x}\max_{\lambda_i,\eta_j}L(x,\lambda_i,\eta_j) λi,ηjmaxxminL(x,λi,ηj)xminλi,ηjmaxL(x,λi,ηj)

证明:显然有 min ⁡ x L ≤ L ≤ max ⁡ λ , η L \min\limits_{x}L\le L\le\max\limits_{\lambda,\eta}L xminLLλ,ηmaxL,于是显然有 max ⁡ λ , η min ⁡ x L ≤ L \max\limits_{\lambda,\eta}\min\limits_{x}L\le L λ,ηmaxxminLL,且 min ⁡ x max ⁡ λ , η L ≥ L \min\limits_{x}\max\limits_{\lambda,\eta}L\ge L xminλ,ηmaxLL

对偶问题的解小于原问题,有两种情况:

  1. 强对偶:可以取等于号
  2. 弱对偶:不可以取等于号

其实这一点也可以通过一张图来说明:

对于一个凸优化问题,有如下定理:

如果凸优化问题满足某些条件如 Slater 条件,那么它和其对偶问题满足强对偶关系。记问题的定义域为: D = d o m f ( x ) ∩ d o m m i ( x ) ∩ d o m n j ( x ) \mathcal{D}=domf(x)\cap dom m_i(x)\cap domn_j(x) D=domf(x)dommi(x)domnj(x)。于是 Slater 条件为:
∃ x ^ ∈ R e l i n t D   s . t .   ∀ i = 1 , 2 , ⋯   , M , m i ( x ) < 0 \exist\hat{x}\in Relint\mathcal{D}\ s.t.\ \forall i=1,2,\cdots,M,m_i(x)\lt0 x^RelintD s.t. i=1,2,,M,mi(x)<0
其中 Relint 表示相对内部(不包含边界的内部)。

  1. 对于大多数凸优化问题,Slater 条件成立。
  2. 松弛 Slater 条件,如果 M 个不等式约束中,有 K 个函数为仿射函数,那么只要其余的函数满足 Slater 条件即可。

上面介绍了原问题和对偶问题的对偶关系,但是实际还需要对参数进行求解,求解方法使用 KKT 条件进行:

KKT 条件和强对偶关系是等价关系。KKT 条件对最优解的条件为:

  1. 可行域:
    m i ( x ∗ ) ≤ 0 n j ( x ∗ ) = 0 λ ∗ ≥ 0 \begin{align} m_i(x^*)\le0\\ n_j(x^*)=0\\ \lambda^*\ge0 \end{align} mi(x)0nj(x)=0λ0

  2. 互补松弛 λ ∗ m i ( x ∗ ) = 0 , ∀ m i \lambda^*m_i(x^*)=0,\forall m_i λmi(x)=0,mi,对偶问题的最佳值为 d ∗ d^* d,原问题为 p ∗ p^* p
    d ∗ = max ⁡ λ , η g ( λ , η ) = g ( λ ∗ , η ∗ ) = min ⁡ x L ( x , λ ∗ , η ∗ ) ≤ L ( x ∗ , λ ∗ , η ∗ ) = f ( x ∗ ) + ∑ i = 1 M λ ∗ m i ( x ∗ ) ≤ f ( x ∗ ) = p ∗ \begin{align} d^*&=\max_{\lambda,\eta}g(\lambda,\eta)=g(\lambda^*,\eta^*)\nonumber\\ &=\min_{x}L(x,\lambda^*,\eta^*)\nonumber\\ &\le L(x^*,\lambda^*,\eta^*)\nonumber\\ &=f(x^*)+\sum\limits_{i=1}^M\lambda^*m_i(x^*)\nonumber\\ &\le f(x^*)=p^* \end{align} d=λ,ηmaxg(λ,η)=g(λ,η)=xminL(x,λ,η)L(x,λ,η)=f(x)+i=1Mλmi(x)f(x)=p
    为了满足相等,两个不等式必须成立,于是,对于第一个不等于号,需要有梯度为0条件,对于第二个不等于号需要满足互补松弛条件。

  3. 梯度为0: ∂ L ( x , λ ∗ , η ∗ ) ∂ x ∣ x = x ∗ = 0 \frac{\partial L(x,\lambda^*,\eta^*)}{\partial x}|_{x=x^*}=0 xL(x,λ,η)x=x=0

Hard-margin SVM

在这里插入图片描述

支持向量机也是一种硬分类模型,在之前的感知机模型中,我们在线性模型的基础上叠加了符号函数,在几何直观上,可以看到,如果两类分的很开的话,那么其实会存在无穷多条线可以将两类分开。在 SVM 中,我们引入最大化间隔这个概念,间隔指的是数据和直线的距离的最小值,因此最大化这个值反映了我们的模型倾向。

分割的超平面可以写为: w T x + b w^Tx+b wTx+b,那么最大化间隔就可以写为(约束为分类任务的要求):
{ max ⁡ m arg ⁡ i n ( w , b ) s . t . y i ( w T x i + b ) > 0 , i = 1 , 2... N \left\{ \begin{align} &\max m\arg in(w,b)\\ &s.t.y_i(w^Tx_i+b)>0,i=1,2...N\\ \end{align} \right. {maxmargin(w,b)s.t.yi(wTxi+b)>0,i=1,2...N
其中margin是我们定义的求样本点到超平面最小距离的函数,接下来我们要考虑怎么求最小距离了,定义一个distance函数求样本点到超平面的距离,那么:
m arg ⁡ i n ( w , b ) = min ⁡ d i s tan ⁡ c e ( w , b , x i ) = min ⁡ 1 ∣ ∣ w ∣ ∣ ∣ w T x i + b ∣ \begin{align} & m\arg in(w,b)=\min dis\tan ce(w,b,{{x}_{i}})=\min \frac{1}{||w||}|{{w}^{T}}{{x}_{i}}+b| \\ \end{align} margin(w,b)=mindistance(w,b,xi)=min∣∣w∣∣1wTxi+b
整理合并就能得到目标函数:
m a x w , b [ min ⁡ i ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ ]   s . t .   y i ( w T x i + b ) > 0 ⟹ m a x w , b [ min ⁡ i y i ( w T x i + b ) ∣ ∣ w ∣ ∣ ]   s . t .   y i ( w T x i + b ) > 0 \mathop{max}_{w,b}[\min_i\frac{|w^Tx_i+b|}{||w||}]\ s.t.\ y_i(w^Tx_i+b)>0\\ \Longrightarrow\mathop{max}_{w,b}[\min_i\frac{y_i(w^Tx_i+b)}{||w||}]\ s.t.\ y_i(w^Tx_i+b)>0 maxw,b[imin∣∣w∣∣wTxi+b] s.t. yi(wTxi+b)>0maxw,b[imin∣∣w∣∣yi(wTxi+b)] s.t. yi(wTxi+b)>0
对于这个约束 y i ( w T x i + b ) > 0 y_i(w^Tx_i+b)>0 yi(wTxi+b)>0,不妨固定 min ⁡ y i ( w T x i + b ) = 1 > 0 \min y_i(w^Tx_i+b)=1>0 minyi(wTxi+b)=1>0,这是由于分开两类的超平面的系数经过比例放缩不会改变这个平面,这也相当于给超平面的系数作出了约束。化简后的式子可以表示为:
max ⁡ 1 ∣ ∣ w ∣ ∣ = m i n w , b 1 2 w T w   s . t .   min ⁡ i y i ( w T x i + b ) = 1 ⇒ m i n w , b 1 2 w T w   s . t .   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , N \max \frac{1}{||w||}=\mathop{min}_{w,b}\frac{1}{2}w^Tw\ s.t.\ \min_iy_i(w^Tx_i+b)=1\\ \Rightarrow\mathop{min}_{w,b}\frac{1}{2}w^Tw\ s.t.\ y_i(w^Tx_i+b)\ge1,i=1,2,\cdots,N max∣∣w∣∣1=minw,b21wTw s.t. iminyi(wTxi+b)=1minw,b21wTw s.t. yi(wTxi+b)1,i=1,2,,N
这就是一个包含 N N N 个约束的凸优化问题,有很多求解这种问题的软件。

但是,如果样本数量或维度非常高,直接求解困难甚至不可解,于是需要对这个问题进一步处理。


引入 Lagrange 函数:
L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + b ) ) L(w,b,\lambda)=\frac{1}{2}w^Tw+\sum\limits_{i=1}^N\lambda_i(1-y_i(w^Tx_i+b)) L(w,b,λ)=21wTw+i=1Nλi(1yi(wTxi+b))
我们的原问题就等价于:
m i n w , b max ⁡ λ L ( w , b , λ i )   s . t .   λ i ≥ 0 \mathop{min}_{w,b}\max_{\lambda}L(w,b,\lambda_i)\ s.t.\ \lambda_i\ge0 minw,bλmaxL(w,b,λi) s.t. λi0
我们再根据强对偶性交换最小和最大值的符号:
max ⁡ λ i min ⁡ w , b L ( w , b , λ i )   s . t .   λ i ≥ 0 \max_{\lambda_i}\min_{w,b}L(w,b,\lambda_i)\ s.t.\ \lambda_i\ge0 λimaxw,bminL(w,b,λi) s.t. λi0
先求 m i n w , b L ( w , b , λ i ) min_{w,b}L(w,b,\lambda_i) minw,bL(w,b,λi),具体怎么求参考无约束最优化问题,也就是直接求导:

  • b b b求导: ∂ ∂ b L = 0 ⇒ ∑ i = 1 N λ i y i = 0 \frac{\partial}{\partial b}L=0\Rightarrow\sum\limits_{i=1}^N\lambda_iy_i=0 bL=0i=1Nλiyi=0

  • w w w求导:首先将 b b b 代入:
    L ( w , b , λ i ) = 1 2 w T w + ∑ i = 1 N λ i ( 1 − y i w T x i − y i b ) = 1 2 w T w + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i w T x i L(w,b,\lambda_i)=\frac{1}{2}w^Tw+\sum\limits_{i=1}^N\lambda_i(1-y_iw^Tx_i-y_ib)=\frac{1}{2}w^Tw+\sum\limits_{i=1}^N\lambda_i-\sum\limits_{i=1}^N\lambda_iy_iw^Tx_i L(w,b,λi)=21wTw+i=1Nλi(1yiwTxiyib)=21wTw+i=1Nλii=1NλiyiwTxi
    所以:
    ∂ ∂ w L = 0 ⇒ w = ∑ i = 1 N λ i y i x i \frac{\partial}{\partial w}L=0\Rightarrow w=\sum\limits_{i=1}^N\lambda_iy_ix_i wL=0w=i=1Nλiyixi

  • 将上面两个参数代入:
    L ( w , b , λ i ) = − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i L(w,b,\lambda_i)=-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i L(w,b,λi)=21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi

最后,目标函数就变为对偶问题:
max ⁡ λ − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i ,   s . t .   λ i ≥ 0 ⇒ min ⁡ λ 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j − ∑ i = 1 N λ i ,   s . t .   λ i ≥ 0 \max_{\lambda}-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i,\ s.t.\ \lambda_i\ge0\Rightarrow\min_{\lambda}\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j-\sum\limits_{i=1}^N\lambda_i,\ s.t.\ \lambda_i\ge0 λmax21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi, s.t. λi0λmin21i=1Nj=1NλiλjyiyjxiTxji=1Nλi, s.t. λi0
从 KKT 条件得到超平面的参数:

原问题和对偶问题满足强对偶关系的充要条件为其满足 KKT 条件:
∂ L ∂ w = 0 , ∂ L ∂ b = 0 λ k ( 1 − y k ( w T x k + b ) ) = 0 λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 \begin{align} &\frac{\partial L}{\partial w}=0,\frac{\partial L}{\partial b}=0 \\&\lambda_k(1-y_k(w^Tx_k+b))=0\\ &\lambda_i\ge0\\ &1-y_i(w^Tx_i+b)\le0 \end{align} wL=0,bL=0λk(1yk(wTxk+b))=0λi01yi(wTxi+b)0

根据这个条件就得到了对应的最佳参数:
w ^ = ∑ i = 1 N λ i y i x i b ^ = y k − w T x k = y k − ∑ i = 1 N λ i y i x i T x k , ∃ k , 1 − y k ( w T x k + b ) = 0 \hat{w}=\sum\limits_{i=1}^N\lambda_iy_ix_i\\ \hat{b}=y_k-w^Tx_k=y_k-\sum\limits_{i=1}^N\lambda_iy_ix_i^Tx_k,\exist k,1-y_k(w^Tx_k+b)=0 w^=i=1Nλiyixib^=ykwTxk=yki=1NλiyixiTxk,k,1yk(wTxk+b)=0
于是这个超平面的参数 w w w 就是数据点的线性组合,最终的参数值就是部分满足 y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 yi(wTxi+b)=1向量的线性组合(互补松弛条件给出),这些向量也叫支撑向量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时兮ゎ、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值