system: [SYSTEM]

user: 2. 混合进化支持向量回归建模 2.1. 支持向量机 支持向量机(Support Vector Machine， SVM)是在Vapnik等人提出的小样本统计学习理论基础发展而来的机器学习方法，其算法是基于VC 维数理论和结构风险最小化准则。在处理非线性问题时，通过非线性核函数将输入向量映射到高维线性特征空间，在这个空间构造样本最优超平面，以此将非线性问题就转化为高维空间中的线性问题，在模型的复杂性和泛化能力之间寻求最佳折中，并且能有效地克服维数灾和有效提高泛化能力 [ 17 ]。SVM按照使用的类别可以分为支持向量分类(Support Vector Classification， SVC)和支持向量回归(Support Vector Regression， SVR)，其中SVR算法用于时间序列的预测、非线性建模与预测、优化控制等方面。 对于给定的样本数据集合 { ( x i ， y i ) | i = 1 ， 2 ， ⋯ ， N } ，其中 x i ∈ R n 是输入数据， y i ∈ R 是输出数据，SVR方法是首先利用非线性映射 ∅ ( ⋅ ) 将样本空间从原低维空间映射到高维特征空间，在高维特征空间进行线性回归估计输入和输出非线性关系，回归函数： f ( x ) = ω T φ ( x ) + b (1) 其中是 ω 权重向量， 是偏置量，将非线性估计函数转化为高维特征空间中的线性估计函数，利用结构风险最小化原理，引入不敏感损失函数的参数 ε 和松弛变量 ξ ， ξ * ，支持向量回归问题就转化为以下目标函数的最小化问题： { min ( ω ， ξ ， ξ * ) = 1 2 ω T ω + C ∑ i = 1 N ( ξ + ξ * ) s . b .     y i − ω T φ ( x i ) − b ≤ ε + ξ               − y i + ω T φ ( x i ) + b ≤ ε + ξ *             ξ ， ξ * ≥ 0 ， i = 1 ， 2 ， ⋯ ， N (2) 其中C为惩罚参数，对其进行拉格朗日乘法求解二次规划得到回归函数： f ( x ) = ∑ i = 1 N ( β i * − β i ) K ( x i ， x ) + b (3) 其中 ( β i * − β i ) ≠ 0 为训练样本支持向量， K ( x i ， x ) 为核函数，根据Mercer条件，存在映射函数 φ ( x ) 和核函数 K ( x i ， x ) ，使得满足： K ( x i ， x j ) = φ ( x j ) ∘ φ ( x i T ) (4) 在实际应用中，常见的核函数有以下四种类型： K 1 ( x i ， x j ) = x i x j T (5) K 2 ( x i ， x j ) = ( t + c x i x j T ) d (6) K 3 ( x i ， x j ) = exp ( − ‖ x i − x j ‖ 2 2 σ 2 ) (7) K 4 ( x i ， x j ) = tanh [ α ( x i x j T + β ) ] (8) 以上公式(5)是线性核函数，在线性核函数中没有参数；公式(6)是多项式核函数，其中的参数 是斜率， 是多项式维数；公式(7)是高斯核函数，其中的参数 σ 在SVR性能中起着主要作用，如果估计过大核函数将呈线性，高维投影失去其非线性功率，如果估计过小，核函数就缺乏正则化；公式(8)是Sigmoid 型核函数，其中 α 是幅度调整参数， β 是控制映射阈值位移参数。 SVR的性能主要取决于三个因素：1) 核函数的类型及其核函数参数；2) SVR模型中惩罚系数 和不敏感损失函数的参数 ε ；3) 建模数据集的特征信息。首先核函数类型的选择是决定的SVR模型的主要因素，核函数是反映数据的先验知识，决定训练数据高维特征空间情况，不恰当的核函数会使得训练样本在高维空间的分布变得比输入空间的分布更复杂，核函数的构造对于特定的核方法固然重要，但当核函数构造完毕(核函数的类型固定)后，其次核函数中的参数最优匹配同等重要。研究表明，针对同一个核函数，选择不同的核函数的参数，SVR的泛化性能会相差很大 [ 16 ]，这主要是因为不同的参数对应的高维特征空间的结构具有差异性，而特征空间的性质直接决定着核方法的性能。再次SVR模型的惩罚系数和不敏感损失函数参数也是两个重要参数，其中惩罚系数控制着最小训练误差和最小化模型复杂度之间的平衡，目的是在总体误差与学习机模型复杂性之间进行折衷，即在确定的特征空间中调节经验风险和学习机置信范围的比例，以使得学习机器的泛化能力最好，而不敏感损失函数参数是度量训练点上误差的代价，在模型的光滑性和泛化性之间起着平衡作用 [ 17 ] [ 18 ] [ 19 ] [ 20 ]。最后建模数据最优特征信息选择对SVR模型性能有一定的影响，由于建模因子数据在收集中包含有噪声，维数高，而且数据是多数据源或异构数据集，如果不对原始建模因子数据做特征提取处理，将会影响SVR的性能，增加模型的复杂度影响模型泛化性能 [ 21 ] [ 22 ] [ 23 ] [ 24 ]。 由于核函数的类型及其核函数参数，支持向量回归模型中惩罚系数C和不敏感损失函数的参数 ε ，以及建模数据的特征信息之间它们相互依赖，相互影响，在实际建模应有中需要同时考虑混合优化，才可以选择最为适用的模型，但是目前的研究文献主要是针对特征信息提取，或者核函数的类型及其核参数进行优化，或者针对惩罚系数C和不敏感损失函数的参数 ε 进行优化，如Huang和Wang在核函数类型为高斯核函数前提下，提出利用遗传算法同时优化特征子集和SVR模型参数 [ 25 ] 极大提高分类准确率，高斯核函数参数采用交叉验证方法确定，论文没有对其它类型核函数选择优化；Oliveira和Braga提出利用粒子群算法优化选择训练数据特征和高斯核函数的参数，并以此建立软件工程量需求预测模型，取得较高得准确率，但是该论文没有对SVR模型的参数进行优化 [ 26 ]；Li Xiaofeng和Wu Shijing等人利用粒子群算法优化支持向量机的惩罚系数C和高斯核函数的 σ 建立高压断路器机械故障诊断，取得很好的效果，但是没有选择特征函数和优化其他参数 [ 27 ]。Yang Ailing和Li Weide等利用自相关函数提取输入信息特征，并利用灰狼算法和交叉验证优化最小二乘支持向量回归模型参数，建立短期电力负荷预测模型，实验室结果显示相对传统时间序列模型该方法能提高预测精度 [ 28 ]，但是对特征选择和模型参数没有优化。为此，本文利用粒子群–模拟退火算法构造混合进化算法技术，优化选择最佳的建模数据的特征，协同进化支持向量机的核函数类型以及参数，相应匹配最优模型参数，开展协同进化支持向量机径流预测建模研究，达到充分挖掘建模数据的有效特征信息，对不同的数据属性自适应选择不同的核函数类型，核函数的参数和模型参数。 2.2. 粒子群优化和模拟退火算法 粒子群优化(Particle Swarm Optimization， PSO)是由Kennedy和Eberhart在1995年提出的一种基于群体智能方法的进化计算技术，其思想主要来源于自然界中鸟群等生物种群觅食行为的仿真，它是通过个体之间的信息交换，互动协作来搜寻全局最优解，其算法简单、易实现同时又有深刻的群体智能背景，因此，在短短十几年间，获得了很快的发展，出现大量的研究成果，并在函数优化、神经网络训练、模式分类、模糊系统控制以及其他工程领域得到了广泛的应用 [ 29 ]。但它也有缺陷，如容易早熟，易陷入局部极值点，在进化后期粒子种群容易失去多样性，优化精度较差。因此，许多研究者提出了大量的改进算法，这些改进算法在一定程度上改善了基本粒子群算法的性能 [ 30 ]，粒子群算法具体运算流程如图1所示。 图1. 粒子群优化算法流程图 模拟退火算法(Simulated Annealing， SA)最早的思想是由N. Metropolis等人于1953年提出。1983年S. Kirkpatrick等成功地将退火思想引入到组合优化领域 [ 31 ]，它是基于Monte-Carlo迭代求解策略的一种随机寻优算法，其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。在迭代过程中不像粒子群算法只是用更好的值来代替原来的位置，在SA算法中伴随温度参数的不断下降，是以概率接受新状态在解空间中随机寻找目标函数的全局最优解，即在局部最优解能概率性地跳出并最终趋于全局最优 [ 32 ] [ 33 ] [ 34 ]，模拟退火算法运算流程如图2所示。 图2. 模拟退火算法流程图 2.3. 粒子群–模拟退火算法协同进化支持向量回归建模 对于给定样本 { ( x 1 ， y 1 ) ， ( x 2 ， y 2 ) ， ⋯ ， ( x N ， y N ) ， x i ∈ R n ， y i ∈ R } ，其中n为影响径流变量因子个数，N是样本个数，为此把选取的建模数数据分成训练数据集 { ( x 1 ， y 1 ) ， ( x 2 ， y 2 ) ， ⋯ ， ( x N 1 ， y N 1 ) ， x i ∈ R n ， y i ∈ R } 和测试数据 { ( x N 1 + 1 ， y N 1 + 1 ) ， ( x T + 2 ， y T + 2 ) ， ⋯ ， ( x N ， y N ) ， x i ∈ R n ， y i ∈ R } ，为此定义适应度函数为： f ( T ) = 1 N 1 ∑ i = 1 N 1 ( y i − y ^ i ) 2 (9) 本文是利用粒子群–模拟退火算法构造协同进化算法优化选择训练数据集的特征，核函数类型及其参数，支持向量参数，其数学模型为最大最小化离散随机动态规划问题： { max f ( T ) = 1 N 1 ∑ i = 1 N 1 ( y i − y ^ i ) 2 s . b .     y ^ i = ∑ i = 1 N 1 ( β i * − β i ) K ( c i x i ， x ) + b               { min ( ω ， ξ ， ξ * ) = 1 2 ω T ω + C ∑ i = 1 N ( ξ + ξ * ) s . b .     y i − ω T φ ( x i ) − b ≤ ε + ξ               − y i + ω T φ ( x i ) + b ≤ ε + ξ *               ξ ， ξ * ≥ 0 ， i = 1 ， 2 ， ⋯ ， N                 c i ∈ { 0 ， 1 } ， i = 1 ， 2 ， ⋯ N 1                 K j ∈ { K 1 ， K 2 ， K 3 ， K 4 } (10) 由于混合模型需要进化选择变量和核函数类型，优化对应核函数参数和模型参数，为此本文编码采用0-1布尔代数和浮点数混合编码方法，其中0-1编码主要控制变量选择和核函数类型，浮点数编码主要控制核函数参数和支持向量参数大小，控制变量选择编码0表示该变量没有选中，1表示该变量被选中；控制核函数选择00表示线性核函数、01表示多项式核函数、10表示高斯核函数、11表示Sigmoid核函数；所有0-1编码形成整数编码串，浮点数R 1 和R 2 对应核函数参数编码，R 3 和R 4 则对应SVR模型参数编码，所有浮点数形成浮点数编码串，具体构成和表示见表1。 Table 1 Relevant parameter coding components involved in the SVR mode 控制变量的选择 控制核函数的选择 核函数参数 模型的参数 X 1 X 2 … X N K 1 K 2 K 3 K 4 P 1 P 2 C e 0 1 … 1 00 01 10 11 R 1 R 2 R 3 R 4 表1. SVR模型所涉及的相关参数编码构成 粒子群–模拟退火混合进化SVR的具体实现步骤如下： 1) 参数初始化，随机生成n行 m 1 列布尔代数矩阵和n行 m 2 列浮点数矩阵，n表示种群个数，本文n = 40，粒子群种群个数40个， m 1 是影响径流变量建模因子个数和四个核函数决定，为此 m 1 = N + 4 ， m 2 是核函数参数个数和模型参数决定，故此 m 2 = 4 。布尔代数是控制矩阵，控制变量选择和核函数类型，浮点数矩阵取上的 [ 0 ， 10 ] 均匀分布随机数，它控制核函数的参数和SVR模型参数的大小。 2) 计算适应度，输入训练样本并标准化，通过解码每行布尔代数矩阵和浮点数矩阵，即可获得参与计算建模样本因子、核函数类型、核函数参数和模型参数，输入相应选择建模样本的特征，通过(10)式计算每个粒子的适应度，比较种群个体的适应度获得最好位置 p b e s t ( t ) ，以及群体中全局的最好位置 p g e s t ( t ) 。 3) 粒子速度更新方程为： v i t + 1 = ω v i t + c 1 r 1 ( p b e s t ( t ) − s i t ) + c 2 r 2 ( p g b e s t ( t ) − s i t ) (11) ω = ω max − ω max − ω min i t e r max ⋅ i t e r (12) 其中 ω max ， ω min 分别是惯性权重的最大值和最小值， i t e r ， i t e r max 分别是当前迭代次数和最大的迭代次数， c 1 ， c 2 是学习因子， r 1 ， r 2 是随机常数。 4) 粒子个体位置更新分为二进制离散粒子群和实数粒子群的更新，二进制离散粒子群位置更新方程为： s i t + 1 = { 0 ，       r ≥ 1 1 + exp ( − v i t + 1 ) 1 ，       r < 1 1 + exp ( − v i t + 1 ) (13) 其中，r为 [ 0 ， 1 ] 均匀分布的随机数。实数粒子群位置更新方程为： s i t + 1 = s i t + v i t + 1 (14) 5) 计算新的位置和旧的位置适应度之差 Δ f = f ( s i t + 1 ) − f ( s i t ) ，若适应度变大，则新的位置被接受，作为下一代的粒子，若适应度变小，对其进行模拟退火Metropolis抽样准则接收进入下一代。在 Δ f < 0 时，在 [ 0 ， 1 ] 均匀分布生成的随机数R，在当前温度 T i 下，如果 R > e ( Δ f / T i ) ，则接收到下一代 s i t + 1 ，否则，在当前温度 T i 下，对其粒子速度高斯扰动，产生新的速度，并以此更新位置，使其达到抽样稳定准则。 6) 反复进行2)~5)，直到适应度满足要求或者达到总的进化代数(总的进化代数)。 7) 把进化后的最后一代适应度最高个体解码，得到相应SVR模型建模样本的特征、核函数的类型、核函数的参数和模型参数，输入测试样本进行预测，HPSOSA-SVR算法的流程框架如图3所示： 图3. HPSOSA-SVR算法的流程图