数学描述
训练数据及标签:
超平面(Hyper plane)线性模型:
线性可分定义:
,使得对
综合上述公式:
SVM线性模型:
目标函数:
约束条件:
上述优化问题是凸优化问题(二次规划问题,Quadratic Programming)或者无解,或者只有一个极值
- 目标条件(Objective Function)是二次项
- 限制条件是一次项
性能指标:
距离超平面最近的几个训练样本点,称为支持向量(Support Vectors),两个异类支持向量到超平面的距离之和为间隔(Margin),即性能指标。
定理1:
和表示同一超平面,其中。即满足公式,则也满足公式
定理2:点到平面的距离公式
平面方程:,则点到该平面的距离:
向量到超平面的距离:
于是,使得在支持向量上有,则此时支持向量到平面的距离:
SVM非线性模型:
处理方法:在线性模型的基础上,修改目标函数和限制条件,于是:
目标函数:
限制条件:
注:在线性模型中加上松弛变量和的意义是允许部分数据未被正确分类(即提高泛化能力),而当值过大时模型无法有效分类,于是需要对的值进行限制。对于,其中为事先设定的参数,值越大,对应的目标函数值越大,则参数越不满足最小化的要求。
SVM非线性模型
处理方法:低维到高维映射
- 原始样本空间并不存在一个能正确划分两类样本的线性超平面
- 解决方法:将样本从原始空间映射到一个更高维的特征空间,使其在该特征空间内线性可分。
- 证明:在特征空间中对部分数据点进行随机标注,特征空间的维度越高,线性可分的概率越大。当在无限维特征空间中,线性可分的概率为1.
- 核函数:已知将原始空间映射到更高维空间可使样本集线性可分,接下来只需要找到一个符合条件的映射,即可解决线性不可分问题。
通过公式推导可知,我们可以不知道无限维映射的显示表达,只要知道存在一个核函数(kernel function)映射后的目标函数仍然有解
常用的核函数:
- 线性内核(Linear)
- 高斯核(Rbf)
- 多项式核(Ploy)
- Tanh核
能写成的充要条件:
- 交换性:
- 半正定性
,有:
原问题和对偶问题理论介绍:
已知映射,则原优化问题的目标函数:
限制条件:
当下的问题是,在已知核函数,不知的情况下,如何求解优化问题?
对偶理论
原问题(Prime Problem)目标函数:
限制条件:
对偶问题(Dual Problem)目标函数:
其中:
限制条件:
表示在限定的条件下,遍历全部的的最小值。于是,每确定一组值都能得到一个最小值,对偶问题的解就是所有最小值中的最大值。
定理1:
如果是原问题的解,而是对偶问题的解,则有:
定理2:
叫做原问题与对偶问题的间距(Duality Gap)
定理3:强对偶定理
若为凸函数,且,则此优化问题的原问题与对偶问题间距为0,即
定理4:KKT条件
对于,或者,或者
综合上述公式:
非线性模型的原问题(Prime Problem)目标函数:
限制条件:
对偶问题(Dual Problem)目标函数:
其中:
限制条件:
KKT条件:
对于,或者,或者
SVM非线性模型 将SVM原问题化成对偶问题
改变原问题形式,满足强对偶定理
原问题的目标函数:
限制条件:
对偶问题的目标函数:
限制条件:
推导过程
的极值点在偏导为0处,于是:
处理,可得:
对偶问题化简,目标函数:
限制条件:
利用SMO算法求解上述最优化问题
注:正常流程是根据对偶问题的解求出参数,没必要
利用KKT条件求,
第一种情况:
要么,要么
第二种情况:
要么,要么
于是,取一个。此时,,同时,
最终解得:
SVM算法流程:
训练流程:
输入:
目标函数:
限制条件:
计算,找一个
SVM测试流程:
输入测试样本,其中: