|
|
支持向量机(SVM)是通过已知训练点的类别,求训练点和类别之间的对应关系,以便将训练集按照类
|
|
|
别分开,或者是预测新的训练点所对应的类别。其数据主要分为线性可分数据和非线性可分数据,通过
|
|
|
建立数据之间的最优超平面来区分数据类别。
|
|
|
最优超平面:
|
|
|
假设线性可分样本(x1,d1),(x2,d2),....,(xn,dn),对于任意输入的样本,其期望输出都为1或-1(d=1或-1)
|
|
|
,用来代表两类类别的标识。
|
|
|
当空间为二维空间时,直线可划分区域块,其方程为x1+x2 = 1,用向量表示即为[1,1]^{T}[x1,x2]-1 = 0
|
|
|
当空间为三维空间时,平面可划分区域块,其方程为x1+x2+x3 = 1,用向量表示即为[1,1,1]^{T}
|
|
|
[x1,x2,x3]-1 = 0
|
|
|
由此推广到高维空间可得超平面方程为W^{T} X+b = 0(X为输入向量,W为向量权值,b为偏置),
|
|
|
则W^{T} X+b > 0,d = 1;W^{T} X+b < 0,d = -1
|
|
|
超平面与最近的样本之间的间隔称为分离边缘,用ρ表示,SVM的目标就是找到使ρ最大时的W和b
|
|
|
由于无法直接求得W和b,可通过预测函数y = f(x) = sgn(W^{T} X+b)对给定样本的分类错误最小
|
|
|
由几何数学可知空间内一点到最优超平面的距离为r = (W^{T} X+b)/ ||W0||
|
|
|
令g(x) = r ||W0|| = W^{T} X+b → r = g(x)/ ||W0|| = 1/ ||W0|| ,d = 1;r = g(x)/ ||W0|| = -1/ ||W0|| ,
|
|
|
d = -1
|
|
|
所以分离边缘ρ = 2r = 2/ ||W0||
|
|
|
线性可分数据最优超平面:
|
|
|
最优超平面的权向量是训练样本向量的线性组合,且只有支持向量影响最终划分结果
|
|
|
W = α01d1X1 + α02d2X2 + ... + α0ndnXn
|
|
|
b = 1-W^{T} X
|
|
|
非线性可分数据:
|
|
|
SVM对于非线性可分的数据是将输入向量映射到一个高维度特征向量空间,如果选用的映射函数适当且
|
|
|
特征空间的维数足够高,则大多数非线性可分模式在特征空间中可转化为线性可分模式,该构造与内积
|
|
|
核相关
|
|
|
以下为四种常用的核函数:
|
|
|
线性核函数:K(X,Xp) = X' Xp
|
|
|
多项式核函数:K(X,Xp) = [(X Xp)+1]^q
|
|
|
Gauss核函数:K(X,Xp) = exp(- |X - X^p|^2/2ρ^2)
|
|
|
Sigmoid核函数:K(X,Xp) = tanh(k(X·X^p))+c tanh(x)=(e^x - e^(-x))/(e^x + e^(-x))
|
|
|
支持向量机的学习算法:
|
|
|
(1)准备一组训练样本(x1,d1),(x2,d2),....,(xn,dn)
|
|
|
(2)在约束条件α1d1+α2d2+ ... +αndn = 0,0<=α<=C下使目标函数Q(α)最大化的αop
|
|
|
(3)计算最优权值W
|
|
|
(4)对于待分类模式X,计算判别函数决定X的归属 |