西瓜书之SVM支持向量机

主要学习目标

我们主要的学习目的是简单看一遍西瓜书里面的内容,尽可能的对各个模型都有一定的了解,在本节课程当中,我会给大家分享机器学习相关的的内容,我主要是在学习吴恩达老师最新的机器学习的视频,但是学完之后还是觉得较为空泛,所以在此,借机会再重新复习
在这里插入图片描述

支持向量机SVM

为什么要学习支持向量机,首先,支持向量机是在做分类问题的时候,人们最先可能想到的,因为往往一个数据集当中,正类以及负类二者之间的一个分割超平面,可以实现许多超平面进行划分但是支持向量机就是要实现找到能够"正中间"划分的超平面,也就是对训练样本对该超平面的影响不是很大,可以尽可能的实现正类和负类的正确划分
center!

超平面

什么是超平面,超平面可以简单的理解为我们所要研究的问题为 n n n维空间的,那么我们就把 n − 1 n-1 n1维称为超平面,比如说西瓜书上面对于划分超平面,正类和负类的数据集散落在一个二维的图像上,那么我们就尝试找到1维的一条直线这样子的一个超平面实现划分的应用

支持向量以及间隔

划分超平面可以通过如下线性方程 w T x + b = 0 w^Tx+b=0 wTx+b=0
样本空间当中 x x x到超平面 ( w , b ) (w,b) (w,b)的距离为 r = ∣ w T x + b ∣ ∥ w ∥ . r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|} . r=wwTx+b.
对于样本点进行计算,若样本正确分类则 y i = + 1 y_i=+1 yi=+1,分类错误则 y i = − 1 y_i=-1 yi=1
最接近使得分类成立的,也就是恰好使得样本空间当中的正类和负类实现分类样本,被称为支持向量
其到超平面的距离为 γ = 2 ∥ w ∥ \gamma=\frac{2}{\|\boldsymbol{w}\|} γ=w2
该距离也被称为间隔
在这里插入图片描述
那么,要找到最大间隔的划分超平面,也就是约束 w w w b b b,使得 γ \gamma γ最大化
min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m . \begin{array}{c} \displaystyle\min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}\\ s.t. y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1, \quad i=1,2, \ldots, m . \end{array} w,bmin21w2s.t.yi(wTxi+b)1,i=1,2,,m.

对偶问题

对于该问题转化为凸优化问题,可以使用到的方法是拉格朗日乘子法
使用该方法可以写出
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(w^{T} x_{i}+b\right)\right) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))

L ( w , b , α ) L(\boldsymbol{w}, b, \boldsymbol{\alpha}) L(w,b,α) 分别对 w \boldsymbol{w} w b b b 的偏导为零可得
w = ∑ i = 1 m α i y i x i 0 = ∑ i = 1 m α i y i \boldsymbol{w}=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i} \quad 0=\sum_{i=1}^{m} \alpha_{i} y_{i} w=i=1mαiyixi0=i=1mαiyi
回代可以得到
max ⁡ α ∑ i = 1 m a i − 1 2 ∑ i = 1 m ∑ j = 1 m α i a j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 \displaystyle\max _{\alpha} \sum_{i=1}^{m} a_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} a_{j} y_{i} y_{j} x_{i}^{T} x_{j}\\ s.t.\sum_{i=1}^{m} \alpha_{i} y_{i}=0\\ \alpha_{i} \geq 0 αmaxi=1mai21i=1mj=1mαiajyiyjxiTxjs.t.i=1mαiyi=0αi0
最终模型: f ( x ) = w ⊤ x + b = ∑ i = 1 m α i y i x i ⊤ x + b f(\boldsymbol{x})=\boldsymbol{w}^{\top} \boldsymbol{x}+b=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^{\top} \boldsymbol{x}+b f(x)=wx+b=i=1mαiyixix+b
K K T 条 件 : { α i ≥ 0 ; 1 − y i f ( x i ) ≤ 0 ; α i ( 1 − y i f ( x i ) ) = 0.  必有  α i = 0  或  y i f ( x i ) = 1 KKT条件: \left\{\begin{array}{l} \alpha_{i} \geq 0 ; \\ 1-y_{i} f\left(\boldsymbol{x}_{i}\right) \leq 0 ; \\ \alpha_{i}\left(1-y_{i} f\left(\boldsymbol{x}_{i}\right)\right)=0 . \end{array} \begin{array}{l} \text { 必有 } \alpha_{i}=0 \text { 或 } \\ y_{i} f\left(\boldsymbol{x}_{i}\right)=1 \end{array}\right. KKT:αi0;1yif(xi)0;αi(1yif(xi))=0. 必有 αi=0  yif(xi)=1
解的稀疏性表示的是在训练完成后, 最终模型仅与支持向量有关(也就是说不与所有的样本有关)

SMO求解

基本思路:不断执行如下两个步骤直至收敛

  • 第一步: 选取一对需更新的变量 α i \alpha_{i} αi α j \alpha_{j} αj
  • 第二步: 固定 α i \alpha_{i} αi α j \alpha_{j} αj 以外的参数, 求解对偶问题更新 α i \alpha_{i} αi α j \alpha_{j} αj 仅考虑 α i \alpha_{i} αi α j \alpha_{j} αj 时, 对偶问题的约束 0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^{m} \alpha_{i} y_{i} 0=i=1mαiyi 变为
    α i y i + α j y j = c , α i ⩾ 0 , α j ⩾ 0 \alpha_{i} y_{i}+\alpha_{j} y_{j}=c, \quad \alpha_{i} \geqslant 0, \quad \alpha_{j} \geqslant 0 αiyi+αjyj=c,αi0,αj0
    α i \alpha_{i} αi 表示 α j \alpha_{j} αj , 代入对偶问题

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 _{\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}^{\mathrm{T}} \boldsymbol{x}_{j} \text { 有闭式解! } αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj 有闭式解
对任意支持向量 ( x s , y s ) \left(\boldsymbol{x}_{s}, y_{s}\right) (xs,ys) y s f ( x s ) = 1 y_{s} f\left(\boldsymbol{x}_{s}\right)=1 ysf(xs)=1 由此可解出 b b b
为提高鲁棒性, 通常使用所有支持向量求解的平均值

特征空间映射

引入特征空间的映射,可以更高效率的去解决问题,这是因为如果原始空间是有限维(属性数有限), 那么一定存在一个 高维特征空间使样本线性可分,比如可以在 ( x , y ) (x,y) (x,y)的情况下加上 ( x , y , x + y ) (x,y,x+y) (x,y,x+y)可以更好的解决问题

核函数

原始问题
min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w ⊤ ϕ ( x i ) + b ) ≥ 1 , i = 1 , 2 , … , m . \min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2} \\ s.t. y_{i}\left(\boldsymbol{w}^{\top} \phi\left(\boldsymbol{x}_{i}\right)+b\right) \geq 1, i=1,2, \ldots, m . w,bmin21w2s.t.yi(wϕ(xi)+b)1,i=1,2,,m.
对偶问题
max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m α i y i = 0 , α i ⩾ 0 , i = 1 , 2 , … , m \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} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) \\ s.t. \sum_{i=1}^{m} \alpha_{i} y_{i}=0, \quad \alpha_{i} \geqslant 0, \quad i=1,2, \ldots, m αmaxi=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.i=1mαiyi=0,αi0,i=1,2,,m
预测
f ( x ) = w T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b f(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}} \phi(\boldsymbol{x})+b=\sum_{i=1}^{m} \alpha_{i} y_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x})+b f(x)=wTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(x)+b
由于引入了 ϕ ( x i ) T ϕ ( x ) \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x}) ϕ(xi)Tϕ(x)这个高维的甚至无穷维的值,这是十分难以计算的,首先观察到 ϕ ( x i ) T ϕ ( x ) \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x}) ϕ(xi)Tϕ(x)是以内积的形式展现出来

所以为了简便计算,引入核函数的概念
基本思路: 设计核函数

κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) κ(xi,xj)=ϕ(xi)Tϕ(xj)

绕过显式考虑特征映射、以及计算高维内积的困难,需要注意到的是核函数是隐式的,不能保证完全找到最优的核函数的选择
Mercer 定理: 若一个对称函数所对应的核矩阵半正定, 则它就能作 为核函数来使用
任何一个核函数, 都隐式地定义了一个 R K H S RKHS RKHS ( R e p r o d u c i n g K e r n e l H i l b e r t S p a c e Reproducing Kernel Hilbert Space ReproducingKernelHilbertSpace 再生核希尔伯特空间)
“核函数选择” 成为决定支持向量机性能的关键!

如何使用SVM

基本思路: 允许模型输出与实际输出间存在 2 ϵ 2 \epsilon 2ϵ 的差别
ϵ − 不 敏 感 损 失 函 数 \epsilon-不敏感损失函数 ϵ

软间隔

软间隔的提出,主要是因为在大部分的分类过程当中,不能完全保证正类和负类就是刚好一条直线就分开了,也为了避免因为过拟合实现线性分类的问题,所以引入软间隔,也就是允许支持向量机在样本上可以出错
在这里插入图片描述
支持向量回归SVR
 原始问题  min ⁡ w , b , ξ i , ξ ^ i 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i )  s.t.  f ( x i ) − y i ⩽ ϵ + ξ i , y i − f ( x i ) ⩽ ϵ + ξ ^ i , ξ i ⩾ 0 , ξ ^ i ⩾ 0 , i = 1 , 2 , … , m \text { 原始问题 } \begin{aligned} \min _{\boldsymbol{w}, b, \xi_{i}, \hat{\xi}_{i}} & \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}+\hat{\xi}_{i}\right) \\ \text { s.t. } & f\left(\boldsymbol{x}_{i}\right)-y_{i} \leqslant \epsilon+\xi_{i}, \\ & y_{i}-f\left(\boldsymbol{x}_{i}\right) \leqslant \epsilon+\hat{\xi}_{i}, \\ & \xi_{i} \geqslant 0, \hat{\xi}_{i} \geqslant 0, i=1,2, \ldots, m \end{aligned}  原始问题 w,b,ξi,ξ^imin s.t. 21w2+Ci=1m(ξi+ξ^i)f(xi)yiϵ+ξi,yif(xi)ϵ+ξ^i,ξi0,ξ^i0,i=1,2,,m
对 偶 问 题 max ⁡ α , α ˙ ∑ i = 1 m y i ( α ^ i − α i ) − ϵ ( α ^ i + α i ) − 1 2 ∑ i = 1 m ∑ j = 1 m ( α ^ i − α i ) ( α ^ j − α j ) x i T x j  s.t.  ∑ i = 1 m ( α ^ i − α i ) = 0 , 0 ⩽ α i , α ^ i ⩽ C 对偶问题 \begin{aligned} \max _{\boldsymbol{\alpha}, \dot{\boldsymbol{\alpha}}} & \sum_{i=1}^{m} y_{i}\left(\hat{\alpha}_{i}-\alpha_{i}\right)-\epsilon\left(\hat{\alpha}_{i}+\alpha_{i}\right)-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m}\left(\hat{\alpha}_{i}-\alpha_{i}\right)\left(\hat{\alpha}_{j}-\alpha_{j}\right) \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \\ \text { s.t. } & \sum_{i=1}^{m}\left(\hat{\alpha}_{i}-\alpha_{i}\right)=0, \quad 0 \leqslant \alpha_{i}, \hat{\alpha}_{i} \leqslant C \end{aligned} α,α˙max s.t. i=1myi(α^iαi)ϵ(α^i+αi)21i=1mj=1m(α^iαi)(α^jαj)xiTxji=1m(α^iαi)=0,0αi,α^iC

预 测 f ( x ) = ∑ i = 1 m ( α ^ i − α i ) x i T x + b 预测 \quad f(\boldsymbol{x})=\sum_{i=1}^{m}\left(\hat{\alpha}_{i}-\alpha_{i}\right) \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}+b f(x)=i=1m(α^iαi)xiTx+b

将支持向量机的公式改写为
min ⁡ w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ℓ 0 / 1 ( y i ( w T x i + b ) − 1 ) ℓ 0 / 1 ( z ) = { 1 , i f z < 0 0 , o t h e r w i s e \begin{array}{c} \min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \displaystyle \sum_{i=1}^{m} \ell_{0 / 1}\left(y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)-1\right)\\ \ell _{0/1}(z)=\left\{ \begin{array}{c} 1, &\mathrm{if} z<0\\ 0, &\mathrm{otherwise}\\ \end{array}\right. \end{array} minw,b21w2+Ci=1m0/1(yi(wTxi+b)1)0/1(z)={1,0,ifz<0otherwise
计算样本投影后的点距离
d i s t ( x 1 , x 2 ) = ∥ ϕ ( x 1 ) − ϕ ( x 2 ) ∥ H k 2 = k ( x 1 , x 1 ) − 2 k ( x 1 , x 2 ) + k ( x 2 , x 2 ) dist(x_1,x_2)=\|\phi(x_1)-\phi(x_2)\|_{\mathcal{H}_k}^2=\sqrt{k(x_1,x_1)-2k(x_1,x_2)+k(x_2,x_2)} dist(x1,x2)=ϕ(x1)ϕ(x2)Hk2=k(x1,x1)2k(x1,x2)+k(x2,x2)

总结

在本次课程当中我们学习并了解到了机器学习的SVM支持向量机,让我们继续努力

相关学习链接

机器学习西瓜书
吴恩达老师最新机器学习视频

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值