支持向量机分类法 请教ENVI 的支持向量机(SVM)分类方法
分类问题和回归问题都要根据训练样本找到一个实值函数g(x). 回归问题的要求是:给定一个新的模式,根据训练集推断它所对应的输出y(实数)是多少。也就是使用y=g(x)来推断任一输入x所对应的输出值。分类问题是:给定一个新的模式,根据训练集推断它所对应的类别(如:+1,-1)。也就是使用y=sign(g(x))来推断任一输入x所对应的类别。综上,回归问题和分类问题的本质一样,不同仅在于他们的输出的取值范围不同。分类问题中,输出只允许取两个值;而在回归问题中,输出可取任意实数。
envi 中几种分类方法的参数设置方法如下:
1、平行六面体
(1)在主菜单中,选择Classification->Supervised->Parallelpiped,在文件输入对话框中选择TM分类影像,单击OK按钮打开Parallelpiped参数设置面板。
(2)SelectClasses from Regions:单击Select All Items按钮,选择全部的训练样本。
(3)Set Max stdev from Mean:设置标准差阈值,有三种类型:
l None:不设置标准差阈值;
l Single Value:为所有类别设置一个标准差阈值;
l Multiple Values:分别为每一个类别设置一个标准差阈值。
选择Single Value,值为3。
(4)单击Preview,可以在右边窗口中预览分类结果,单击Change View可以改变预览区域。
(5)选择分类结果的输出路径及文件名。
(6)设置Out Rule Images为Yes,选择规则图像输出路径及文件名。
(7)单击OK按钮执行分类。
2、最小距离
(1)在主菜单中,选择Classification->Supervised-> Minimum Distance,在文件输入对话框中选择TM分类影像,单击OK按钮打开Minimum Distance参数设置面板。
(2)SelectClasses from Regions:单击Select All Items按钮,选择全部的训练样本。
(3)Set Max stdev from Mean:设置标准差阈值,有三种类型:
l None:不设置标准差阈值;
l Single Value:为所有类别设置一个标准差阈值;
l Multiple Values:分别为每一个类别设置一个标准差阈值。
选择Single Value,值为4。
支持向量机(Support Vector Machine,SVM)分类过程是基于Vapnik和Cher- vonenkis提出的统计学习理论(Statistical Learning Theory,SLT),Vapnik对SVM进行了详细的讨论(Vapnik,1995;Shah et al.,2003;Mahesh et al.,2004;李海涛等,2007;张兵等,2011)。支持向量机(SVM)分类的主要思想是寻找最优分离超平面(Optimal Separating Hyperplane,OSH),将两类样本无错误的分开,并使分类空隙最大,如图2.2所示。记H为最优分离超平面,H1和H2之间的距离M为分类间隔。
图2.2 最优分离超平面和支持向量机的最大边缘
支持向量机用来解决非线性问题,它是通过如图2.2(a)所示的核函数Φ(x)表示的非线性变换把非线性问题转换成高维数的线性问题,在这种线性变换特征空间中可以获得最优分离超平面,支持向量机方法正是基于这种从线性可分情况下的最优分类面提出的。结合二分类问题,可以通过线性超平面把给定数据集划分成两类,如图2.2(b)所示。因此,支持向量机针对两种感兴趣区域的最大边缘,并在它们之间设置了一个线性分离超平面,以此拓展到高维空间线性分离超平面发展成为最优分离超平面。
图2.2中实心点和空心点分别表示两类的样本,H为分类线,H1和H2分别为过各类样本中距离分类线最近的点且平行于分类线的直线,它们之间的距离叫做分类空隙或分类间隔(margin)。所谓最优分类线就是要求分类线不但能将两类正确分开,而且要使分类间隔最大。前者是保证经验风险最小(为0),分类间隔最大实际上就是使推广性的界中的置信范围最小,从而使真实风险最小。推广到高维,最优分类线就成为最优分类面。
支持向量机的目标就是寻求一个超平面,它能否联合核函数来分离数据,以便于使所有具有相同标签的点能归类到超平面的同一侧。假设训练数据集是线性可分的k个训练样本组成,这些样本表示为(xi,yi)(i =1,…,k),其中x∈Rn是各个样本的n维数据矢量,并且属于两类中标以yi∈ {-1,+1}的任何一类(类别标签)。支持向量机就是找到n维空间中由g(x)=w·x+b定义的线性判定函数。分类超平面(OSH)方程如下:
高光谱遥感影像信息提取技术
假如矢量w和尺度b能够确定的话,判定函数式(2.5)和式(2.6)能够被满足,则这些训练的模式被称为可线性分离:
高光谱遥感影像信息提取技术
即使两类所有样本都满足|g(xi)|≥1,距离分类面最近的样本的|g(xi)|=1,这样分类间隔就等于2/w,因此使间隔最大等价于使w(或||w‖2)最小;而要求分类线对所有样本正确分类,就是要求它满足:
高光谱遥感影像信息提取技术
因此,满足条件式(2.4)且使‖w‖2最小的分类面就是最优分类面。过两类样本中距离分类面最近的点且平行于最优分类面的超平面H1、H2上的训练样本就是式(2.4)中使等号成立的那些样本,称之为支持向量(Support Vectors)。因为它们支撑了最优分类面,如图2.2中H1、H2上标出的点。
根据上面的讨论,最优分类面问题可以表示成如下的二次规划问题,即在条件式(2.7)的不等式约束下,求函数
高光谱遥感影像信息提取技术
的最小值。为此,可以定义如下的拉格朗日(Lagrange)函数:
高光谱遥感影像信息提取技术
其中,ai>0为Lagrange系数,下面对w和b求Lagrange函数的极小值。把式(2.9)分别对w和b求偏微分并令它们等于0,就可以把原问题转化为如下这种较简单的对偶问题,在约束条件:
高光谱遥感影像信息提取技术
对ai求解下列函数的最大值:
高光谱遥感影像信息提取技术
若 为最优解,则
高光谱遥感影像信息提取技术
上式表明最优分类面的权系数向量是训练样本向量的线性组合。
这是一个不等式约束下二次函数求极值问题,存在唯一解。且根据Kuhn-Tucker条件,这个优化问题的解须满足:
高光谱遥感影像信息提取技术
因此,对多数样本ai*将为零,取值不为零的 对应于使式(2.7)等号成立的样本即支持向量,它们通常只是全体样本中的很少一部分。
基于最优分类面的分类规则就是解上述问题得到的最优分类函数:
高光谱遥感影像信息提取技术
式中:sgn()为符号函数。由于非支持向量对应的ai均为零,因此式(2.14)中的求和实际上只对支持向量进行。b*是分类的域值,可以由任意一个支持向量用式(2.7)求得,或通过两类中任意一对支持向量取中值求得。最优分类面是在线性可分的前提下得到的,在线性不可分的情况下,就是某些训练样本不能满足条件式(2.7)时得到的最优分类面,称之为广义最优分类面。因此可以在式(2.7)中增加一个松弛项εi≥0,成为:
高光谱遥感影像信息提取技术
广义最优分类面问题可以进一步演化为在条件式(2.15)的约束下求下列函数的极小值:
高光谱遥感影像信息提取技术
式中:C>0是某个指定的常数,它用来控制对错分样本惩罚的程度,实现在错分样本的比例与算法复杂度之间的折中。
广义最优分类面的对偶问题与线性可分情况下几乎完全相同,只是约束条件式(2.10)变为:
高光谱遥感影像信息提取技术
实际求解最优化问题和计算分类平面时,只涉及训练样本之间的内积运算(xi,yi),即只需计算核函数K(x · x′)。目前常用的核函数有线性核函数、多项式核函数、高斯径向基核函数(RBF核函数)和Sigmoid核函数等。