分享到:收藏推荐 1、引言支持向量机是由Vapnik等人于20世纪90年代研究并迅速发展起来的一种基于统计学习理论的机器学习方法,以往困扰机器学习方法的很多问题在这里都得到了一定程度的解决。但是,SVM在也存在一些局限性,比如:SVM的性能很大程度上依赖于核函数的选择,但没有很好的方法指导针对具体问题的核函数的选择,而参数选取的好坏将直接影响着分类器泛化性能好坏,本文对支持向量机核函数与参数的选择进行比较分析,在最后进行总结。2、核函数的种类把原问题空间中的训练样本变成特征空间中线性可分的训练样本,是核函数在SVM中所起的最基本作用,因此核是SVM方法的关键所在。目前得到研究的核内积函数形式主要有下面四种:①线性内核②多项式内核③径向基(RBF)内核④S形内核核函数的形式及其参数的确定决定了分类器类型和复杂程度,由于目前常用的核只有有限的几种,所以选择核函数的一种比较可行的方法是:对每一种核选用某种方法选出其对应的最佳核参数,然后再比较哪种核最好。3、参数的选取在实际应用中,选用参数要根据识别任务来确定。
由于CUDA调试工具的不完善、CUDA调试工具上手难度较高,并行思想本身就难调试等因素,CUDA调试一直都是一件很蛋疼的事情。写CUDA也有三四年了,前段时间在群里见别人问CUDA调试的问题,突然有想法写个CUDA调试的博客。自己经验尚浅,希望各位大大看过后能够在评论里指点一二,共同完善这篇博客。
本博客只针对逻辑bug。
1 定位bug
出现bug的第一想法自然是定位bug。cuda比较奇特的地方在于,有时报错bug在500行,但500行出的代码没有错误,而是在1000行的地方逻辑错了,十分头疼。
下面介绍三种我总结的定位bug方法:
11 二分法
一半一半的注释代码,定位bug。比较笨拙和麻烦,但是十分好用。
12 输出定位法
将整体代码分为几个模块,正常的CUDA代码大概可以分为数据初始化,内存申请,内存拷贝,核函数执行,结果拷贝等模块。在每个模块结束后输出标志,示例如图1。这样在调试时就可以根据输出快速定位bug大约在什么位置。如下图:
13 调试工具
对于部分bug,可以用调试工具更快速的定位。
在linux下,对于访存越界等问题,cuda gdb可以直接定位在崩溃那一行。
win下是Nsight,我不熟悉nsight,求大神补充。
2 解决bug
比较简单的bug,定位后基本就一眼就解决了。但对于复杂的bug,还是比较费劲的。
21 调试工具
单步调试,打断点。无论是cuda gdb还是Nsight,都可以定位到某一个线程上进行调试,可以说是非常强大。cuda gdb和nsight都有英文官方文档,建议大家都学一学,熟练后调试事半功倍。
但因为大量线程随机并行执行,有时并不知道该定位到哪个线程上;线程调试不容易控制;定位到单线程调试比较费劲,费时间;教程少(虽然有官方文档),上手难度较大一些。这些都是CUDA调试工具没有被广泛接受的原因。
22 缩小数据量或线程数并在核函数中打印
大量线程并行是导致CUDA调试难度大的最大原因,尽量的减少并行量是一个非常好的降低调试难度的办法。“小并行”甚至“串行”能够大大方便调试。
在Fermi以后的架构中,可以在核函数中使用printf。
在合理范围内缩小数据量,进而减少线程数,比如输入图像大小改为1616。或者修改线程为<<<1,1>>>,printf打印,看是否与预期结果相同。
3 预防bug
每一个写CUDAer大概都有花几个小时甚至几天调一个bug的经历。既然bug这么难调,那么预防bug就显得尤其重要了。
31 写代码前一定要完全构思好架构
社会快速发展,人的心也变得着急了。写CUDA代码之前,一定要沉得住气,多花点时间在纸上构思代码,将代码模块化,哪里容易出问题,哪里该写输出,哪里该检查。
32 函数返回结果检查
函数返回结果检查能够非常好的定位bug,是基本的编程意识。
虽然代码可能看起来会比较冗余,示例如下,也可以参考cuda sample里的代码。
33 函数输入检查
在调用比较重要的函数时,建议用assert检查输入参数与预期值是否相同。
34 核函数内检查
举个例子,遇到的情况是在拷贝shred memory时,拷贝逻辑比较复杂。此时可以写一个检查函数,以保证拷贝的正确性。
核函数内代码如下:
在分类问题中,有一些数据在地位空间里面是线性不可分的,但是我们把这一些数据映射到高维空间,我们就可以找到一个线性超平面,将两类数据线性分类。那么这样把低维空间的data映射到高维空间的方法我们称之为核方法
类比于降维,降维是将高维空间的data保留其最大特征,然后将其投影到低维空间;而核方法则是将低维的data映射到高维空间。
正如前言所说的,线性化的方法往往最为直接,简单。例如在回归问题中,线性回归无疑是最简单的方式,但是往往很多时候我们得到的并不是直接的线性关系,通常需要我们对数据做一些变形,比方说对决策变量和响应变量做一些函数变化后,使其满足线性关系;或者根据散点图估算非线性的函数关系式,利用非线性最小二乘法估计参数,并评价模型效果。
对于分类问题来说,常见的例如SVM,我们需要在空间中找到一个线性的超平面来对你对data进行而分类,有一些情况可以进行线性分类,但是有一些不能进行线性分类。而不能线性分类又可以看成两种,一种是完全不可以线性分类,一种是在当前维度的空间无法线性分类,但是在高维空间里面可以进行线性分类(在数学上证明过的)。
比方说上图,在二维空间内是无法线性可分的,但是我们通过观察发现Tumor和Normal又是可分开的,那么我们需要把数据映射到高维空间上,在高维空间中寻找到一个超平面,线性分类这两个group
比方说将二维数据通过高斯核函数映射到三维:
高斯核的表达式为:
对于高斯核函数,我们怎么把低维数据映射到高维呢?借助泰勒公式:
比方说我们想将二维data通过高斯核函数转换成三维data,我们将泰勒展开式取2阶就可以了,假设在二维平面内我们有x这个点(x1,x2表示二维坐标):
部分参考:
透彻理解高斯核函数背后的哲学思想与数学思想
松散含水层含水量预测模型的建立,主要是将预测松散含水层含水量问题转化为利用支持向量机求解的数学模型,主要包括如下4个步骤:
1)选取训练集T={(x1,y1),…,(xl,yl)}∈(x×y')。
2)选择适当的核函数K(x,x′),如线性核函数、径向基核函数、多项式核函数和Sigmoid核函数。
3)确定支持向量机中的参数,如C,ε,γ等。
4)建立模型。
(一)训练集的选取
1预测基本输入特征量
选取合适的训练集,对于建立松散含水层含水量预测模型是非常重要的,本课题对预测模型输入特征量的选取遵循以下原则:
1)现有物探仪器设备可测、或可转换参数,具有实用性和可观测性。
2)要与所研究地下含水层结构的综合物探方法相配套,充分挖掘所获观测数据的信息资源。
3)优化组合,兼顾所利用的输入特征量间的互补性,避免或减少冗余性。
4)保障预测模型具有广泛的推广能力。
建模时要把所有的数据分为训练集和测试集,根据训练集,求出决策函数,而用测试集测试所得决策函数的准确率。那么选择一个合适的训练集,第一要满足训练集中的样本点数量不能过多,也不能太少;第二训练集中所含特征向量不能太少,如果太少则不能够反映实际情况,影响分类或者回归的准确性,但也不能太多,否则会增加计算难度,甚至影响训练速度和时间。除了样本点多少的选择以外,还要在数据中不能选择过多的属性。属性选择要达到以下3个目的:首先是确认哪些属性与预测输出特征量相关的特性;其次是尽量降低输入空间维数,缩小求解问题的规模;最后是提高准确率,得到更好的决策函数。
基于上述原则,将支持向量机预测模型的预测输入基本特征量选定为:反演电阻率值ρ、反演含水层厚度H,半衰时Th,衰减度D,视极化率ηs,纵波速度v等地面物探观测参数作为基本输入特征量讨论。
为了验证上述输入特征量选择原则的正确性,选择了石家庄市西马庄水源地现有电测深资料与单孔单位涌水量资料并进行了秩相关性分析,原始数据见表5-1所示。分析结果如表5-2所示。
表5-1 西马庄原始数据
表5-2 西马庄电性参数与涌水量相关分析
2综合性参数的引入
鉴于第四纪含水层一般呈高阻性,在电测深反演解释过程中易产生hT等值现象的解释误差。依据含水层的富水性对应于一定的电阻率值,而单孔单位涌水量既与含水层富水性有关,又与其厚度有关。为了尽可能消除因等值现象导致解释所产生的误差,又能使输入特征量与预测量有更为密切的相关性,使预测模型具有良好的推广能力,对此,将电测深反演后的含水层电阻率与其层厚度相乘作为一个输入特征量T″,该特征量T″与含水层单孔单位涌水量相关分析结果表明,二者有更为密切的相关性,见表5-3所示。
表5-3 综合参数与涌水量相关分析
考虑到不同的地区地下水所含矿化度的不同,因其孔隙水的导电性不同,将会导致同类富水层电阻率有较大差别。为了消除孔隙水的导电性对预测精度的影响,突出含水层有效孔隙度特征,基于,ρ=αΦ-ms-nρw引入了相对综合因子参数T″,其表达式为
含水层含水量预测综合物探技术
式中:ρf为孔隙流体的电阻率;ρt为岩石的电阻率;H为含水层厚度。
从而将原基本输入特征量ρ和H组合为一个输入特征量T″。
3激发比的引入
考虑到激发比可以放大激电异常,对第四系含水层有更为灵敏的反应。因此将激电模型里的极化率、衰减度参量用激发比参量代替,其表达式为J=ηsD。由表5-4和表5-5可知,激发比的引入,改善了模型预测精度。
表5-4 未引入激发比模型预测结果
表5-5 引入激发比模型预测结果
4输入特征量的归一化
由于各输入特征量的量度差异较大,在用支持向量回归机进行建模训练和使用时,有必要对输入特征量进行归一化。归一化是指将属性数据按比例缩放,使之落入一个小的特定区域,如[-1,1]或[0,1]范围内。
归一化可以帮助防止具有较大初始值域的属性与具有较小初始值域的属性相比,权重差距过大。本次所建模型采用最小-最大规范化方法:将输入特征量归一化到[0,1]范围内。归一化公式为
含水层含水量预测综合物探技术
式中:x为某个输入参数对应的值;xmin和xmax分别为该项特征量的设置最小值和最大值;xs为该输入参数的归一化值。
5预测输入特征量的优选
在基本预测输入特征量归一化处理的基础上,需要进一步研究特征量组合结构的优化性问题,即确定预测模型最佳输入特征量的数量和成分。
通过电测深找水实践证明:
第四纪地下含水层结构对应特定的电测深异常特征,所获取的地电参数与单孔涌水量均存在着一定的对应关系,但深入研究还表明:作为预测输入量而言,每一参量与单孔涌水量间存在着不同的相关性,输入量相互之间可能还存在着冗余成分,为提高预测模型的预测精度和模型运算速度,探讨上述地电参量与地下水单孔涌水量的相关性和输入特征量的最佳组合问题,揭示地电参数与地下含水层含水量的内在关联是十分必要的,也是确定预测模型输入特征向量的基础。
鉴于地电参数与地下含水层含水量间不存在明确的函数关系,在优化分析过程中,以石家庄市西马庄水源地的已知8眼井孔的资料为基础,将现有的已知特征量参数:T″,Th,D,ηs及激发比J作为分析对象,利用高斯径向基核函数,C=1024,ε=05,γ=10和ε-SVR模型进行7+1循环式训练-预测方式。其分析结果如表5-6所示。
由表5-6所列预测精度可得到以下结论:
表5-6 特征量的优化分析表 单位:%
第一,随着特征数量的增大,其预测精度得到提高,四个特征量预测精度最好;
第二,若采用三个特征量时,其中的T″,Th,D组合最佳,其次为T″,D,ηs。以上结论对建模时输入特征量的优化筛选提供了重要的参考依据。
6预测模型输入特征量的确定
基于上述分析,针对研究对象的尺度及精度要求,建立了4种预测模式。对于不同的预测模型,分别确定了其输入特征量。
模型一:输入特征量为含水层的反演电阻率ρ、隔水层的反演电阻率ρ隔、含水层厚度h、含水层层数n和井孔孔径φ。该模型主要用于对精度要求不高的区域水文地质调查。
模型二:输入特征量为含水层的反演电阻率ρ、隔水层的反演电阻率ρ隔、视极化率ηs、含水层的半衰时Th、含水层厚度h、含水层层数n和井孔孔径φ。该模型主要用于专门性水文地质调查。
模型三:输入特征量为含水层的反演电阻率ρ、隔水层的反演电阻率ρ隔、视极化率ηs、半衰时Th、衰减度D、含水层厚度h、含水层层数n和井孔孔径φ。该模型主要用于对精度要求较高但探测深度要求不高的地下水源评价与开发工作。
模型四:输入特征量为含水层的反演电阻率、ρ隔水层的反演电阻率ρ隔、视极化率ηs、纵波波速v、含水层厚度h、含水层层数n和井孔孔径φ。该模型主要用于对精度要求较高,探测深度较深的地下水源评价与开发工作。
(二)核函数的选择
在建立预测模型过程中,需要选择函数K(·,·),即选择一个映射φ(·),把x所在的输入空间x映射到另一个空间H。H是一个Hilbert空间,即可以是有限维空间也可以是无穷维空间。因此核函数方法的核心内容就是采用非线性变换φ将n维矢量空间中的随机矢量x映射到高维特征空间,在高维特征空间中设相应的线性学习算法,由于其中各坐标分量间的相互作用只限于内积,因此不需要知道非线性变换φ的具体形式,只要利用满足Mercer条件的核函数替换线性算法中的内积,就能得到原输入空间中对应的非线性算法。
支持向量回归机中的核函数对于预测模型的推广能力产生直接的影响,在选取核函数时,通常采用的方法有:一是利用专家的先验知识预先给定核函数;二是采用Cross-Validation方法,即在核函数选取时,分别试用不同的核函数,归纳预测误差最小的核函数就是最好的核函数。在本课题中我们采用了第二种方法进行核函数的选择。
为使确定的核函数具有最佳的预测效果,首先要对相应的核数的参数进行优化筛选。由(5-20),(5-22),(5-24)式可见,径向基核函数需要确定1个核参数,即系数γ;Sigmoid核函数需要确定2个参数,分别为:系数γ和常数r;多项式核函数需要确定3个参数,分别为:阶数d、系数γ和常数r。
在筛选过程中,将石家庄市西马庄水源地的井旁电测深成果和抽水试验数据作为研究基础,具体数据详见表5-1所示。
将其划分为两个子集,即一个训练集和一个预测验证集。由此对上述每一种核函数利用已确定的训练集进行建模参数优化筛选。具体方法为:对于径向基函数采取了交叉验证和网格搜索的方法,多项式核函数和Sigmoid核函数采用了试凑法。
试验一:径向基核函数交叉验证对石家庄西马庄水源地8眼井作试验数据,选出7个作为训练样本,一个不参加训练的样本。再将选出的7个训练样本随机分为3组,选择其中两组进行训练,另外一组作为验证,这样一个接一个,进行3次。每次验证时,尝试所有的参数对,计算其交叉校验的平均性能MSE,最后以模型在3次验证数据上的性能平均值作为这一学习参数下的模型性能,然后循环8次,从而确定最佳参数值范围。确定的搜索范围分别为C(2-10,215),ε(2-10,23),γ(2-10,210)。为了增加搜索速度,我们步长选择的是2的指数倍。最终确定参数C=1024,ε=05,γ=1。
试验二:多项式核函数试凑法
借鉴试验一的分析结果,选择参数C=1024,ε=05。在选取核参数之前,我们需要对多项式核的阶数d做出限定,选择的阶数不易过大,如阶数太大,不仅增加了学习模型的复杂性,易出现“过拟合”现象,导致SVM的推广性能降低。因此,规定d的取值不超过4。另外对γ和r做了初步筛选,圈定了其范围分别为:γ∈[1,4];r∈[01,1]。然后采用阶梯式搜索分别找出最优的阶数d、系数γ和常数r;
首先进行阶数d的选择,设定参数γ=1,r=02;从8眼井中选出7个作为训练样本,d依次选择1、2、3、4进行训练,预测那个没有参加训练的样本,循环8次然后将预测结果进行对比。本文采用两个误差指标来衡量模型的预测效果:均方误差(MSE)和平均绝对百分比误差(AMPE),其表达式分别为
含水层含水量预测综合物探技术
式中: 为预测值;xi为实测值;N为试验次数,这里N取8。
由表5-7可以看出:当d=3或d=4时,预测精度相近,但考虑到阶数越大,学习模型的复杂性越大,因此选取d=3最佳参数。
表5-7 不同阶数多项式核函数对预测结果影响统计表
然后进行系数γ选择,设定参数d=3,r=02;γ依次选择1、2、3、4进行训练,然后将预测结果进行对比,可知γ=1为最佳参数(表5-8)。
表5-8 不同γ多项式核函数对预测结果影响统计表
最后进行常数r的选择,设定参数d=3,γ=10;r依次选择02、04、06、08和1进行训练,然后将预测结果进行对比,可知r=08为最佳参数(表5-9)。
表5-9 不同r多项式核函数对预测结果影响统计表
最终确定参数d=3,γ=1,r=0。
试验三:Sigmoid核函数试凑法
选取石家庄西马庄水源地8眼井作试验数据,仍借鉴试验一的分析结果,选择参数C=1024,ε=05。
对γ和r做了初步筛选后,确定γ为01;圈定r∈[001,1]。下边对参数r进行精细选择,设定r值分别为:001、01、02、04、08,从8眼井中选出7个作为训练样本,预测样本不参加训练集,经过8次循环,通过对预测结果的对比,从而确定r=001~01时预测效果最好。分析结果如表5-10所示。
表5-10 不同rSigmoid核函数对预测结果影响统计表
核函数的选择通常采用Cross-Validation法,即在核函数选取时,分别试用不同的核函数,归纳预测误差最小的核函数就是最好的核函数。
我们将石家庄西马庄8眼井的资料与北京潮白河水源地7眼井的资料组合建立新的建模集,从中任意选出14个作为训练集样本,另外1个样本组成预测集,这样进行了8组试验,通过图5-3我们看到基于RBF核函数的预测模型预测精度最高。因此我们认为利用RBF核函数建立的含水层含水量预测模型预测效果最佳。
图5-3 三种核函数预测精度对比
(三)参数确定
采用径向基核函数所建立的模型需要确定的参数共有三个,分别为核函数参数γ,惩罚系数C和松弛变量ε。
惩罚因子C为正常数,惩罚因子C决定了对超出误差ε的样本惩罚程度。从结构风险的角度考虑,C值取得过大,问题倾向于经验最小,忽略对结构复杂程度的考虑;反之则更多地考虑了问题的复杂程度,忽略了经验数据的作用。因此可以说,C是支持向量机回归和泛化能力的平衡参数。惩罚因子C取不同的常数值,对结果有不同的影响。
由表5-11可知当C值取1024和2048时预测精度相同,说明当C大于一定值时,其变化对分析结果产生的影响变小。
表5-11 不同C值对预测结果影响统计表
通过对比试验,最终取值
(四)模型建立
构造并求解最优化问题
含水层含水量预测综合物探技术
得到最优解 每个支持值 。
构造决策函数
含水层含水量预测综合物探技术
将所求得的核函数系数、β值及b值带入5-44式,即为ε-SVR预测模型。
(一)机器学习
1研究的主要问题
机器学习是人工智能最具智能特征、最前沿的研究领域之一。主要是从大量的数据中自动或半自动地寻找模式的过程,在该过程中不断获取新的知识或技能,重新组织已有的知识结构,并不断改善自身的性能,从而达到学习的目的。机器学习问题目前是人工智能发展的一个重要方面,其研究的主要问题是从一组观测数据集出发,通过某些技术与方法寻找到一些不能通过原理分析以及相应数学运算而得到的规律,进而利用这些规律对未知或无法观测到的数据进行预测和分析。机器学习的最终目标是根据给定有限的训练样本然后对某系统输入/输出之间存在的相互依赖关系进行估计,然后根据输入/输出之间所存在的关系再对未知的输出结果作出尽可能准确的预测。上述理论可以表示为:变量y与x之间存在一定的未知依赖关系,即遵循某一未知的联合概率F(y|x),机器学习问题的实质就是根据n个独立同分布观测样本:(x1,y1),(x2,y2),…,(xn,yn),在给定一组函数集f(x,ω)中求取一个最优的函数(fx,ω0)对相互关系进行估计,使得期望风险达到最小。其中:f(x,ω)称为学习函数集或预测函数集;ω称为函数的广义参数,ω∈∧;∧是参数集合。L[y,f(x,ω)]为利用f(x,ω)对y进行预测而造成的损失,不同类型的学习问题有不同形式的损失函数。通过选择不同形式的损失函数可以构成模式识别、函数逼近和概率密度估计这三种基本的机器学习问题。
含水层含水量预测综合物探技术
在模式识别问题中,输出y是类别标号,在分类问题中,系统输出向量y可以表示成形式为的二值函数。预测函数在这里称为指示函数,将损失函数定义为
含水层含水量预测综合物探技术
为了使风险最小就要求Bayes决策中使错误率达到最小[7]。
在回归估计问题中,如果假设训练机的输出值为实数值y,并且令f(x,ω)为实函数集合,ω∈∧,其中,包含的回归函数为[8]
含水层含水量预测综合物探技术
这里的回归函数就是在损失函数为
含水层含水量预测综合物探技术
的情况下,使式(5-1)最小化风险泛函的函数。因此对于回归估计问题可以表示成在概率测度F(x,y)未知,但数据集(x1,y1),(x2,y2),…,(xn,yn)已知的情况下寻找使得R(ω)最小的密度函数。
对于概率密度估计问题,其学习的主要目的是要根据训练样本来确定x的概率分布。令估计的密度函数为p(x,ω),则损失函数可以定义为如下形式:L[p(x,ω)]=-lnp(x,ω)。这里的密度函数就是要求在损失函数下使得R(ω)最小化。也就是说,密度估计的问题在相应的概率密度F(x)未知以及给定独立同分布数据集x1,x2,…,xn的情况下,寻找使得R(ω)最小的密度函数。
2经验风险最小化
一般基于数据的机器学习问题的目标是要使期望风险达到最小化,但是由于已知的全部信息只有数据集的期望风险,而且该期望风险无法计算,因此根据概率论中的大数定理,利用算术平均代替式(5-1)中的数学期望,于是定义下式:
含水层含水量预测综合物探技术
由于R(ω)是用已知的训练样本对(5-1)式进行的估计,因此称为经验风险。利用对参数ω求经验风险Remp(ω)的最小值来逼近期望风险R(ω)的最小值,称这一原则为经验风险最小化(empirical risk minimization)原则,简称ERM原则。
通过对经验风险最小化原则和基于数据的机器学习问题中期望风险最小化要求的研究可以发现,从期望风险最小化到经验风险最小化缺少相应的理论依据,只是一种直观上合理的做法。首先,Remp(ω)和R(ω)都是ω的函数,概率论中大数定理只是说明了满足一定条件下,如果数据集趋于无穷多时那么Remp(ω)将在概率意义上趋近于R(ω),但并不能保证Rmpe(ω)最小的ω与使R(ω)最小的ω′是在同一个点,更不能保证Remp(ω)能够趋近于R(ω′)。其次,即使能够使这些条件在数据集数目无穷大时得到保证,但也无法保证在这些前提下所得到的经验风险最小化方法在有限的数据集数目(即小样本数据)的情况下仍能得到最佳结果[9]。虽然存在上述各种问题,但该思想在多年的机器学习方法研究中一直占据了主导地位。人们多年来将大部分注意力都集中到如何更好地求取最小经验风险。
(二)统计学习理论
1统计学习理论的产生
统计学方法是研究利用经验数据进行机器学习的一种一般理论,对于大量缺乏合适的理论模型的观测数据时,统计学方法是唯一的分析手段。统计学方法研究的主要内容是当样本数据的数目趋于无穷大时的极限特性。然而,在实际应用当中,数据集的数目通常是有限的,有时数据样本的获取是非常困难或者成本非常高的。因此在实际应用中往往无法满足数据集的数目趋于无穷大或者数据集的数据样本量大这个最基本的前提,特别是在研究高维特征空间时,这一矛盾显得尤为突出。因此,研究小样本数据下的统计学习规律是一个非常有实用价值和意义的问题。
Vapnik等人在20世纪60年代中期提出了统计学习理论(statistical learning theory,SLT),并开始研究在有限数据集的情况下基于数据的机器学习问题。由于当时的研究程度不够完善,直到20世纪90年代中期,统计学习理论才得以逐渐的发展和成熟,并且形成了一个较为完善的统计学习理论体系。
统计学习理论的本质就是从理论上系统地研究经验风险最小化原则成立的条件、有限样本下经验风险与期望风险之间的关系以及如何利用这些理论寻找新的学习原则和方法的问题,其主要内容包括四个方面:
1)经验风险最小化原则下统计学习一致性的条件。
2)在这些条件下关于统计学习方法推广性的界的结论。
3)在这些界的基础上建立的小数据样本归纳推理原则。
4)实现这些新的原则的实际方法或算法。
以上这四条内容中,核心内容是:VC维,推广能力的界,结构风险最小化。
2学习过程的一致性条件
学习过程的一致性主要是指当训练数据集的数目趋于无穷大时,经验风险的最优值能够收敛到真实风险的最优值。设Q(z,ωn)是对给定的独立同分布观测数据集z1,z2,…,zn使经验风险泛函式
含水层含水量预测综合物探技术
最小化的函数。如果下面两个序列概率收敛于同一个极限,即
含水层含水量预测综合物探技术
则称ERM原则对函数集Q(z,ωn),ω∈∧和概率分布函数F(z)是一致的。其中, 为实际可能的最小风险。
对于有界的损失函数,经验风险最小化学习一致性的充分必要条件是使经验风险在式(5-7)的条件下一致地收敛于真实风险:
含水层含水量预测综合物探技术
式中:P表示概率,Remp(ω)和R(ω)分别表示在n个数据样本下的经验风险和对于同一个ω的真实风险。
上述内容即为学习理论的关键定理。由学习理论的关键定理可知,基于经验风险最小化原则的学习过程一致性的条件由预测函数集中最差的函数决定,即最坏的情况。
由于学习理论关键定理只给出了经验风险最小化原则成立的充分必要条件,但并没有给出什么样的学习方法能够满足这些条件。为此,统计学习理论定义了一些指标来衡量函数集的性能,其中最重要的是VC维(Vapnik-Chervonenkis dimension)。
3VC维理论
VC维是用来描述函数集或学习机器的复杂程度及学习能力的一个重要指标,在模式识别中VC维的直观定义是:对一个指示函数集,如果存在h个数据样本能够被函数集中的函数按所有可能的2h种形式分开,则称函数集能够把h个样本打散;函数集的VC维就是它能打散的最大样本数目h。若对任意数目的样本都有函数能将它们打散,则函数集的VC维是无穷大。有界实函数的VC维可以采用一定的阈值将它转化成指示函数来进行定义。
VC维体现了函数集的学习能力,直接影响学习机器的推广能力。一般情况,VC维越大则学习机器越复杂,学习能力就越强。但目前尚没有通用的可用于任意函数集VC维计算的理论,只知道一些特殊的函数集的VC维。例如,在n维实数空间中线性分类器和线性实函数的VC维是n+1;函数f(x,a)=sin(x,a),a∈R的VC维是无穷大。对于一些比较复杂的学习机器(如神经网络),其VC维不但与函数集有关外,而且也受学习算法等的影响,因此它的确定将更加困难。对于给定的学习函数集,如何通过理论或实验的方法计算它的VC维仍是当前统计学习理论中有待研究的一个问题。
4推广性的界
统计学习理论系统地研究了各种类型函数集的经验风险和实际风险之间的关系,即推广性的界。对于两类分类问题,指示函数集中的所有函数包括使经验风险最小的函数,其经验风险Remp(ω)和实际风险R(ω)之间以至少1-η的概率满足如下关系:
含水层含水量预测综合物探技术
式中:h为函数集的VC维;n为数据样本数。
通过该结论说明了学习机器的实际风险是由两部分组成的:一部分是经验风险即训练误差,另一部分则称为置信范围,也叫做VC信任,它与学习机器的VC维及训练样本数有关。(5-9)式可以简单表示为
含水层含水量预测综合物探技术
上式表明,当训练样本有限时,如果学习机器的VC维越高,复杂性越高,则置信范围越大,将会导致真实风险与经验风险之间的差别越大,这就是会出现“过学习”现象的原因。在机器学习过程中不但要使经验风险最小,还应当保证VC维尽量的小,从而缩小置信范围,才能取得较小的实际风险,即对未知样本预测才能取得较好的推广能力。这也是大多数情况下选择复杂的学习机器或神经网络虽然能够获得较好的记忆功能却得不到令人满意的推广性能的主要原因。因此寻找反映学习机器能力更好的参数及得到更好的界,也是今后学习理论的重要研究方向之一。
5结构风险最小化
由前面的结论可知,当样本数据有限时传统的机器学习方法中采用的经验风险最小化原则是不合理的。需要同时保证最小化经验风险和置信范围。实际上,选择模型和算法的过程就是优化置信范围的过程,如果选择的模型适合于现有的训练样本(相当于h/n值适当),则可以取得较好的效果。例如,在神经网络中,可以根据问题和样本的具体情况来选择不同的网络结构(对应不同的VC维),然后进行经验风险最小化。
(三)支持向量机理论[10~14]
1支持向量机基本思想
图5-1 优化分类面示意图
支持向量机(support vector machines,SVM)是Vladimir N Vapnik等根据统计学习理论中的结构风险最小化原则于20世纪90年代提出的一种新的通用机器学习技术。SVM是由线性可分情况下的最优分类面发展而来的,其基本思想可用图5-1所示的二维情况说明。图5-1中,实心点和空心点代表两类数据样本,其中H为分类线,H1、H2分别为过各类中离分类线最近的数据样本且平行于分类线的直线,它们之间的距离称作分类间隔(margin)。所谓最优分类线,就是要求分类线不但能将两类正确分开,而且要使间隔最大。前者保证经验风险达到最小;使分类间隔最大实际上就是要使推广性界中的置信范围能够最小,从而保证真实风险最小。推广到高维空间,最优分类线就转换成了最优分类面。
2最优分类面
最优分类面不但要求分类超平面能将两类正确分开,而且要使分类间隔最大,这是因为要使结构风险最小化,就要求分类超平面集合的VC维达到最小。根据VC维理论可知,当训练样本给定时,分类间隔越大,则对应的分类超平面集合的VC维就越小,因此要求分类间隔最大,这就是最大间隔(分类)原则。
根据最大间隔原则,对于线性可分的训练集
T={(x1,y1),…,(xn,yn)}∈(X+Y)n
其中xiX=Rn,yi∈Y={+1,-1},I=1,…,n;
若其分类线性方程为ω·x+b=0,
则训练集中的向量应满足
含水层含水量预测综合物探技术
此时分类间隔等于 ,间隔最大等价于2最小。满足式(5-11)。且使 最小的分类面就是图5-1中的最优分类线H。
因此,最优分类面问题可以用如下的约束优化问题来表示,即在式(5-11)的约束下,求如下函数的最小值:
含水层含水量预测综合物探技术
定义Lagrange函数:
含水层含水量预测综合物探技术
式中:αi≥0为Lagrange乘子。
为求式(5-13)的最小值,分别对ω、b、αi求偏微分并令其为0,于是得
含水层含水量预测综合物探技术
通过Lagrange对偶理论可以把上述最优分类面求解问题转化为其对偶问题:
含水层含水量预测综合物探技术
αi为原问题中与每个约束条件对应的Lagrange乘子。是一个在不等式约束条件下二次函数最优的问题,且存在唯一解。若 为最优解, 即最优分类面的权系数向量是支持向量的线形组合。
可由约束条件αi[yi(ω·xi+b)-1]=0求解,解上述问题后得到的最优分类面函数为:
含水层含水量预测综合物探技术
sgn()为符号函数,由于非支持向量对于αi均为零,因此上式中的求和实际上是对支持向量进行。b为分类阈值,可以由任意一个支持向量用式(5-11)求得,或通过两类任意一对支持向量取中值求取,这就是SVM最一般的表达。
3广义的最优分类面
当最优分类面不能把两类点完全分开时,为了在经验风险和推广性能之间求得某种均衡,我们在条件中引入弛变量ξ,允许错分样本存在,此时的分类面ω·a+b=0满足:
含水层含水量预测综合物探技术
当0<ξi<1时,样本点xi正确分类;当ξi≥1时,样本点xi被错分,因此,在最小化目标 中加入惩罚项 ,引入以下目标函数:
含水层含水量预测综合物探技术
式中:C为一个正常数,称为惩罚因子。
与线性可分情况类似,式(5-18)可通过如下二次规划来实现:
含水层含水量预测综合物探技术
对于非线性分类问题,如果在原始空间中的简单最优分类面不能得到满意的分类结果,则可以通过非线性变换将原始问题转化为某个高维空间中的线性问题,在变换空间求最优分类面。
由于变换可能比较复杂,一般不容易实现,因此SVM可以通过核函数变换巧妙地解决了这个问题。
4核函数
核函数方法的核心内容就是采用非线性变换φ将n维矢量空间中的随机矢量x映射到高维特征空间[11],在高维特征空间中设相应的线性学习算法,由于其中各坐标分量间的相互作用只限于内积,因此不需要知道非线性变换φ的具体形式,只要利用满足Mercer条件的核函数替换线性算法中的内积,就能得到原输入空间中对应的非线性算法[15]。Mercer条件的定义为
对于任意的对称函数K(x,x′),它是某个特征空间中的内积运算的充分必要条件是,对于任意的φ(x)不恒等于零,且∫φ2(x)dx0成立。
在支持向量机中可以采用不同的核函数构造输入空间不同类型的非线性决策面的学习机器。目前满足Mercer条件的核函数已有近10个,但常用的核函数主要有
(1)径向基函数
含水层含水量预测综合物探技术
构造的支持向量机的判别函数为
含水层含水量预测综合物探技术
其中,s个支持矢量xi可确定径向基函数的中心位置,s是中心的数目。径向基核函数是普遍使用的核函数,因为它对应的特征空间是无穷维的,有限的数据样本在该特征空间中肯定是线性可分的。
(2)Sigmoid核函数
含水层含水量预测综合物探技术
构造的支持向量机的判别函数为
含水层含水量预测综合物探技术
式(5-23)就是常用的3层神经网络的判别函数,其隐节点对应支持向量。其算法不存在局部极小点问题。
(3)多项式函数
含水层含水量预测综合物探技术
构造的支持向量机的判别函数为
含水层含水量预测综合物探技术
其中,s为支持向量的个数。对于给定的数据集,系统的VC维数取决于包含数据样本矢量的最小超球半径R和特征空间中权重矢量的模,这两者都取决于多项式的次数d。因此,通过d的选择可以控制系统的VC维数。以上各式中γ,r,d为核函数的参数。
5支持向量回归机
支持向量回归机(SVR)的基本思想是通过用内积函数定义的非线性变换将输入空间数据变换到一个高维特征空间,在这个高维空间中寻找输入特征变量和输出预测变量之间的一种线性关系,其基本结构如图5-2所示。
图5-2 支持向量机结构示意图
支持向量回归机算法是一个凸二次优化问题,可保证找到的解是全局最优解,能较好地解决小样本、非线性、高维数等实际回归问题。
设给定训练样本为
{(xi,yi),i=1,2,…,r},xi∈RN为输入特征值,yi∈RN为对应的预测目标值,k为训练样本个数。
对于支持向量机函数拟合,首先考虑用线性拟合函数
含水层含水量预测综合物探技术
式中:ω,b分别为回归函数的权重向量和偏置。
若所有数据在给定ε精度下无误差地用线性函数拟合,即
含水层含水量预测综合物探技术
式中:ε为一常量,控制回归函数的精度。
其满足结构风险最小化原理的目标函数为
含水层含水量预测综合物探技术
根据统计学习理论,在这个优化目标下可取得较好的推广能力。考虑到允许误差的情况,引入松弛因子ζ≤0,ζ≤0,则式(5-27)变换为
含水层含水量预测综合物探技术
优化目标函数变为
含水层含水量预测综合物探技术
其中,常数C>0,C表示对超出误差ε的样本的惩罚程度,即起到了对上式第一项最小化VC(Vapnik Chervonenkis)维与第二项训练样本上的最小化误差的折中。采用拉格朗日优化方法可以得到其对偶问题。
含水层含水量预测综合物探技术
式中:αi, 分别为拉格朗日系数。
由上面的最小化函数可得到支持向量机回归拟合函数为
含水层含水量预测综合物探技术
对于非线性问题,可以通过非线性变换将原问题映射到某个高维特征空间中的线性问题进行求解。在高维特征空间中,线性问题中的内积运算可用核函数来代替,即
含水层含水量预测综合物探技术
这样 式(5-31,(5-33)则变为如下的形式:
含水层含水量预测综合物探技术
含水层含水量预测综合物探技术
依据Kuhn-Tucker定理,通过任一满足条件的样本便可求得
含水层含水量预测综合物探技术
则式(5-38)为我们寻找的ε-SVR预测模型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)