论文部分内容阅读
摘要:以支持向量机(SVM)和传统统计分类方法为研究对象,详细介绍二者分类方法的基本理论,概述支持向量机的一些常用算法,并在改进共轭梯度迭代PRP-SVM基础上提出一种对任何SVM核通用的正交校正共轭梯度迭代的支撑向量机(CGM-OC-SVM)算法,并通过C语言编程实现了CGM-OC-SVM算法,利用Matlab进行算法模拟。
关键词:支持向量机;SVM;PRP-SVM;CGM-OC-SVM
中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)15-30814-02
A Algorithm of SVM for any Kernel
TAO Mei, Wushour·Silamu
(School of Information and Engineering Xinjiang University,Wulumuqi 830046, China)
Abstract: Taking support vector machines (SVM) and the traditional statistics classification method as the research object, introduces the classification method theory of SVM algorithms,and based on PRP-SVM,then puts forward the orthogonal adjustment conjugate gradient iteration algorithm of support vector machines (CGM-OC-SVM), meanwhile the CGM-OC-SVM algorithm is carried out by the C programming language,and doing a graphic simulation using Matlab.
Key words: Support vector machine; SVM; PRP-SVM; CGM-OC-SVM
1 引言
数据挖掘中,数据的分类与回归问题是其重要的研究对象。常用于分类和回归的方法,如Bayes 分类、Logistic 回归、神经元网络等在实现机器学习时,都是基于经验风险最小化原则的。然而,一般在有限样本的情况下,经验风险最小不一定意味着期望风险最小,在有些情况下会出现“过学习”和推广性不好等情况,得到的实验结果并不是很理想。
Vapnik 于上世纪90年代初提出的支持向量机(SVM),是数据挖掘中的一项新技术。它是在统计学习理论的基础上,借助于最优化方法解决机器学习问题的新工具。该算法是一个凸优化问题,即局部最优解就是全局最优解,这是其他学习算法所不及的。SVM 基于结构风险最小化原则,能很好地解决有限数量样本的高维模型构造和“过学习”问题,具有良好的推广性和较好的分类精确性,已被应用于人脸识别、医疗诊断等方面。
尽管SVM 的应用领域很广,但其理论研究还相对滞后,其中就包括算法本身改进和算法的实际应用。支持向量机分类器最终可以转化为解决一个二次规划问题,目前的研究大都集中于如何在训练数据较多的情况下来解决这个二次规划问题。现基于改进共轭梯度迭代PRP-SVM 算法的基础,提出一种对任何SVM 核通用的正交校正共轭梯度迭代支持向量机算法(CGM-OC-SVM),并通过程序实现此算法,利用Matlab进行算法结果的图形模拟。
2 支持向量机(SVM)
SVM与传统统计学的大样本量研究方向不同,它最大的特点是遵循“结构风险最小化原则”,尽量提高学习机的泛化能力,即由有限的训练样本集获得小的误差的特性,保证对独立的测试集有小的误差,从而解决了有限样本的“过学习”问题(即机器复杂性越高,则置信范围越大,导致真实风险与经验风险可能的差别越大)。目前,该技术已应用到手写体识别、人脸识别、指纹识别、语音识别、数据挖掘等领域。
SVM的核心理论包括:(1)VC维理论,不仅要使机器学习的经验误差最小,而且应该最小化函数集的VC维,从而控制学习机的结构误差,使SVM分类器具有较强的泛化能力;(2)引入最优超平面概念,使函数的VC维上届达到最小,而最优超平面问题可以转化为二次规划问题;(3)核空间理论,通过非线性映射将输入空间映射到高维特征空间,使低维输入空间线性不可分问题转化为高维特征向量空间线性可分问题,并通过核函数绕过高维空间,使计算在低维输入空间进行,从而不需知道非线性映射的具体形式。
2.1 线性SVM最优分界面
2.1.1 线性可分情况
假定训练数据为 个观测样本(x1,y1),(x2,y2)…(xn,yn),xi∈Rp,yi∈{+1,-1},则存在超平面(w·x)+b=0线性可分,使训练点中的正类输入和负类输入分别位于该超平面的两侧,或者说存在参数对(w,b),使得yi=sgn((w·xi)+b),i=1,…,n这样的超平面通常不止一个,因此,我们的目的是要找到一个最优分类超平面,使分类面经验风险最小(即错分最少),并且推广能力最大(即空白最大)。如图1中(a)、(b)所示:
图1 2-class分类
SVM问题的数学表示为:
2.1.2 线性不可分情况
2.2 非线性SVM最优分界面
在很多情况下,数据是线性完全不可分的,这就属于非线性划分问题。我们可以通过非线性映射将向量x映射到一个高维特征空间Z,在这个高维特征空间中构造最优平面或推广的最优分类超平面。即通过函数Φ:Rn→Z将所有样本点映射到高维空间,将原来的xi·xj变为Φ(xi)·Φ(yi)形式,记核函数K(xi,xj)=Φ(xi)·Φ(yi)。常见的满足Mercer条件的核函数有多项式核函数K(xi,xj)=[(xixj)+1]d和高斯径向基核函数(即RBF核)
该策略的主要思想是对N分类问题构建N个支持向量机,每个支持向量机负责区分本类数据和非本类数据。最后结果由输出离分界面w·b+b距离最大的那个支持向量机决定。
2.3.3 层次策略
该策略的主要思想是对N分类问题构建若干个支持向量机,且它们之间是有层次地连接成一个有向无环图的结构,分类结果根据图经过的若干个支持向量机的判别得到。
3 算法模拟
CGM-OC-SVM算法是用C语言编写的,并选择RBF核作为核函数,现应用该算法分别对平面上两点和多点训练样本点进行分类训练、算法模拟。
(1)设x,y平面上的2个训练样本点为α=(1,1),b=(2,3)
假设训练集为S={(a,-1),(b,1)},其中a是-1类点,b是+1类点。取核参数δ=1,惩罚参数C=2时,采用改进的CGM-OC-SVM算法求解得α*=(1,1),设定x,y平面上的一点为k=(x,y),分类函数为:,
内层迭代次数为1,外层迭代次数为1。利用Matlab分别作其三维、二维模拟图,见图3(a)和(b)。
图3
(2)设x,y平面上的5个训练样本点为a=(3,1),b=(4,2),c=(8,0.3),d=(2,3),e=(3,4)
假定训练集为S={(a,-1),(b,-1),(c,-1),(d,1),(e,1)},其中a,b,c是-1类点,d,e是+1类点。取核参数δ=1,惩罚参数C=2时,采用改进的CGM-OC-SVM算法求解得α*=(0.801222,0.799457,0.799498,1.200462,1.20044),设定x,y平面上的一点为k=(x,y),分类函数为:
内层迭代次数为1,外层迭代次数为1。利用Matlab分别作其三维、二维模拟图,见图4(a)和(b)。
图4
4 结束语
由于支持向量机是建立在统计学习理论的VC维理论和结构风险最小原理的基础上,根据有限样本在学习精度和学习能力之间寻求最佳折衷,因此具有最好的推广能力。提出的CGM-OC-SVM算法改进了PRP-SVM算法只能选择多项式核函数的缺点,具有通用性。
参考文献:
[1] 邓乃扬, 田英杰. 数据挖掘中的新方法——支持向量机[M]. 北京:科学出版社,2004.
[2] 张学工. 关于统计学习理论与支持向量机[J]. 自动化学报,2000,26(1).
[3] 黄琼英. 支持向量机多类分类算法的研究与应用[D]. 河北:河北工业大学,2005.
[4] E.Osuna, R.Freund, and F.Girosi Support Vector Machines: Training and Applications A.I. Memo 1602, MIT Artificial Intelligence Laboratory, 1997.
[5] Zhang Ling, Zhang Bo. Relationship between Support Vector Set and Kernel Functions in SVM, J.Comput.Sci.&Technol,2002,17(5):549.
[6] O Chapelle,V Vapnik et al.Choosing Multiple Parameters for Support Vector Machine[J]. Machine Learning,2002,46:131-159.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:支持向量机;SVM;PRP-SVM;CGM-OC-SVM
中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)15-30814-02
A Algorithm of SVM for any Kernel
TAO Mei, Wushour·Silamu
(School of Information and Engineering Xinjiang University,Wulumuqi 830046, China)
Abstract: Taking support vector machines (SVM) and the traditional statistics classification method as the research object, introduces the classification method theory of SVM algorithms,and based on PRP-SVM,then puts forward the orthogonal adjustment conjugate gradient iteration algorithm of support vector machines (CGM-OC-SVM), meanwhile the CGM-OC-SVM algorithm is carried out by the C programming language,and doing a graphic simulation using Matlab.
Key words: Support vector machine; SVM; PRP-SVM; CGM-OC-SVM
1 引言
数据挖掘中,数据的分类与回归问题是其重要的研究对象。常用于分类和回归的方法,如Bayes 分类、Logistic 回归、神经元网络等在实现机器学习时,都是基于经验风险最小化原则的。然而,一般在有限样本的情况下,经验风险最小不一定意味着期望风险最小,在有些情况下会出现“过学习”和推广性不好等情况,得到的实验结果并不是很理想。
Vapnik 于上世纪90年代初提出的支持向量机(SVM),是数据挖掘中的一项新技术。它是在统计学习理论的基础上,借助于最优化方法解决机器学习问题的新工具。该算法是一个凸优化问题,即局部最优解就是全局最优解,这是其他学习算法所不及的。SVM 基于结构风险最小化原则,能很好地解决有限数量样本的高维模型构造和“过学习”问题,具有良好的推广性和较好的分类精确性,已被应用于人脸识别、医疗诊断等方面。
尽管SVM 的应用领域很广,但其理论研究还相对滞后,其中就包括算法本身改进和算法的实际应用。支持向量机分类器最终可以转化为解决一个二次规划问题,目前的研究大都集中于如何在训练数据较多的情况下来解决这个二次规划问题。现基于改进共轭梯度迭代PRP-SVM 算法的基础,提出一种对任何SVM 核通用的正交校正共轭梯度迭代支持向量机算法(CGM-OC-SVM),并通过程序实现此算法,利用Matlab进行算法结果的图形模拟。
2 支持向量机(SVM)
SVM与传统统计学的大样本量研究方向不同,它最大的特点是遵循“结构风险最小化原则”,尽量提高学习机的泛化能力,即由有限的训练样本集获得小的误差的特性,保证对独立的测试集有小的误差,从而解决了有限样本的“过学习”问题(即机器复杂性越高,则置信范围越大,导致真实风险与经验风险可能的差别越大)。目前,该技术已应用到手写体识别、人脸识别、指纹识别、语音识别、数据挖掘等领域。
SVM的核心理论包括:(1)VC维理论,不仅要使机器学习的经验误差最小,而且应该最小化函数集的VC维,从而控制学习机的结构误差,使SVM分类器具有较强的泛化能力;(2)引入最优超平面概念,使函数的VC维上届达到最小,而最优超平面问题可以转化为二次规划问题;(3)核空间理论,通过非线性映射将输入空间映射到高维特征空间,使低维输入空间线性不可分问题转化为高维特征向量空间线性可分问题,并通过核函数绕过高维空间,使计算在低维输入空间进行,从而不需知道非线性映射的具体形式。
2.1 线性SVM最优分界面
2.1.1 线性可分情况
假定训练数据为 个观测样本(x1,y1),(x2,y2)…(xn,yn),xi∈Rp,yi∈{+1,-1},则存在超平面(w·x)+b=0线性可分,使训练点中的正类输入和负类输入分别位于该超平面的两侧,或者说存在参数对(w,b),使得yi=sgn((w·xi)+b),i=1,…,n这样的超平面通常不止一个,因此,我们的目的是要找到一个最优分类超平面,使分类面经验风险最小(即错分最少),并且推广能力最大(即空白最大)。如图1中(a)、(b)所示:
图1 2-class分类
SVM问题的数学表示为:
2.1.2 线性不可分情况
2.2 非线性SVM最优分界面
在很多情况下,数据是线性完全不可分的,这就属于非线性划分问题。我们可以通过非线性映射将向量x映射到一个高维特征空间Z,在这个高维特征空间中构造最优平面或推广的最优分类超平面。即通过函数Φ:Rn→Z将所有样本点映射到高维空间,将原来的xi·xj变为Φ(xi)·Φ(yi)形式,记核函数K(xi,xj)=Φ(xi)·Φ(yi)。常见的满足Mercer条件的核函数有多项式核函数K(xi,xj)=[(xixj)+1]d和高斯径向基核函数(即RBF核)
该策略的主要思想是对N分类问题构建N个支持向量机,每个支持向量机负责区分本类数据和非本类数据。最后结果由输出离分界面w·b+b距离最大的那个支持向量机决定。
2.3.3 层次策略
该策略的主要思想是对N分类问题构建若干个支持向量机,且它们之间是有层次地连接成一个有向无环图的结构,分类结果根据图经过的若干个支持向量机的判别得到。
3 算法模拟
CGM-OC-SVM算法是用C语言编写的,并选择RBF核作为核函数,现应用该算法分别对平面上两点和多点训练样本点进行分类训练、算法模拟。
(1)设x,y平面上的2个训练样本点为α=(1,1),b=(2,3)
假设训练集为S={(a,-1),(b,1)},其中a是-1类点,b是+1类点。取核参数δ=1,惩罚参数C=2时,采用改进的CGM-OC-SVM算法求解得α*=(1,1),设定x,y平面上的一点为k=(x,y),分类函数为:,
内层迭代次数为1,外层迭代次数为1。利用Matlab分别作其三维、二维模拟图,见图3(a)和(b)。
图3
(2)设x,y平面上的5个训练样本点为a=(3,1),b=(4,2),c=(8,0.3),d=(2,3),e=(3,4)
假定训练集为S={(a,-1),(b,-1),(c,-1),(d,1),(e,1)},其中a,b,c是-1类点,d,e是+1类点。取核参数δ=1,惩罚参数C=2时,采用改进的CGM-OC-SVM算法求解得α*=(0.801222,0.799457,0.799498,1.200462,1.20044),设定x,y平面上的一点为k=(x,y),分类函数为:
内层迭代次数为1,外层迭代次数为1。利用Matlab分别作其三维、二维模拟图,见图4(a)和(b)。
图4
4 结束语
由于支持向量机是建立在统计学习理论的VC维理论和结构风险最小原理的基础上,根据有限样本在学习精度和学习能力之间寻求最佳折衷,因此具有最好的推广能力。提出的CGM-OC-SVM算法改进了PRP-SVM算法只能选择多项式核函数的缺点,具有通用性。
参考文献:
[1] 邓乃扬, 田英杰. 数据挖掘中的新方法——支持向量机[M]. 北京:科学出版社,2004.
[2] 张学工. 关于统计学习理论与支持向量机[J]. 自动化学报,2000,26(1).
[3] 黄琼英. 支持向量机多类分类算法的研究与应用[D]. 河北:河北工业大学,2005.
[4] E.Osuna, R.Freund, and F.Girosi Support Vector Machines: Training and Applications A.I. Memo 1602, MIT Artificial Intelligence Laboratory, 1997.
[5] Zhang Ling, Zhang Bo. Relationship between Support Vector Set and Kernel Functions in SVM, J.Comput.Sci.&Technol,2002,17(5):549.
[6] O Chapelle,V Vapnik et al.Choosing Multiple Parameters for Support Vector Machine[J]. Machine Learning,2002,46:131-159.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。