Remp(a)??L(y,f(x,a))iii?1nn (2.7)
来作为对式(2.3)的估算。
实际上用经验风险最小化原理来替代EMP是没有经过一些充分的理论的论证,而只是从直观上进行的合理的推算。但却在样本有限的情况下仍然有较好的识别效果,在没有经过理论保证的样本无穷大条件下所得到的学习机器。另外,大数定律只是一种说明在概率论中,在某些情况下,当样本数据趋于无穷大时,Remp(a)在概率意义上将会趋近于R(a),并且不能保证Remp(a)和R(a) 将会取得最小值在同一个点上。
2.1.3.结构风险最小化原理
在机器学习的过程中,对经验风险最小化原理以及其推广能力的相对分析的结论中得出,如果要得到良好的实际风险[19,20],依次可对未来样本产生较好的预测性,不仅要使其经验风险达到最小,而且还要使其VC维也要尽可能的小,从而来缩小置信范围。
事实上,经验风险最小化原理在当样本数据有限时是不合理的。在一些传统的学习方法当中,存在一些理论上的指导,普遍的做法都是根据经验和先验知识,采取人为的方法一次次的修改其算法和学习模型,从而来调整其置信范围,这种人为的方法一般比较适合于离线性训练在现有样本数据的情况下。如果当样本改变并且当样本数据更新了以后,继而出现所选择的模型将会出现了很大的偏差的问题,从而需要进一步的修改,于是就出现了一些自适应算法与其他算法等的修正算法,虽然出现了很多的算法但却从根本上没有解决问题。
如果存在一个比较复杂的,其置信范围较大的机器,即便是把经验风险最小化到零,其错误数目仍然有可能比较大在测试集上,这就是上文中所提到的过学习问题。所以为了防止出现过学习现象,就要构造一种在学习机器中VC维较小的方法,还要考虑的是如果函数集的VC维很小,则逼近真实的训练数据比较困难,这样就会出现了矛盾。随即又出现一个新的问题就是怎样能使这二者达到非常好的同一问题。
针对这两种矛盾,当构造学习机器的时候,可以采取两种不同的处理方法依据不同的侧重点:
1)首先制定一个确定复杂度的函数集合,并且实施经验风险最小化准则在此函数集合上。
在神经网络算法中,选择不同的网络算法结构依据需解决的问题和样本数据间
9
的具体情况。网络结构的容量随着结构算法模型的制定后亦为之确定,也就是明确了算法的置信范围,接着求出实际最小风险根据经验风险最小化准则。
2)确定一个经验误差最低底线,接着选择出VC维最小的函数集使其能够满足这个误差最低底线。
结构风险最小化原理的思路就是通过上述方法得到的。而支持向量机就是这种思路的具体实现,而且SVM只要清楚不同函数集的VC维的相对大小即可,不需要计算出VC维的具体大小的数值,
神经网路采取了保持置信范围恒定,并采取了使经验风险最小化的方法,支持向量机采取的是保持经验风险恒定不变或等于零,并采取了使置信范围最小化的策略。由此可以看出,支持向量机更侧重于对推广能力的良好获得。
对于SVM方法,在运用结构风险最小化准则时,为了使函数集VC维的大小方便比较,在文献[13]中提出了一种新的方法策略,即把函数集构造成一个函数的子集序列,并且让各个子集进行排列依据VC维的大小,这样置信范围就会在同一个子集中一样;并且寻找最小经验风险在每一个子集当中,一般其会随着子集复杂度的提高而随之减小。在子集当中选取经验风险最小Remp(a)与置信范围?(n/h)的之和最小的子集,将此作为期望风险最小化的模型。这种思想就是结构风险最小化原则(Structural Risk Minimization),简称SRM准则,其基本的思路[21,22]可以用下图2.3来表示:
风险
欠学习 过学习 真实风险界 置信范围 经验风险 h S1 S2 S3 图2.3 结构风险最小化示意图
10
从图2.3中可以看出结构风险最小化准则既是要选取合适的h,使经验风险和置信区间的和取得最小值。
有两个思路可以实现结构风险最小化准则:
1)求取最小经验风险值在每个子集当中,接着选取使置信范围和最小经验风险的和最小的子集。在对于子集数目不是很大的情况下,这种方法还可以行得通,但当子集数目趋向于无穷大情况时,这种方法就不可行了。
2)设计出函数集的某些模型使其在每个子集当中都能获得最小的经验风险,接着只需要采取适当的子集使置信范围达到最小,那么这个子集将使得置信范围和经验风险会同时达到最小。
支持向量机就是利用了第2个的思路实现了上述思想。
2.2 支持向量机
2.2.1SVM的理论基础
1)在传统的统计模式识别方法当中,只有在样本数据趋向于无穷大时,其识别性能才有理论上的保证。统计学习理论(STL)是研究在有限样本数据情况下的机器学习方法。支持向量机的理论基础就是基于统计学习理论;
2)传统的统计学习模式识别方法在进行学习时,是强调经验风险最小化准则。可是单一的经验风险最小化会产生“过学习问题”,导致其推广能力变得很差。推广能力也可以说是泛化能力[23,24,25],是学习机器(即预测函数,或称作学习函数、学习模型)对即将输出结果而进行正确的预测的能力,就是对未知测试样本数据进行预测时的精确度。“过学习问题”是在某些情况下,如果训练误差过小将反而会使其推广能力导致下降;
3)根据统计学习理论,由置信范围值和经验风险值两个部分组成学习机器的实际风险。而基于经验风险最小化准则的学习方法其推广能力会比较差是因为没有最小化置信范围值,而是只是注重了训练样本数据的经验风险最小误差;
4)而Vapnik所提出的支持向量机(Support Vector Machine--SVM)以置信范围值最小化作为其优化目标且以训练误差作为其优化问题的约束条件,即支持向量机是一种基于结构风险最小化准则的学习方法,从而使它的推广能力要明显的优于一些传统的机器学习方法;
5)由于SVM的解将是全局唯一的最优解,它的求解是最后转化为求解二次规划问题;
6)SVM可以使其推广运用到函数拟合等的其他机器学习问题当中,并在解决小样本情况、非线性情况及其高维模式识别问题中表现出了许多其独特的优势。
2.2.2 SVM方法的特点
11
(1)支持向量机的最终判别函数只是由少数的支持向量来确定的,计算的复杂性完全取决于其支持向量的数目,而不是样本数据空间的维数,因此,这在某种意义上避免了“维数灾难”问题。
(2)SVM的最终的结果将由少数的支持向量来决定,这不仅可以让我们“剔除”掉大量的冗余非支持向量样本、抓住关键样本数据,而且注定了此方法不仅是算法简单,而且是具有很好的“鲁棒”性,主要体现在:
1)增加和删除非支持向量样本数据对建立的模型没有直接的影响; 2)支持向量样本集具有一定的鲁棒性;
3)在一些相对成功的应用中,支持向量机方法对核函数参数的选取不敏感。
2.2.3 SVM基本原理
SVM是最新发展起来在统计学习理论的部分中,是Vapnik等人提出来的依据统计学学习理论中的结构风险最小化准则。Vapnik等在有限样本数据条件下机器学习当中的的部分根本性的问题进行了系统的理论研究,在支持向量机理论中取得了很好的解决,而且支持向量机还充分考虑到了其算法的推广性,因而统计学习理论和支持向量机被许多的人都认为是研究机器学习问题的一个框架。 2.2.3.1线性判别函数和判别面
线性判别函数(Discriminant Function)是指由x的各个分量的线性组合而成的函数。
g(x)?wTx?w0 (2.8)
对于两类问题情况的决策规则为: 如果g(x)>0,则判定x属于C1, 如果g(x)<0,则判定x属于C2,
如果g(x)=0,则可以将x任意分到某一类或者拒绝判定。如图2.4所示
图2.4 支持向量机分类原理图
下图2.5表示的是一个较简单的线性分类器,其具有d个输入单元,其中每个输入单元对应于一个输入向量在各维上的分量值。该图类似于神经网络中的一个神
12
经元。
g(x) output unit w0 wd w2 ….. ….. x1 x2 图2.5 SVM线性分类器
bias unit input units x0=l xd 其中方程g(x)定义了一个线性判定面,它把其中归类于C1中的点与归类于C2中的点分开来。
当g(x)是线性函数时,这个平面被称为“超平面”(hyperplane)。 但当x1和x2都在判定面上时即:
wTx1?w0?wTx2?w0 (2.9)
或者
wT(x1?x2)?0 (2.10)
这表示w和超平面上的任意向量正交,并且把w称作为超平面的法向量。其中:x1-x2表示超平面上的其中一个向量判别函数g(x)是一种代数度量,是其在特征空间中某点x到超平面距离。
总之:线性判别函数是利用一个超平面把特征空间分隔成不同的两个区域空间,其中由法向量w确定超平面的方向,其位置是由阈值w0来确定。判别函数g(x)与x点到超平面的代数距离(带正负号)是一种正比的关系。那么,如果x点在超平面的正侧时,则g(x)>0;如果x点在超平面的负侧时,则g(x)<0 。 2.2.3.2最优分类面
最优分类线(或最优分类面)就是要求分类线不但能将两类情况正确的分开(即训练错误率为0),而且使分类的间隔最大。将此推广到高维空间中时[26,27,28],最优分类线就变为最优分类面。距离最优分类超平面最近的向量称为支持向量。
13