Jordan Lecture Note-7: 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)\}$
- 当$y_i(x_i^\prime w+b)>1$时,对应图中C,D点,此时$1-y_i(x_i^\prime w+b)<0$,故$\xi_i=0$,即不受惩罚。
- 当$y_i(x_i^\prime w+b)=1$时,对应图中E,G点,此时$1-y_i(x_i^\prime w+b)=0$,故$\xi_i=0$,即不受惩罚。
- 当$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的距离)。
- 当$y_i(x_i^\prime w+b)=0$时,对应图中的F点(在直线1上),此时$\xi_i=1$,遭受惩罚1,表示距图中直线1或者直线2的距离。
- 当$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的更多相关文章
- 机器学习:SVM(目标函数推导:Hard Margin SVM、Soft Margin SVM)
一.Hard Margin SVM SVM 的思想,最终用数学表达出来,就是在优化一个有条件的目标函数: 此为 Hard Margin SVM,一切的前提都是样本类型线性可分: 1)思想 SVM 算法 ...
- SVM3 Soft Margin SVM
之前分为两部分讨论过SVM.第一部分讨论了线性SVM,并且针对线性不可分的数据,把原始的问题转化为对偶的SVM求解.http://www.cnblogs.com/futurehau/p/6143178 ...
- 机器学习——SVM详解(标准形式,对偶形式,Kernel及Soft Margin)
(写在前面:机器学习入行快2年了,多多少少用过一些算法,但由于敲公式太过浪费时间,所以一直搁置了开一个机器学习系列的博客.但是现在毕竟是电子化的时代,也不可能每时每刻都带着自己的记事本.如果可以掏出手 ...
- Jordan Lecture Note-8: The Sequential Minimal Optimization Algorithm (SMO).
The Sequential Minimal Optimization Algorithm (SMO) 本文主要介绍用于解决SVM对偶模型的算法,它于1998年由John Platt在论文“Seque ...
- Support Vector Machine(3):Soft Margin 平衡之美
很多材料上面讲道“引入Soft Margin的原因是因为数据线性不可分”,个人认为有些错误,其实再难以被分解的数据,如果我们用很复杂的弯弯绕曲线去做,还是可以被分解,并且映射到高维空间后认为其线性可分 ...
- Jordan Lecture Note-1: Introduction
Jordan Lecture Note-1: Introduction 第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都 ...
- Jordan Lecture Note-3: 梯度投影法
Jordan Lecture Note-3:梯度投影法 在这一节,我们介绍如何用梯度投影法来解如下的优化问题: \begin{align} \mathop{\min}&\quad f(x)\n ...
- Colorful Lecture Note(手工栈)
题目1 : Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm ...
- HihoCoder - 1103 Colorful Lecture Note
Little Hi is writing an algorithm lecture note for Little Ho. To make the note more comprehensible, ...
随机推荐
- file的getPath getAbsolutePath和getCanonicalPath的区别
转自:http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.html file的这几个取得path的方法各有不同,下边说说详细的区别 ...
- Java [leetcode 34]Search for a Range
题目描述: Given a sorted array of integers, find the starting and ending position of a given target valu ...
- Java [leetcode 21]Merge Two Sorted Lists
题目描述: Merge two sorted linked lists and return it as a new list. The new list should be made by spli ...
- SQL Server使用规范(转)
常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.自增长标识建议采用bigint ...
- 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据
向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...
- 使用Busybox-1.2.0制作根文件系统
使用Busybox-1.2.0制作根文件系统 cross-3.3.2 make-3.8.1 STEP 1: 创建根文件系统目录,主要包括以下目录/bin,/etc,/dev,/mnt,/sbin,/u ...
- PowerShell:Linux程序员喜欢的cmd增强版
Linux程序员有时偶尔使用Windows下的cmd工具,会被逼疯的,有些命令ls, cat, ps等已经条件反射一样使用. 但在cmd下,根本不知道该用什么命令,好在盖兹大叔照顾了此部分需求.从Vi ...
- python 网络编程(五)---DNS域名系统
1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:www.baidu.com—& ...
- Docker系列(九)Kubernetes安装
环境: A.B两天机器A机器IP:192.169.0.104,B机器IP:192.168.0.102,其中A为Master节点,B为Slave节点 操作系统:Centos7 Master与Slave节 ...
- 函数 stat() 详解
先看看MSDN的解釋: stat(): Get status information on a file. Parameters: path: pointer to a string con ...