软间隔支持向量机 [一种L2软间隔支持向量机的Matlab实现]

  摘 要: 通过将v-支持向量机的目标函数的L1正则化项变为L2正则化项,构造了一种L2软间隔支持向量机。通过引入拉格朗日乘数,构造拉格朗日函数,导出了L2软间隔支持向量机的对偶二次规划(Quadratic Programming, QP)形式。使用KKT(Karush-Kuhn-Tucker)条件,导出了L2软间隔支持向量机的软间隔ρ及偏置项b的表达式,并通过Matlab数学软件进行编程实现L2软间隔支持向量机的求解。
  关键词: v-支持向量机; L2软间隔支持向量机; KKT条件
  中图分类号: TP18 文献标识码: A 文章编号:2095-2163(2013)03-0085-02
  An Implementation of A L2 Norm Soft Margin
  Support Vector Machine on Matlab
  HUANG Chengquan
  (School of Science, Guizhou Minzu University, Guiyang 550025,China)
  Abstract: A L2 norm soft margin support vector machine is constructed by changing the L1 regularization term of the v-support vector machine objective function into L2 regularization term. By introducing Lagrangian multipliers and constructing Lagrangian function, the dual quadratic programming (QP) of the L2 norm soft margin support vector machine is derived. By using Karush-Kuhn-Tucker (KKT) conditions, the expressions of the soft margin ρ and the bias term b of the L2 norm soft margin support vector machine are deduced. Furthermore, the optimal solutions of the L2 norm soft margin support vector machine is implemented by Matlab math software.
  Key words: v- Support Vector Machine; L2 Norm Soft Margin Support Vector Machine; KKT Conditions
  0 引 言
  建立在统计学习理论上的支持向量机(Support Vector Machine, SVM)[1]是近年来机器学习、模式识别与人工智能、图像识别、生物信息学等领域的研究热点。SVM问题的对偶为一类二次规划(QP)问题,因此SVM问题的解为全局最优解。SVM建立在结构风险最小化基础之上,具有良好的泛化性和较高的分类精确性,并利用核映射将样本空间中的非线性可分问题转化为高维特征空间的线性可分问题,由此而实现对样本空间中的非线性可分问题有效研究。
  本文将v-支持向量机[2-4]的目标函数的L1正则化项变为L2正则化项,构造了一种L2软间隔支持向量机。通过使用KKT条件,推导得出了L2软间隔支持向量机的解的形式,并通过Matlab编程实现了L2软间隔支持向量机的求解。
  1 v-支持向量机
  设两类样本数据集X={xi|xi∈Rd},xi为列向量,yi∈{-1,1}为类标签,i=1,…,l,φ为数据样本空间X到高维特征空间的核映射。v-SVM为求解如下的优化问题
  其中,w为权重向量,b为偏置项,ξi为松弛变量,v∈(0,1]为预先选取的参数,ρ为软间隔,i=1,…,l。
  通过对式(1)引入拉格朗日乘数向量α=(α1.…,αl)T,并构造拉格朗日函数进行求解,得到(1)的对偶为二次规划:
  2 L2软间隔支持向量机
  容易看出,在v-支持向量机中,如果将目标函数(1)中的L1正则化项改变为L2正则化项,则可去掉松弛变量ξi的非负约束。基于此,本文提出的L2软间隔支持向量机是求解如下的优化问题,公式如下:
  其中,C为错分惩罚因子。
  与v-支持向量机求解类似,通过对式(3)引入拉格朗日乘子向量α=(α1,…,αl)T,构造拉格朗日函数为:
  (12)第3期 黄成泉:一种L2软间隔支持向量机的Matlab实现 智能计算机与应用 第3卷
  3 L2软间隔支持向量机Matlab实现
  在Matlab优化工具箱中提供了一个求解二次规划的函数quadprog[5],其标准调用形式为alpha=quadprog(H, f, A, b, AEQ, beq, LB, UB),有关该函数的详细用法,请参考Matlab帮助文档。Matlab中,quadprog函数是求解如下形式的二次规划:
  比较二次规划(9)和(13),不难得到二次规划(9)的Matlab调用形式。即
  Alpha_l2 = quadprog(H_L2, f_L2, A_L2, b_L2, AEQ_L2, beq_L2, LB_L2, UB_L2)
  其中,H_L2=KyyT+1CI, K=(φ(xi)Tφ(xj))l×l为和函数,I为单位矩阵, f_L2 =[],A_L2 =[],b_L2 =[],AEQ_L2 = ones(1,size(H_L2,1))为元素全为1的行向量,beq_L2 = 1,LB_L2 = zeros(size(H,1),1)为元素全为0的列向量,UB_L2 =[]。
  在确定核函数的形式并通过Matlab二次规划函数quadprog调用求得拉格朗日系数Alpha_l2后,即可使用L2软间隔支持向量机的输出函数g(x),得到新样本点x的输出。
  4 结束语
  通过将v-支持向量机的目标函数的L1正则化项变为L2正则化项,构造了一种L2软间隔支持向量机,并通过调用Matlab二次规划函数进行求解,实现了L2软间隔支持向量机对新样本点的输出。
  参考文献:
  [1]VAPNIC V N. 统计学习理论的本质[M]. 张学工,译. 北京: 清华大学出版社, 2000.
  [2]CHEN P H, LIN C J, SCHLKOPF B. A tutorial on v-support vector machines[J]. Applied Stochastic Models in Business and Industry, 2005, 21(2): 111-136.
  [3]CHANG C C, LIN C J. Training v-support vector classifiers: theory and algorithms[J]. Neural computation, 2001, 13(9): 2119-2147.
  [4]SCHLKOPF B, SMOLA A J, WILLIAMSON R C, et al. New support vector algorithms[J]. Neural computation, 2000, 12(5): 1207-1245.
  [5]GUSTAVSEN B. Computer code for passivity enforcement of rational macromodels by residue perturbation[J]. IEEE Transactions on Advanced Packaging, 2007, 30(2): 209-215.
  --------------------------------------------------------------------------------