Soft Margin SVM 

(1)Recall

之前分析到SVM的模型为:

\begin{align}\mathop{\min}&\quad \frac{1}{2}w^\prime w\nonumber\\\mathop{s.t}&\quad y_i(x_i^\prime w+b)\geq 1, i=1,2,\cdots,m\label{model:SVM}\end{align}

利用Lagrange乘子法转化为对偶问题:

\begin{align}\mathop{\max}&\quad \theta(\alpha)=\sum_{i}\alpha_i-\frac{1}{2}\sum_i\sum_j \alpha_i\alpha_jy_iy_j\langle x_i,x_j\rangle\nonumber\\\mathop{s.t}&\quad \sum_i\alpha_iy_i=0\nonumber\\&\quad \alpha \geq 0\label{model:SVMDual}\end{align}

但上诉模型只能用于解决线性可分的情况,当训练集为线性不可分时其分类的效果非常差,故引入Soft Margin SVM。

(2)Soft SVM

Soft Margin SVM的关键点是引入松弛变量(Slack variable),将上述严格的限制条件变为$y_i(x_i^\prime w+b)\geq 1-\xi_i,\ (\xi_i\geq 0)$,使某些数据点可以处于间隔內,甚至允许有错误的点,但与此相应付出一定的惩罚$C\xi_i$。故目标函数变为:

\begin{equation*}\mathop{\min}\quad \frac{1}{2}w^\prime w+C\sum_{i=1}^m\xi_i\end{equation*}

其中$C$叫做惩罚因子。于是Soft Margin SVM的模型为:

\begin{align}\mathop{\min}&\quad \frac{1}{2}w^\prime w+C\sum_{i=1}^m\xi_i\nonumber\\\mathop{s.t.}&\quad y_i(x_i^\prime w+b)\geq 1-\xi_i\nonumber\\&\quad \xi_i\geq 0\Longrightarrow -\xi_i \leq 0\label{model:SoftSVM}\end{align}

其对应的Lagrange函数:

\begin{equation}L(w,\xi,\alpha,\gamma,b)=\frac{1}{2}w^\prime w+C\sum_{i=1}^m\xi_i+\sum_{i=1}^m\alpha_i[1-\xi_i-y_i(x_i^\prime w+b)]-\sum_{i=1}^m\gamma_i\xi_i\label{equ:lagrange}\end{equation}

对Lagrange函数求导:

\begin{equation}\frac{\partial L}{\partial w}=w-\sum_{i=1}^m\alpha_iy_ix_i=0\Longrightarrow w=\sum_{i=1}^m\alpha_iy_ix_i\label{equ:derivativew}\end{equation}

\begin{equation}\frac{\partial L}{\partial b}=\sum_{i=1}^m\alpha_iy_i=0\Longrightarrow \sum_{i=1}^m\alpha_iy_i=0\label{equ:derivativeb}\end{equation}

\begin{equation}\frac{\partial L}{\partial\xi}=C-\alpha-\gamma=0\Longrightarrow \alpha_i=C-\gamma_i,\forall i\label{equ:derivativexi}\end{equation}

将式子\ref{equ:derivativew},\ref{equ:derivativeb},\ref{equ:derivativexi}代入$L(w,\xi,\alpha,\gamma,b)$中得到:

\begin{equation}\theta(\alpha,\gamma)=\sum_{i=1}^m \alpha_i-\frac{1}{2}\sum_{i,j=1}^m\alpha_i\alpha_jy_iy_j\langle x_i,x_j\rangle\label{equ:softSVMObjection}\end{equation}

虽然soft SVM对偶问题的目标函数(式子\ref{equ:softSVMObjection})与SVM的对偶形同,当它们的限制条件不同。Soft SVM对偶问题模型为:

\begin{align}\mathop{\max}&\quad\theta(\alpha,\gamma)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i,j=1}^m\alpha_i\alpha_jy_iy_j\langle x_i,x_j\rangle\nonumber\\\mathop{s.t.}&\quad\sum_{i=1}^m\alpha_iy_i=0\nonumber\\&\quad\alpha_i=C-\gamma_i\Longrightarrow 0\leq\alpha_i\leq C\label{model:SoftSVMDual}\end{align}

模型\ref{model:SoftSVMDual}可以用我们下一节将要总结的SMO算法求解。现在,我们来分析一下Soft SVM。

KKT dual-complementarily条件为:

\begin{equation*}\left\{\begin{array}&\alpha_i[1-\xi_i-y_i(x_i^\prime w+b)]=0\\\gamma_i\xi_i=0\end{array}\right.\end{equation*}

1)当$\alpha_i=0$时,$y_i(x_i^\prime w+b)\geq 1-\xi_i$,

由$\alpha_i=C-\gamma_i\Longrightarrow C=\gamma_i\neq 0\Longrightarrow \xi_i=0\Longrightarrow y_i(x_i^\prime w+b)\geq 1$.

2)当$\alpha_i=C$时,$y_i(x_i^\prime w+b)=1-\xi_i$,

由$\alpha_i=C-\gamma_i\Longrightarrow\gamma_i=0\Longrightarrow\xi_i\geq 0\Longrightarrow y_i(x_i^\prime w+b)=1-\xi_i\leq 1$.

3)当$0<\alpha_i<C$时,$y_i(x_i^\prime w+b)=1-\xi_i$,

由$\alpha_i=C-\gamma_i\Longrightarrow \gamma_i\neq 0\Longrightarrow \xi_i=0\Longrightarrow y_i(x_i^\prime w+b)=1$

综上所述,可得:

\begin{equation*}\left\{\begin{array}&\alpha_i=0\Longrightarrow y_i(x_i^\prime w+b)\geq 1\Longleftrightarrow \xi_i=0\\\alpha_i=C\Longrightarrow y_i(x_i^\prime w+b)\leq 1\Longleftrightarrow \xi_i\geq 0\\0<\alpha_i<C\Longrightarrow y_i(x_i^\prime w+b)=1\Longleftrightarrow \xi_i=0\end{array}\right.\end{equation*}

从上面的式子可以看出,当$\alpha_i=0$时,对应的应该是两条间隔线外并且结果正确的点;当$\alpha_i=C$时,对应的应该是两条间隔线内以及结果错误的点;当$0<\alpha_i<C$时,对应的是两条间隔线上的点。故此时的支撑向量(support vectors)应包括两种数据点:a) 两条线内以及结果错误的点;b) 两条间隔线上的点。从$\xi_i$的取值可以看出只有在两条间隔线内以及结果错误的点才会受到惩罚,并结果错误的点所遭受的惩罚更大。

现在,我们从图形上直观的看$\xi_i$的几何意义。由于$\xi_i\geq 1-y_i(x_i^\prime w+b)$且$\xi_i\geq 0$,故$\xi_i=\mathop{max}\{0,1-y_i(x_i^\prime w+b)\}$

  1. 当$y_i(x_i^\prime w+b)>1$时,对应图中C,D点,此时$1-y_i(x_i^\prime w+b)<0$,故$\xi_i=0$,即不受惩罚。
  2. 当$y_i(x_i^\prime w+b)=1$时,对应图中E,G点,此时$1-y_i(x_i^\prime w+b)=0$,故$\xi_i=0$,即不受惩罚。
  3. 当$0<y_i(x_i^\prime w+b)<1$时,对应图中A,H点(分类正确,但在间隔线内),此时$0<1-y_i(x_i^\prime w+b)<1$,故$\xi_i=1-y_i(x_i^\prime w+b)$,遭受0到1之间的惩罚,在图中表示为到相应支撑线的距离(A点到直线2的距离,H点到直线3的距离)。
  4. 当$y_i(x_i^\prime w+b)=0$时,对应图中的F点(在直线1上),此时$\xi_i=1$,遭受惩罚1,表示距图中直线1或者直线2的距离。
  5. 当$y_i(x_i^\prime w+b)<0$时,对应图中的B,I点(分类结果错误),此时$1-y_i(x_i^\prime w+b)>1$,故$\xi_i>1$,遭受大于1的惩罚,在图中表示到相应支撑线的距离(B点到直线3的距离,I点到直线2的距离)。

故目标函数中$C\sum_{i=1}^m\xi_i$可用于表示置信的风险,而$\frac{1}{2}w^\prime w$用于表示间隔的大小(越小表示间隔越大,分类的效果越好),而$C$的取值则用于权衡二者的比重。

Jordan Lecture Note-7: Soft Margin SVM的更多相关文章

  1. 机器学习:SVM(目标函数推导:Hard Margin SVM、Soft Margin SVM)

    一.Hard Margin SVM SVM 的思想,最终用数学表达出来,就是在优化一个有条件的目标函数: 此为 Hard Margin SVM,一切的前提都是样本类型线性可分: 1)思想 SVM 算法 ...

  2. SVM3 Soft Margin SVM

    之前分为两部分讨论过SVM.第一部分讨论了线性SVM,并且针对线性不可分的数据,把原始的问题转化为对偶的SVM求解.http://www.cnblogs.com/futurehau/p/6143178 ...

  3. 机器学习——SVM详解(标准形式,对偶形式,Kernel及Soft Margin)

    (写在前面:机器学习入行快2年了,多多少少用过一些算法,但由于敲公式太过浪费时间,所以一直搁置了开一个机器学习系列的博客.但是现在毕竟是电子化的时代,也不可能每时每刻都带着自己的记事本.如果可以掏出手 ...

  4. Jordan Lecture Note-8: The Sequential Minimal Optimization Algorithm (SMO).

    The Sequential Minimal Optimization Algorithm (SMO) 本文主要介绍用于解决SVM对偶模型的算法,它于1998年由John Platt在论文“Seque ...

  5. Support Vector Machine(3):Soft Margin 平衡之美

    很多材料上面讲道“引入Soft Margin的原因是因为数据线性不可分”,个人认为有些错误,其实再难以被分解的数据,如果我们用很复杂的弯弯绕曲线去做,还是可以被分解,并且映射到高维空间后认为其线性可分 ...

  6. Jordan Lecture Note-1: Introduction

    Jordan Lecture Note-1: Introduction 第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都 ...

  7. Jordan Lecture Note-3: 梯度投影法

    Jordan Lecture Note-3:梯度投影法 在这一节,我们介绍如何用梯度投影法来解如下的优化问题: \begin{align} \mathop{\min}&\quad f(x)\n ...

  8. Colorful Lecture Note(手工栈)

    题目1 : Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm ...

  9. HihoCoder - 1103 Colorful Lecture Note

    Little Hi is writing an algorithm lecture note for Little Ho. To make the note more comprehensible, ...

随机推荐

  1. 多线程程序设计学习(13)Active Object pattern

    Active Object[接收异步消息的对象] 一:Active Object的参与者--->客户端线程(发起某种操作请求处理)--->代理角色(工头)--->实际执行者(工人)- ...

  2. 将你的Asp.NET应用程序嵌入到SharePoint

    转:http://www.cnblogs.com/Clank/archive/2007/05/21/754073.html 为什么要将Asp.net应用程序嵌入到SharePoint?这个我们不讨论! ...

  3. Maven使用教程

    一.Maven介绍 我们在开发项目的过程中,会使用一些开源框架.第三方的工具等等,这些都是以jar包的方式被项目所引用,并且有些jar包还会依赖其他的jar包,我们同样需要添加到项目中,所有这些相关的 ...

  4. MySQL 存储过程删除大表

    1.权限问题 alter routine 编辑或删除存储过程 create routine 建立存储过程 execute 创建存储过程 2.存储过程相关的一些命令 show procedure sta ...

  5. LR 常见问题总结

    问题1:Error: Two Way Communication Error:            Function two_way_comm_post_message/two_way_comm_p ...

  6. STM32学习笔记——FSMC 驱动大容量NAND FLASH [复制链接]

    本文原创于观海听涛,原作者版权所有,转载请注明出处. 近几天开发项目需要用到STM32驱动NAND FLASH,但由于开发板例程以及固件库是用于小页(512B),我要用到的FLASH为1G bit的大 ...

  7. C++ 输入输出流 总结

    1.ostream & operator<<(int); 重载了<<符号,用于对int类型的输出.为什么要返回ostream的引用呢? 例如: cout<< ...

  8. uva 11020 Efficient Solutions

    题意:给你n个人,有两个属性x.y,如果不存在另外一个人x2,y2满足 x2<=x,y2<y 或者 x2<x,y2<=y,那么就称这个人是有优势的,每次给你一个人得信息,问你当 ...

  9. uva 10652

    大意:有n块矩形木板,你的任务是用一个面积尽量小的凸多边形把它们包起来,并计算出木板站整个包装面积的百分比. 思路:按照题意将所有矩形顶点坐标存起来,旋转时先旋转从中心出发的向量,求得各个坐标之后,求 ...

  10. 【转载】lua中的require机制

    [转载自]http://blog.chinaunix.net/uid-552961-id-2736410.html lua中的require机制 为了方便代码管理,通常会把lua代码分成不同的模块,然 ...