APP下载

第二十六讲 支持向量机(SVM)简介及DPS应用操作

2018-09-01徐静安

上海化工 2018年6期
关键词:离群线性向量

徐静安 吴 芳

2014年11月上海化工研究院化机所组织学术报告会,在彭东辉副总征集的论文集初稿中读到“难过滤物料过滤过程的理论研究与实践”。在实验数据处理部分采用比较前沿的数据驱动算法之一的支持向量机(SVM)算法对实验数据进行非线性求解,预测一定过滤条件下的滤饼过滤性能。

笔者曾带教2009级学术硕士陈玉岩,该同学学习能力较强,探索应用人工神经网络及遗传算法技术,“倒逼”导师学习,教学相长。由此我恶补了几本书,其中人工神经网络著作的部分内容涉及SVM算法,所以看到上海化工研究院项目应用SVM的信息,尽管“小荷才露尖尖角”,也是倍感兴奋的。

两年前吴芳硕士从天津大学毕业来上海化工研究院工作,我曾调阅她的硕士论文《橡胶混炼过程在线质量监控技术的应用研究》,了解到她有应用数学基础。我就主动联系,希望我们把SVM算法静下来再学习,加深理解,以利于推广应用,以免“以其昏昏,使人昭昭”。

为此,她先后帮我下载了两本专著:邓乃扬、田英杰著《数据挖掘中的新方法——支持向量机》(科学出版社,2004年出版);李国正、王猛、曾华军译《支持向量机导论》(电子工业出版社,2004年出版)等。我推荐她阅读《DPS数据处理系统——实验设计、统计分析及数据挖掘》第43章“神经网络和支持向量机”,以及周春光、梁艳春编著的《计算智能——人工神经网络、模糊系统、进化计算》(吉林大学出版社,2009年)等。我们还多次讨论了SVM算法原理、应用案例、不同计算方法的比较分析。

自2014年12月至今,在我工作摘记中有记载的讨论共有13次,所以我们共同完成本讲座的讲义编写。

一 支持向量机的概念和原理

计算智能(Computational Intelligence,CI)通俗来讲是指:不依赖于专业知识或经验,不需要事先知晓系统或过程的精确数学模型,而是从数据的角度出发对系统或过程进行分析的技术。

SVM(Support Vector Machine)是计算智能范畴中一种较常用的算法,由Corinna Cortes和Vapnik等在20世纪90年代提出。SVM基于统计学习理论,其基本思想是利用有限的数据,在模型的复杂性(回归问题中指方程的显著性)和预测能力(回归问题中指方程的预测精度)之间寻求最佳折衷,目的是使模型具有最好的泛化推广能力。实现方法是寻找一个满足分类要求的最优分类超平面,使得该超平面在保证分类精度的同时,能够使其两侧的空白区域最大化。SVM在解决小样本、多因素、非线性问题中表现出特有的优势,是一种数据驱动算法。SVM常用于模式分类(支持向量分类Support Vector Classification,SVC)和非线性回归(支持向量回归Support Vector Regression,SVR),本文重点讨论SVM用于SVR。

1SVM的由来——解决线性分类问题

SVM是从线性可分情况下的最优分类面(在二分类问题中即为分类线)发展而来的,基本思想见图1。以二分类为例,要求分类线不但能将两类正确分开(分类错误率为0),而且保证两类之间的分类间隔最大,该分类方法称为最大间隔分类法。其中H为分类线,H1,H2分别为过各类中离分类线最近的样本且平行于分类线的线,同时要保证分类线H离H1,H2是等距的,它们之间的距离叫做分类间隔(margin)。推广到多类分类问题中,就是寻找最优分类面或分类超平面。

图1 SVM算法的最优分类平面

设训练集{xi,yi},xi是特征变量,yi是样本对应的类别标签:当样本xi属于第一类时,yi为+1;当xi属于第二类时,yi为-1。将最优分类面方程定义为w·x+b=0,其中w是法向量(亦可称为权重向量),b是截距(亦可称为偏置),则有:

分类面H满足其到H1和H2之间的间隔相等且最大的条件,根据距离公式得到分类间隔H1与H2之间的距离为2/||w||,将目标函数定为:求2/||w||的最大值,即等价于求min||w||2的最小值,那么分类问题可以表达成:

其中||w||为二阶范数,表示向量w的长度。

采用拉格朗日方法求解上述不等式,由于直接处理不等式约束比较困难,通常将拉格朗日原始问题进行对偶处理(对偶方法可以减少未知量个数,保证数据总以成对的内积形式出现,为后面核函数的引入提供可能),并求解得到:

可以看出w,b(分类平面)仅仅依赖于拉格朗日乘子αi不为零的输入点,因此将αi≠0对应的输入xi称作支持向量。由图1可以直观地看出,在输入样本中,仅有部分输入xi为支持向量(加黑的点)对算法作出贡献,具有稀疏性。支持向量这个特性的物理意义就是远离分类平面的数据点将不影响分类结果,所以可用于小样本问题。至此分类平面已求出,即建立了二分类的线性分类器,三类及以上分类问题的求解同上述方法一致。

2SVM推广到非线性分类——引入核函数(Kernel Function)

实际上,大多数据之间都存在非线性关系,如图2(a)所示,二维空间中的两类非线性相关的数据无法用任意方向的一条直线区分开来。这种情况下,采用支持向量机进行分类需要引入核函数。

Φ为非线性映射函数:x→Φ(x∈X为原始低维空间,Φ∈F为高维空间),如果输入空间中的函数K(xi,xj)等于变换后的特征空间中的内积,即满足K(xi,xj)=〈Φ(xi),Φ(xj)〉,则为核函数。

也就是核函数K(xi,xj)可以实现将低维输入空间中的非线性问题转换为高维特征空间中的线性问题来求解,如图2(b)所示,二维数据映射到三维空间后,可以通过一个分离超平面实现类别划分。接下来只需要在高维特征空间中利用类似线性求解分类平面的方法进行求解,即可以解决该非线性分类问题。

图2 非线性问题到线性问题的转换

核函数将高维空间的内积运算转化为低维输入空间的核函数计算,那么计算时只需要确定核函数K(xi,xj),而不需要知道映射函数Φ(x),从而巧妙地避免了在高维特征空间中容易产生的“维数灾难”等问题。

常用核函数有以下几种:

多项式核函数K(xi,xj)=[(xi,xj)+c]d,d=1为线性核函数,d>1为多项式核函数

高斯核函数K(xi,xj)=exp[-(||xi,xj||2)/2σ2],又叫径向基函数(Radial Basis Function,RBF)。

Sigmoid核函数K(xi,xj)=tanh(p<xi,xj>+c),S曲线函数。

σ,c都是核函数的参数,简称核参数,主要影响样本数据在高维特征空间中分布的复杂程度,从而决定置信范围,最终影响结构风险范围。核参数的取值通常根据经验而定,对RBF核函数,σ取值在0.5~2之间。

选择一个恰当的内积核,SVM就可以自动计算所有重要的网络参数,如选RBF核函数,那么SVM的体系结构——网络中RBF函数的数目和它们的中心、线性权值和偏置水平都自动计算生成。

为了直观地理解SVM的体系结构,引用Simon Haykin著,叶世文、史忠植译《神经网络原理》,体系结构图示见图3。

图3 支持向量机的体系结构图

3SVM求解近似线性可分问题——引入松弛变量

对于近似线性可分的问题(包括线性问题或通过核函数将非线性问题映射到高维空间中的线性问题),由于各种原因,数据存在离群点或坏点,导致任何划分超平面都不能达到正确分类。如图4所示,框和圈是不同的两类,在H1面右上方的一个框偏离了自己原本所应该在的半个空间,如果直接忽略,H可以认为是分类平面,那么该分类问题可以很容易地得到解决,但是由于该坏点的出现无法构造分类超平面。而且在计算的时候,数学方法无法辨认出坏点或离群点,此时分类问题容易受极少数点的干扰。解决方法是允许一些点到分类平面的距离不满足原先的要求,在约束条件中引入容错性,给阈值加一个松弛变量,即允许y[i(wx)i+b]≥1-ζi,ζi>0。松弛变量的值表示允许对应的点离群有多远,值越大,表示离群越远。同时松弛变量 ζ=(ζ1,ζ2,...,ζ)iT的引入体现了训练集允许被错分的情况,放弃了对离群点的精确分类。采用 ξi作为度量,描述训练集被错分的程度,那么错分程度 ξi最小化也应该是目标函数之一,近似线性可分问题变为:

图4 近似线性可分问题

C为惩罚参数,是用户事先给定的值,它决定了离群点带来的损失,是间隔的最大化与分类误差之间的折衷,可以理解为权重。C值定得越大,表示越不想放弃离群点,最极端的情况是把C定为无限大,这样只要有一个离群点,目标函数的值马上变成无穷大,问题就无解了,C值的选取在后面有介绍。

近似线性可分问题的优化式与线性可分问题的形式相近,同样采用拉格朗日法进行求解。

4SVM解决回归问题——ε不敏感损失函数的引入

回归问题中训练集 {xi,yi},xi为输入或影响因素,yi为输出或指标,求解回归问题就是寻找一个实值函数f(x)来表示x与y之间的对应关系。实际上回归问题是分类问题的延伸,不同的是,回归问题中yi并不限定取1或者-1,而是实际测量或记录的目标函数值。

在SVM的回归问题中,输出是实值,输出值与实测值之间的偏差不再是离散的,需要定义一个损失函数,这个损失函数可以忽略真实值上下一定范围内的误差。最常采用的是ε不敏感损失函数,该函数认为在ε不敏感区内的训练点误差为0,这个概念和经典的基于最小二乘法的回归处理是截然不同的。以一般线性回归问题为例,如图5所示,在ε不敏感带内的样本点(xi,yi)不会影响决策函数f(x)。ε不敏感损失函数的范围为|y-f(x)ε|=max{0,|y-f(x)|-ε}。

图5 ε不敏感带

由于最小二乘估计算法对离群点非常敏感,SVR求解非线性回归的鲁棒性——稳健性算法是利用绝对误差作为被最小化的量,构成损失函数。

对于非线性回归问题,同非线性分类问题一样,采用核函数将低维输入空间中的非线性问题映射到高维空间中,使之成为线性问题,再采用求解线性回归问题的方法进行求解即可。

5SVM的特点

相比其他统计学习方法,SVM有其独特之处,具体表现如下:

(1)SVM建立在结构风险最小化原则的基础上,其他统计学方法,如神经网络的优化目标是基于经验风险(学习误差)最小化,容易陷入局部最优,训练结果不稳定,需要大量样本才能得到较好的统计效果。结构风险最小化包括两方面:一是经验风险(学习误差)最小化,SVM寻找最优分类超平面满足分类精度,使经验风险最小;二是置信范围最小化(学习机器的复杂性),采用支持向量作为分类的依

应用处理线性可分问题的最大间隔法构造回归问题中的超平面,成为最大间隔回归法,经过推导,求回归问题转化为如下最优化问题:据,满足学习机器简单。因此计算不会陷入局部极值,避免了过学习和欠学习问题,且推广能力好。

(2)SVM适用于求解全局最优化问题,算法求解的是一个凸优化问题,局部最优解一定是全局最优解。

(3)核函数的引入,将低维空间中的非线性数据映射到高维空间,解决了非线性不可求解的问题,且不增加可调参数的个数;同时只需要确定输入空间的核函数,计算速度不受维数大小的影响,避免了在高维特征空间中计算的“维数灾难”问题;根据选取核函数形式的不同,可以有效地解决线性和非线性回归和分类问题。

(4)适用于求解小样本问题:SVM基于结构风险最小化原则,泛化能力强,算法具有全局最优性,是针对小样本统计的理论。

(5)SVM可用于解决缺失数据问题:在工程实际中,由于各因素的影响,如测量难度大、成本高、人为因素等都可能会导致数据缺失,一般的回归算法都不能直接处理数据缺失问题,SVM可以用于缺失问题的求解。

(6)当然,SVM算法也有其局限性,具体表现在两方面:核函数和核参数的选取在更大程度上依赖于对计算结果的分析和经验;求解二次规划涉及N阶矩阵的计算(N为样本个数),当N数目很大时,N阶矩阵的存储和计算将耗费大量的机器内存和运算时间。因此样本量较大时,SVM算法计算速度较慢。

二 DPS数据处理系统中SVR操作界面

在DPS电子表格中,SVR分析数据的格式为数据按一行一个样本、一列一个变量的格式依次输入,最右边一列为输出指标(因变量),并选中数据,以便分析。对于待判别样本,可按下Ctrl键的同时,选中第2个数据块。然后在菜单下选择“多元分析”-“支持向量机(SVM)”-“SVM回归”,这时系统会出现图6所示用户界面。

1SVR 的类型

SVM回归常用ε-SVR回归和ν-SVR回归,两种回归算法的概念、原理相同,ν-SVR是ε-SVR的一种变形,差异是:在ε-SVR回归中,通过设置ε-数据不敏感波动带影响决策函数;在ν-SVR回归中,通过控制支持向量数量(支持向量个数占训练样本的百分比)来影响决策函数。在DPS系统中默认ε-SVR回归。

2核函数类型

引入核函数把低维空间中的非线性问题转化为高维空间中的线性问题,不同的核函数就有不同的映射、不同的内积,及最终不同的计算结果。DPS系统默认的是RBF核函数。如果在RBF函数应用效果不佳时,再试用Sigmoid核函数等。

3 计算参数

(1)degree,只有选择核函数为多项式时,此值起作用,设置默认为3,表示多项式的阶数或次方数,即三次多项式的处理精度已经足够;(2)Gamma,核函数选为RBF时,本文高斯函数与DPS系统中的计算参数关系γ=,σ 取值 0.5~2,设置默认为 γ=0.5;(3)coef0,核函数为多项式时,计算参数c=0为齐次多项式,c>0为非齐次多项式;核函数为 Sigmoid 时,c>0,默认为 0.001;(4)cost,支持向量ε-SVR回归和ν-SVR回归中的惩罚系数C取值范围为(0,100],取值大小决定离群点对决策函数的影响:对社会统计性数据,通常取0.5~1,默认为1;对误差相对可控的实验数据可取较大值,仅有限的小样本,生成更多的支持向量,拟合预报更稳定;(5)nu,ν-SVR回归中的参数,控制支持向量数量,取值范围为(0,1],默认为0.5,表示支持向量达到样本量的50%。其它省缺值大都和计算内存、计算迭代精度及输出有关,按DPS系统默认值选用。其中shrinking指是否使用启发式,即SVM有启发式选择算法,能提高优化目标函数时迭代的收敛速度,默认为1,意为使用启发式算法的功能。

三 计算实例——橡胶质量参数的预测

案例数据选自吴芳(天津大学)硕士学位论文“橡胶混炼过程在线质量监控技术的应用研究(2013)”中的部分数据。

门尼黏度是橡胶质量检测的关键参数,它是衡量胶料黏度特性、可加工特性和压延特性等多方面性能的综合物性指标。门尼黏度的测量十分复杂,且存在严重的测量滞后,不能有效地指导实际生产。流变参数作为混炼胶的另一个重要性能参数可以由在线流变仪测量得到(约2 min之内准确测得),用于制造半钢子午线轮胎的橡胶流变参数主要包括5个,具体参数含义由表1所示。

表1 混炼胶流变参数含义表

考虑到门尼仪和流变仪工作原理的相似性,门尼黏度与流变参数之间必然存在着很强的相关性。因此可以采用数学方法建立门尼黏度和流变参数之间的回归模型或方程,用可以在线获得的参数对难测量参数进行预测,减轻繁重的测试工作量、节约生产成本。

在化工科研、生产中存在难测量参数、测量周期长、结果滞后、破坏性检测、测量成本高等现象,根据不同专业建立间接测量方法是共性的需求。

表2为混炼胶的20组实测数据,其中5个流变参数作为因素,门尼黏度作为考核指标。分别采用二次多项式逐步回归算法和SVM对前16组数据进行回归模型建立,用后4组数据对模型精度进行测试。

1 二次多项式逐步回归算法计算结果

DPS数据处理系统中进行二次多项式逐步回归计算的步骤如下:

(1)打开DPS数据处理系统。

(2)将20组数据输入工作窗口中的电子表格,鼠标左键框选前16组数据。

(3)点击菜单栏“多元分析”-“回归分析”-“二次多项式逐步回归”,出现如图7中的子选择窗口。

表2 混炼胶质量参数数据表

(4)如果因子的p<0.05,则引入变量,选择Yes,否则选No,直至选择完毕,点OK。最终计算结果在新生成的一页表格中显示出来,如图8所示。

图7 因子选择窗口

计算得到回归方程:

Y=7.196 400 96+1.601 129 519 2×X4+

方差分析结果(见表3)。

回归系数显著性检验结果(见表4)。

回归方程显著性检验结果(见表5)。

回归方程对17~20组数据的预测结果见表6。

表3 方差分析表

表4 回归系数显著性检验表

表5 回归方程显著性检验表

表6 回归方程对17~20组数据的预测结果

2 SVR预测结果

DPS数据处理系统中进行SVR计算步骤如下:

(1)打开DPS数据处理系统。

(2)选中训练和测试样本:鼠标左键选中前16组数据作为训练样本,按Ctrl继续选中后4组数据的输入参数作为测试样本。

(3)在菜单栏点击“多元分析”-“支持向量机(SVM)”-“SVM回归”,出现SVR参数设置窗口,如图9所示。

SVM TYPE默认ε-SVR回归,核类型默认RBF核函数,此时需要设置的参数为Gamma和Cost,取Gamma=0.3(σ=1.3),Cost=20,点“确定”进行计算,在新生成一页电子表格中显示SVR回归计算结果。

相关系数R=0.980 2,决定系数R2=0.960 8。

(4)SVR对17~20组数据的预测结果见表7。

图9 SVR参数设置窗口

表7 SVR对17~20组数据的预测结果

3 预测结果对比

将上述二次多项式逐步回归和SVR方法对17~20组橡胶混炼数据的门尼黏度预测结果进行对比,结果如表8所示。

表8 17~20组橡胶混炼数据的门尼黏度预测结果对比

根据经验规则,对没有试验设计为基础的随机样本进行回归统计建模时,要求样本量N≥5 m(m为变量个数)。本例中的橡胶混炼数据包含5个因素,训练样本为16组数据,因此可认为是小样本数据。从计算对比结果可以看出,针对这组数据,用SVR算法的R值及预测结果验证S值明显优于二次多项式逐步回归算法。

猜你喜欢

离群线性向量
一种基于邻域粒度熵的离群点检测算法
渐近线性Klein-Gordon-Maxwell系统正解的存在性
向量的分解
线性回归方程的求解与应用
聚焦“向量与三角”创新题
二阶线性微分方程的解法
一种相似度剪枝的离群点检测算法
向量垂直在解析几何中的应用
离群数据挖掘在发现房产销售潜在客户中的应用
向量五种“变身” 玩转圆锥曲线