支持向量机(support vector machine, SVM),相比于传统的BP神经网络,是一种新的机器学习方法,其基础是Vapnik创建的统计学习理论(statistical learning theory,STL)。
统计学习理论采用结构风险最小化(structural risk minimization, SRM)准则,在最小化样本点误差的桶水,最小化结构风险,提高了模型的泛化能力,且没有数据维数的限制。
在进行线性分类时,将分类面取在离两类样本距离较大的地方
进行非线性分类时通过高维空间变换,将非线性分类变成高维空间的线性分类问题
目标是寻找满足约束条件下的最优分类超平面
数学语言的问题描述:
该问题可以通过求解Largrange函数的鞍点得到,即
Φ ( w ⃗ , b ⃗ , α i ) = 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 − ∑ i = 1 l α i [ y i ( w ⃗ x ⃗ i + b ) − 1 ] \Phi(\vec w,\vec b,\alpha_i)=\frac{1}{2}||\vec w||^2-\sum_{i=1}^l\alpha_i[y_i(\vec w\vec x_i+b)-1] Φ(w,b,αi)=21∣∣w∣∣2−∑i=1lαi[yi(wxi+b)−1], 其 中 , α i > 0 , i = 1 , 2 , . . . , l , 为 L a r a n g e 系 数 其中,\alpha_i>0,i=1,2,...,l,为Larange系数 其中,αi>0,i=1,2,...,l,为Larange系数
依据Largrange对偶理论将上式转化为对偶问题,即
设最优解 α ⃗ ∗ = [ α 1 ∗ , α 2 ∗ , … , α l ∗ ] \vec \alpha^*=[\alpha_1^*,\alpha_2^*,\dots,\alpha_l^* ] α∗=[α1∗,α2∗,…,αl∗],则可以得到最优的 w ⃗ ∗ \vec w^* w∗和 b ∗ b^* b∗为
其中 x ⃗ r \vec x_r xr 和 x ⃗ s \vec x_s xs为林哥类别中任意的一对支持向量
分类原理
对于非线性不可分的问题,通过非线性映射 ϕ : R d − H \phi:R^d-H ϕ:Rd−H,将原输入空间R的样本映射到高维的特征空间H中,再在高维特征空间H中构造最优分类超平面,如下图所示:
高维特征空间中寻求最优分类超平面的过程及方法与线性可分SVM情况类似,只是以核函数取代了高维特征空间中的点积,从而大大减少了计算量与复杂度。
核函数公式:
映射到高维特征空间后对应的对偶问题变为:
设求解到的最优解是 α ⃗ ∗ = [ α 1 ∗ , α 2 ∗ , … , α l ∗ ] T \vec \alpha^*=[\alpha_1^*,\alpha_2^*,\dots,\alpha_l^* ]^T α∗=[α1∗,α2∗,…,αl∗]T,则可以得到最优的 w ⃗ ∗ \vec w^* w∗为
从而最终的最优分类函数为
解中将只有一部分(通常是少部分)不为零,非零部分对应的样本 x ⃗ i \vec x_i xi就是支持向量,决策边界仅由支持向量确定。
支持向量机的结构
支持向量机的结构与神经网络的结构较为类似,如下图
输出是中间结点的线性组合,每个中间结点对应一个支持向量
常用的核函数:
线性核函数, K ( x ⃗ , x ⃗ i ) = x ⃗ i x ⃗ K(\vec x,\vec x_i)=\vec x_i\vec x K(x,xi)=xix
d阶多项式核函数, K ( x ⃗ , x ⃗ i ) = ( x ⃗ i x ⃗ + 1 ) d K(\vec x,\vec x_i)=(\vec x_i\vec x+1)^d K(x,xi)=(xix+1)d
径向基核函数, K ( x ⃗ , x ⃗ i ) = exp ( − ∣ ∣ x ⃗ − x ⃗ i ∣ ∣ 2 σ 2 ) K(\vec x,\vec x_i)=\exp(-\frac{||\vec x-\vec x_i||}{2\sigma^2}) K(x,xi)=exp(−2σ2∣∣x−xi∣∣)
具有参数 k k k和 θ \theta θ的Sigmoid核函数, K ( x ⃗ , x ⃗ i ) = t a n h ( k ( x ⃗ i x ⃗ ) + θ ) K(\vec x,\vec x_i)=tanh(k(\vec x_i\vec x)+\theta) K(x,xi)=tanh(k(xix)+θ)
为了利用SVM解决回归拟合方面的问题,Vapnik等人在SVM分类的基础上引入了不敏感损失函数,从而得到了回归型支持向量机(Suport Vector Machine for Regression,SVR)
SVM应用于回归拟合分析时,其基本思想不再是寻找一个最优分类面使得两类样本分开,而是寻找一个最优分类面使得所有训练样本离该最优分类面的误差最小
问题约束条件:
依据Largrange对偶理论将上式转化为对偶问题,即
可以得到最优的 w ⃗ ∗ \vec w^* w∗和 b ∗ b^* b∗为
最终得到的最优分类函数是
支持向量机仅限于处理二分类问题,对于多分类问题,主要是通过组合多个二分类SVM来实现多分类SVM的构建,常见的方法有一对一和一对多
一对一(one against one)
一对一在K类训练样本中构造所有可能的二分类SVM,即将每类样本与其它类别的样本分别构成二分类问题,共构造 K ( K − 1 ) 2 \frac{K(K-1)}{2} 2K(K−1)个二分类SVM。测试样本经过所有的二分类SVM进行分类,然后对所有类别进行投票,得票最多的类别(最占优势的类别)即为测试样本所属的类别
一对多
一对多有K个二分类SVM组成,第 i ( i = 1 , 2 , … , K ) i(i=1,2,\dots,K) i(i=1,2,…,K)个 二分类SVM将 i i i类训练样本的类别标记为+1,而将其余所有训练样本的类别标记为-1。测试样本经过所有二分类SVM进行分类,然后根据预测得到的类别标号判断是否属于第 i ( i = 1 , 2 , … , K ) i(i=1,2,\dots,K) i(i=1,2,…,K)个类别