支持向量回归的参数优化

时间:2022-05-22 10:55:56

支持向量回归的参数优化

【摘 要】支持向量回归的待定参数的选取对它的学习效果具有很大的影响力。本文采用粒子群算法对参数的组合进行优化,进而获取最优的参数值。粒子群算法是一种随机全局优化算法,研究表明,将粒子群算法优化支持向量回归参数,具有很好的效果。

【关键词】支持向量回归;参数优化;粒子群算法

1.支持向量机原理

近年来,由于以结构风险最小化为基础的支持向量机(SVM)是一种强有力的学习机器[1],可解决回归和分类问题,具有很大的灵活性。对于支持向量回归(SVR),越来越多的人开始将它作为一个有效地回归工具解决很多非线性问题。支持向量回归模型最后归结于求解一种如下的非常典型的二次规划问题:

其中,α,α是拉格朗日算子,根据KKT条件求解上述二次规划问题,仅仅部分α,α是非零的,相对应的数据点就叫做支持向量,决策函数就有如下的表述:

从(3)式可以看出,支持向量对应的数据点用来决定决策函数,因为其他数据点对应的(α-α)都等于0了。一般来讲,ε值越大,支持向量的数量就越少,结果就表现的越是稀疏。但是要注意的是,ε的增大意味着降低了训练数据的逼近精度。这样一来,ε平衡着结果的稀疏性和数据的精确度。

(2)式中的K(x,x)表示核函数,它为SVR的输入空间构建决策平面用来对于任何一个函数而言,如果满足Mercer条件[2],就可以被当作核函数。本文以最常用的高斯核函数为例,K(x,x)=exp(-(x-y)2/2σ2), σ2表示高斯核的频宽。核参数决定了高维特征空间的结构以及最后结果的复杂度,所以我们必须对它进行准确地选择。

因为SVR拥有很多吸引人的特征和良好的泛化性能,不仅在学术上,而且在工业上平台上都有成功的范例。比方说,SVR可以解决很多非线性问题;SVR的训练过程就是求解一个二次规划问题,所以结果是最优且唯一的,不可能产生局部极值;它只选取了少量的必需的数据点来解回归函数,这就导致了结果的稀疏性。

2.支持向量回归参数

尽管SVR有着它独特的优势,但是在应用中存在一个比较大的问题,那就是研究者必须自己确定不同的合适参数值来控制整个训练过程;而且要很谨慎地处理这些参数,进而才能有效地构建SVR模型来达到很好的效果。支持向量机的待定参数对其表现效果具有很大的影响力,不同的参数组合给模型带来的表现效果区别是很大的,如果参数选择的不太合理,就会导致SVR过拟合或者是拟合的不够。所以说,在SVR的训练过程中选择适当的参数就显得尤为重要,是很关键的一个步骤。

SVR的待定参数如下:

(1)惩罚因子C:在模型复杂度和训练误差起平衡调节作用。

(2)核函数的频宽σ2:表示高斯核函数的频宽。

(3)管道宽度ε:表示训练数据点的逼近精度。

3.基于粒子群算法的支持向量回归参数优化

一般参数选择最常用的比较可靠的办法是在某个确定的区间内,给适当的步长,对参数进行网格搜索根据SVR的表现效果来确定最佳的参数组[3]。这种方法通常涉及到交叉网格搜寻,所以需要大量的计算过程,就很耗时。只是这种方法应用起来比较简单,所以在计算成本比较小的时候是可行的,比方说快速或在线预测;或者是当训练数据量比较小的时候,这种方法无不是一个很好的选择。

如此看来,确定多个参数对于SVR来说是一个比较复杂的事情,它其实也相当于一个多变量的组合优化问题。因此,我们需要选择一种比较智能的办法来进行参数的全局优化。受鸟群随机寻找食物的社会行为的启发,Kennedy和Eberhar提出了粒子群算法(PSO)[4],它是一种随机全局优化方法,与其他演化算法相比,比方说遗传算法,PSO不需要诸如交叉和变异之类的操作[5]。PSO还有一个优点,就是操作起来很简单,需要调整的参数也很少。标准PSO的基本思想是通过离子速度和位置的不断迭代而达到最优值,迭代算法如下:

v(t+1)=

wv(t)+

c

r(t)(

pbest(t)-

p(t))

p(t+1)=

p(t)+

v(t+1) (4)

其中w是迭代权重,c是认知学习因子,c是社会学习因子,r(t)和r(t)是在区间[0, 1]内随机选取的,v(t)∈[-vmax,vmax],vmax是事先选取的最大速度。迭代权重w可以平衡全局和局部搜索能力,进而降低迭代次数来达到最优值。w值可以通过下式表示:

w=wmax- (5)

其中wmin表示最小的迭代权重,wmax表示最大的迭代权重,tmax表示控制整个训练过程的迭代的最大次数。

众所周知,PSO可以用来解决很多复杂的非线性问题,它同样可以用来作优化,对支持向量回归的参数进行优化,然后将优化的参数解二次规划问题,得到α,α,进而计算回归函数f(x)。利用PSO来优化支持向量回归的步骤如下:

1)初始化粒子群大小,最大迭代次数,以及由支持向量机各个参数组成的各个粒子的速度与位置,选取适度函数。

2)根据适度函数获得最佳位置与速度。

3)通过(4)式调整每个粒子的速度与位置,同时也要根据(5)式调节权重因子的值。

4)检查迭代结束的条件。一般结束的条件设为达到一定的次数或是在当次搜寻中获得所预设的最优值。如果没有满足结束条件的话,就返回到步骤2),否则直接进行下一步。

5)结束训练过程,输出最佳的参数。

4.结论

本文将粒子群算法应用于支持向量机的参数选择,将待确定的参数看成不同的粒子,通过选取适当的适度函数,对支持向量机参数进行优化。粒子全算法是一个全局优化算法,研究表明,利用粒子群算法来确定SVR参数值是一个很有效的办法,对于支持向量机的其他很多改进算法也可以运用PSO来进行参数选取。 [科]

【参考文献】

[1]C. Cortes, V.Vapnik,Support vector networks,Machine Learning[J].(下转第97页)(上接第53页)1995,20:273-297.

[2]J. Mercer,Function of positive and negative type and their connection with the theory of integral equations,Philosophical Transactions of the Royal Society of London: Series A,Containing Papers of a Mathematical or Physical Character[J].1909,209:415-446.

[3]O. Chappelle,V.Vapnik,Bousquet O.Choosing multiple parameters for support vector machines.Machine Learing[J].2002,46(1) :131-160.

[4]J. Kenedy,R.Eberhart,Particle swarm optimization[C].Proceedings of the IEEE International Conference on Neural Networks,1995:1942-1948.

[5]M.Clerc, J.Kennedy,The particle swarm-explosion,stability,and convergence in a multidimensional complex space[J].IEEE Transactions on Evolutionary Computation, 2002,6(1):58-73.

上一篇:自动感光启闭办公百叶窗的设计 下一篇:建立低碳电力系统面临的挑战及对策