SVM

一、支持向量机 SVM(Support Vector Machine)

SVM是一种二分类算法,旨在寻找最佳平面使得训练集上的正负样本间距最大。模型由简至繁可分为以下三种:

线性可分支持向量机(硬间隔支持向量机):

线性支持向量机(软间隔支持向量机):

非线性支持向量机:

二、线性可分支持向量机

1. 训练集线性可分,存在无数超平面可将两类数据正确分开,此时线性可分支持向量机利用间隔最大化求得最优分离超平面,此时最优解唯一

2. 定义

给定线性可分训练集,通过间隔最大化得到分离超平面

SVM

以及相应的分类决策函数

SVM

成为线性可分支持向量机

3. 分析

(1)设超平面为SVM,其中SVM为法向量,决定超平面的方向;b为位移项,决定超平面与原点直接的距离。那么,样本空间任意一点x到超平面的距离可写为

SVM

(2)假设超平面能将样本正确划分,即

SVM

为了使最后得到的分类器鲁棒性更强且便于计算,我们令

SVM

图形表示如下

SVM
线性可分支持向量机及其间隔

由图可以清晰的看出,两个异类支持向量机到超平面的距离之和称为间隔,如下表示:

SVM

(3)要想最大化间隔SVM,需要找满足约束条件的参数SVM和b,同时使得SVM最大,即

SVM

转化一下,变为

SVM

此为SVM的基本型

4. 求解上式

(1)引入拉格朗日函数

SVM

问题变为求解SVM

对偶问题变为SVM

(2)求SVM

分别对w和b求偏导,可得

SVM

SVM

将上式代入拉格朗日函数中,可得

SVM

(3)求上式对于a的极大

SVM

上式可转化为

SVM

假设上式解为

SVM

(4)求解w及b

【定理】根据(3)中SVM,存在下标j,使得SVM,且可通过下式求得原始问题的解SVM:

SVM

证明参考https://www.cnblogs.com/ooon/p/5721119.html

5. 线性可分支持向量机算法

输入:线性可分训练集SVM,其中SVM

输出:分离超平面和分类决策函数

(1)构造并求解约束最优化问题

SVM

求得最优解SVM

(2)求SVM

SVM

选择一个正分量SVM,计算

SVM

(3)求得分离超平面

SVM

分类决策函数:

SVM

三、线性支持向量机

1. 当训练数据不满足线性可分的条件时,即训练数据中有一些特异点,将这些特异点去除后剩下大部分的样本点组成的集合是线性可分的

2. 为了解决上述问题,对每个样本点SVM引入一个松弛变量SVM,使函数间隔加上松弛变量大于等于1,约束条件变为SVM

线性支持向量机变为如下凸二次规划问题:

SVM

类似的解法得到对偶问题

SVM

3. 线性支持向量机算法

输入:训练数据集SVM,其中SVM

输出:分离超平面和分类决策函数

(1)选择惩罚函数C>0,构造并求解凸二次规划问题

SVM

求得最优解SVM

(2)计算

SVM

选择满足SVM的分量,计算

SVM

(3)求得超平面

SVM

分类决策函数

SVM

四、非线性支持向量机

1. 场景

训练集线性不可分,利用核技巧将输入空间非线性问题转化到特征空间线性可分问题,如下图所示

SVM
输入空间非线性问题转化到特征空间线性可分问题

2. 核函数

设ϕ(x)为输入空间到特征空间的映射函数,那么

SVM

称K(x,z)为核函数

3. 常用核函数

(1)多项式核函数

SVM

(2)高斯核函数

SVM

4. 非线性支持向量机算法

输入:训练数据集SVM,其中SVM

输出:分离超平面和分类决策函数

(1)选取合适的核函数K(x,z)和适当的参数C,构造并求解最优化问题

SVM

求得最优解SVM

(2)选择一个正分量SVM,计算

SVM

(3)构造决策函数

SVM