吴恩达机器学习(七)支持向量机 2/3 —— 线性 SVM

∗ ∗ ∗   点 击 查 看   : 吴 恩 达 机 器 学 习   — —   整 套 笔 记 + 编 程 作 业 详 解   ∗ ∗ ∗ \color{#f00}{***\ 点击查看\ :吴恩达机器学习 \ —— \ 整套笔记+编程作业详解\ ***}   :  + 
第一部分:支持向量机 1/3 —— 建立 SVM 基本型(超平面与间隔)

SVM求解——数学基础

SVM中涉及的数学知识较多:凸优化,拉格朗日乘子法,KKT条件,拉格朗日对偶等等。

建议先逐一了解这些概念(耐心看完):

  1. 马同学:如何理解拉格朗日乘子法?

  2. 马同学:非线性优化中的 KKT 条件该如何理解?

  3. 拉格朗日对偶,从0到完全理解(讲的很细)

  4. 拉格朗日对偶理解(对3的总结)

对拉格朗日乘子法补充一点:马同学的模型是在二维空间上,下图补充三维空间上的理解: min ⁡ f ( x , y ) = x y (椭圆)s.t.  h i ( x , y ) = x 2 8 + y 2 2 − 1 = 0 \begin{aligned}&\min f(x,y)=xy\\ &\text {(椭圆)s.t. } h_{i(x,y)}=\frac{x^2}{8}+\frac{y^2}{2}-1=0\end{aligned} minf(x,y)=xy(椭圆)s.t. hi(x,y)=8x2+2y21=0下面是几何解释, f ( x , y ) = x y f(x,y)=x y f(x,y)=xy 的等高线图在最下面, 也就是双曲线 x y = c x y=c xy=c (c是相应的函数值), 椭圆 x 2 / 8 + y 2 / 2 = 1 x^2/8+y^2/2=1 x2/8+y2/2=1 f f f 函数曲面上为蓝色曲线。在这里插入图片描述
从上图可知双曲线离开原点越远, f f f 的绝对值越大,需要在约束条件下:椭圆 x 2 / 8 + y 2 / 2 = 1 x^2/8+y^2/2=1 x2/8+y2/2=1 上使 f ( x , y ) f(x,y) f(x,y) 取极值点,也就是与椭圆相切的双曲线会距离原点最远。在这四个切点中,双曲线的法线也是椭圆的法线。观察下图动画, 可以看到黑色 ▽ f ▽f f ▽ g ▽g g 的数值倍数,最大值处两个梯度向量方向相同, 最小值处方向相反。
在这里插入图片描述


线性SVM求解

在第一部分得到SVM的基本数学模型(基本型)后,我们现在要求解的就是一个最优化问题。
min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , m \begin{array}{l} \displaystyle\min _{w, b} \frac{1}{2}\|w\|^2\\ \text { s.t. } \ y_{i}\left(w^{T} x_{i}+b\right) \geq 1, \quad i=1,2, \ldots, m \end{array} w,bmin21w2 s.t.  yi(wTxi+b)1,i=1,2,,m由于基本型的目标函数是二次的,且约束条件是线性的,这是一个 凸二次规划 问题。可以直接用现成的优化计算包求解,如scikit-learn等,本节课配套的编程作业就是用的这种方法。(编程作业(python)| 支持向量机 SVM

  • 二次规划
    • 目标函数和约束条件都为变量的线性函数,叫做------线性规划问题。
    • 目标函数为变量的二次函数,约束条件为变量的线性函数,叫做------二次规划问题(即本问题)。
    • 目标函数和约束条件都为非线性函数,叫做------非线性规划问题。

除了用现成的优化计算包,我们还可以用其他方法来解决SVM的优化问题。在此之前,我们先来看下优化问题有哪些类别以及用什么方法解决:

优化问题及数学表达优化方法
无约束优化问题

min ⁡ f ( x ) \min{f(x)} minf(x)
费马大定理(Fermat),即使用求取函数f(x)的导数,然后令其为零,可以求得候选最优值,再在这些候选值中验证;如果是凸函数,可以保证是最优解。这也就是我们高中经常使用的求函数的极值的方法。
等式约束的优化问题

min ⁡ f ( x ) s.t.  h i ( x ) = 0 , i = 1 , 2 , … , m \begin{aligned}&\min f(x)\\ &\text {s.t. } h_{i(x)}=0, \quad i=1,2, \ldots, m\end{aligned} minf(x)s.t. hi(x)=0,i=1,2,,m
拉格朗日乘子法(Lagrange Multiplier) ,即把等式约束 h i ( x ) h_i(x) hi(x)用一个系数与 f ( x ) f(x) f(x)写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。
不等式约束的优化问题

min ⁡ f ( x ) s.t.  g i ( x ) ≤ 0 , i = 1 , 2 , … , n h j ( x ) = 0 , j = 1 , 2 , … , m \begin{aligned}&\min f(x)\\&\text {s.t. } g_{i(x)} \leq 0, \quad i=1,2, \ldots, n\\&h_{j(x)}=0, \quad j=1,2, \ldots, m\end{aligned} minf(x)s.t. gi(x)0,i=1,2,,nhj(x)=0,j=1,2,,m
同样地,我们把所有的等式、不等式约束与 f ( x ) f(x) f(x)写为一个式子,也叫拉格朗日函数,系数也称拉格朗日乘子,通过一些条件,可以求出最优值的必要条件,这个条件称为KKT条件

了解到这些,显然SVM的优化问题是属于第三类:有不等式约束的优化问题。用 拉格朗日乘数法 和 KKT条件 可以解决此类问题。

深究SVM中的数学原理是件很痛苦的事,上述数学原理了解即可,主要是为了SVM的推导做铺垫。

  • 总结将 原始问题 转化为 拉格朗日对偶问题 的步骤如下:
步骤一般优化问题SVM
原始问题 min ⁡ x f ( x )  s.t.   c i ( x ) ≤ 0 , i = 1 , 2 , … , m \begin{array}{l}\displaystyle\min _{x} f(x)\\ \text { s.t. } \ c_i(x) \leq 0, \quad i=1,2, \ldots, m\end{array} xminf(x) s.t.  ci(x)0,i=1,2,,m min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , m \begin{array}{l} \displaystyle \min _{w, b} \frac{1}{2}\|w\|^2 \\ \text { s.t. } \ y_{i}\left(w^{T} x_{i}+b\right) \geq 1, \quad i=1,2, \ldots, m\end{array} w,bmin21w2 s.t.  yi(wTxi+b)1,i=1,2,,m
拉格朗日函数 L ( x , α ) = f ( x ) + ∑ i = 1 m α i c i ( x ) \mathcal{L}(x, \alpha)=f(x)+\sum_{i=1}^{m} \alpha_{i} c_{i}(x) L(x,α)=f(x)+i=1mαici(x) L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i ( y i ( w T x i + b ) − 1 ) \mathcal{L}(\boldsymbol{w}, b, \boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^{2}-\sum_{i=1}^{m} \alpha_{i}\left(y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)-1\right) L(w,b,α)=21w2i=1mαi(yi(wTxi+b)1)
拉格朗日对偶(满足KKT条件) max ⁡ α i ≥ 0 min ⁡ x ( L ( x , α ) ) \max_{\alpha_i≥0}\min _{x}\left(\mathcal{L}(x, \alpha)\right) αi0maxxmin(L(x,α)) max ⁡ α i ≥ 0 min ⁡ w , b ( L ( w , b , α ) ) \max_{\alpha_i≥0}\min _{w, b}\left(\mathcal{L}(w, b, \alpha)\right) αi0maxw,bmin(L(w,b,α))

对偶问题求解

将原始问题转化为拉格朗日对偶问题后:
max ⁡ α i ≥ 0 min ⁡ w , b ( L ( w , b , α ) ) L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i ( y i ( w T x i + b ) − 1 ) \begin{aligned} &\max_{\alpha_i≥0}\min _{w, b}\left(\mathcal{L}(w, b, \alpha)\right)\\ &\mathcal{L}(\boldsymbol{w}, b, \boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^{2}-\sum_{i=1}^{m} \alpha_{i}\left(y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)-1\right) \end{aligned} αi0maxw,bmin(L(w,b,α))L(w,b,α)=21w2i=1mαi(yi(wTxi+b)1)我们的问题转化为:

  1. 首先固定 α \alpha α,使 L ( w , b , α ) \mathcal{L}(w, b, \alpha) L(w,b,α) 关于 w , b w,b w,b 最小化。分别对w和b偏导数,令其等于0,即:
    ∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 \begin{array}{l} \displaystyle\frac{\partial \mathcal{L}}{\partial \boldsymbol{w}}=0 \Rightarrow \boldsymbol{w}=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i} \\ \displaystyle\frac{\partial \mathcal{L}}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \end{array} wL=0w=i=1mαiyixibL=0i=1mαiyi=0将求导结果带回 L ( w , b , α ) \mathcal{L}(w, b, \alpha) L(w,b,α),得到
    L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ] = 1 2 w T w − w T ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i + ∑ i = 1 m α i = 1 2 w T ∑ i = 1 m α i y i x i − w T ∑ i = 1 m α i y i x i − b ⋅ 0 + ∑ i = 1 m α i = ∑ i = 1 m α i − 1 2 ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α i y i x i = ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j \begin{aligned} \mathcal{L}(\boldsymbol{w}, b, \boldsymbol{\alpha}) &=\frac{1}{2}\|\boldsymbol{w}\|^{2}-\sum_{i=1}^{m} \alpha_{i}\left[y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)-1\right] \\ &=\frac{1}{2} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{w}-\boldsymbol{w}^{\mathrm{T}} \sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}-b \sum_{i=1}^{m} \alpha_{i} y_{i}+\sum_{i=1}^{m} \alpha_{i} \\ &=\frac{1}{2} \boldsymbol{w}^{\mathrm{T}} \sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}-\boldsymbol{w}^{\mathrm{T}} \sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}-b \cdot 0+\sum_{i=1}^{m} \alpha_{i} \\ &=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}\right)^{\mathrm{T}} \sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i} \\ &=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \end{aligned} L(w,b,α)=21w2i=1mαi[yi(wTxi+b)1]=21wTwwTi=1mαiyixibi=1mαiyi+i=1mαi=21wTi=1mαiyixiwTi=1mαiyixib0+i=1mαi=i=1mαi21(i=1mαiyixi)Ti=1mαiyixi=i=1mαi21i,j=1mαiαjyiyjxiTxj此时的 L ( w , b , α ) \mathcal{L}(w, b, \alpha) L(w,b,α) 函数只含有一个变量,即 α i α_i αi,因此 max ⁡ α i ≥ 0 min ⁡ w , b ( L ( w , b , α ) ) = max ⁡ α i ≥ 0 ( L ( w , b , α ) ) \max_{\alpha_i≥0}\min _{w, b}\left(\mathcal{L}(w, b, \alpha)\right)=\max_{\alpha_i≥0}\left(\mathcal{L}(w, b, \alpha)\right) αi0maxw,bmin(L(w,b,α))=αi0max(L(w,b,α))

  2. 再对 α \alpha α L ( w , b , α ) \mathcal{L}(w, b, \alpha) L(w,b,α) 最大,对偶问题可以进一步转化为:
    max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j s.t.  α i ≥ 0 , i = 1 , 2 , ⋯   , m ∑ i = 1 m α i y i = 0 \begin{aligned} &\displaystyle\max _{\boldsymbol{\alpha}} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \\ &\text {s.t.} \ \alpha_{i} \geq 0, i=1,2, \cdots, m \\ &\quad \displaystyle\sum_{i=1}^{m} \alpha_{i} y_{i}=0 \end{aligned} αmaxi=1mαi21i,j=1mαiαjyiyjxiTxjs.t. αi0,i=1,2,,mi=1mαiyi=0

现在我们的优化问题变成了如上的形式。对于这个问题,我们有更高效的优化算法,即 序列最小优化(Sequential Minimal Optimizaion-SMO)算法。我们通过这个优化算法能得到 α α α,再根据 α α α,我们就可以求解出 w w w b b b,进而求得我们最初的目的:找到超平面,即"决策边界"。

解得 α \alpha α 后,即可求出 w w w b b b,得到线性SVM的超平面:
f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + b \begin{aligned} f(x) &=w^{T} x+b \\ &=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}^{T} x+b \end{aligned} f(x)=wTx+b=i=1mαiyixiTx+b

注:上述过程均要满足KKT条件,即:
{ α i ≥ 0 y i f ( x ) − 1 ≥ 0 α i ( y i f ( x ) − 1 ) = 0 \left\{\begin{array}{c} \alpha_{i} \geq 0 \\ y_{i} f(x)-1 \geq 0 \\ \alpha_{i}\left(y_{i} f(x)-1\right)=0 \end{array}\right. αi0yif(x)10αi(yif(x)1)=0
因此对于任意训练样本 ( x i , y i ) (x_i, y_i) (xi,yi) ,总有 α i = 0 \alpha_i=0 αi=0 y i f ( x ) − 1 = 0 y_if(x)-1=0 yif(x)1=0

  • α i = 0 \alpha_i=0 αi=0 时, f ( x ) = b f(x)= b f(x)=b,则该样本不会对 f ( x ) f(x) f(x) 产生影响;
  • y i f ( x ) − 1 = 0 y_if(x)-1=0 yif(x)1=0,此时 α i ≥ 0 \alpha_i≥0 αi0,对应样本点落在最大间隔边界上,即为支持向量。同时这也是支持向量的一个重要性质:模 型训练完成后,大部分的训练样本不需要保留,最终的模型参数仅与支持向量有关。


推荐阅读:
支持向量机原理篇之手撕线性SVM
陈东岳老师:零基础学SVM—Support Vector Machine(一)
陈东岳老师:零基础学SVM—Support Vector Machine(二)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值