1. 引言
近年来,对海量数据集的统计分析已成为人们日益关注的课题。数据集的规模不断扩大,部分原因是它们越来越多地被无处不在的信息传感移动设备、遥感技术和无线传感器网络等收集。这些数据的规模给传统的统计估计方法带来了新的挑战。数据库有数百个字段、数十亿条记录和数兆字节的信息并不少见。例如,大型文本语料库很容易超过内存限制,因此不能一次全部加载到内存中。例如,在给定样本的情况下,经典的估计方法通常会建立一个极大似然估计(MLE)问题,然后用确定性优化方法(如梯度下降法或牛顿法)求解极大似然估计。然而,当样本量过大时,采用这种方法有两个主要障碍。首先,在分析大小通常超过一台计算机容量的海量数据集时,机器没有足够的内存来一次加载整个数据集。其次,确定性优化方法计算量大,计算任务可能需要太长时间才能获得结果。为了解决存储限制和计算问题,最近在统计学中引入了起源于计算机科学文献的分布式计算方法。一种通用的分布式计算方案是将整个数据集划分为多个部分,然后对每个部分独立执行统计分析,即每台机器用存储在本地的数据形成一个局部估计量。最终的估计量将通过局部估计量之间的一些聚合来获得。
在分布式统计学习中,最简单和最流行的方法是平均法。平均最先是由McDonald et al. (2009) [1] 提出的,用于多项式回归,他们给出了估计误差的非渐近误差界,表明平均化降低了局部估计量的方差,但对偏差没有影响。在后续工作中,Zinkevich et al. (2010) [2] 研究了平均的一种变形,其中每台机器都在数据集的随机子集上计算具有随机梯度下降(SGD)的局部估计量,证明了他们的估计器收敛于集中估计器。Zhang et al. (2013) [3] 研究了两种基于大规模数据的分布式统计优化算法。第一个算法是平均法,第二种算法是一种基于适当形式的引导的新方法,只需要进行一轮通信。Cheyer et al. (2014) [4] 提出了一种分治方法,并使用几种计算密集型惩罚回归方法对其进行了分析。这种分治方法可以大大减少计算时间和计算机内存需求。2016年Jordan et al. [5] 提出了一种解决分布式统计学习问题的Communication-efficient Surrogate Likelihood (CSL)框架。2017年Lee et al. [6] 设计了一种在高维环境下实现分布式稀疏回归的高效通信方法。在2020年,Chen et al. [7] 研究并提出了主成分分析(PCA)的分布估计问题。
支持向量机(Support Vector Machine)是由Cortes和Vapnik [8] 于1995年最先提出的,是统计机器学习中最流行的方法之一,具有相对优良的性能指标,在图像分析、医学、神经网络等领域有着广泛的应用。SVM最初是针对经典的二分类问题提出的(Liu et al. 2007 [9]; Hsieh et al. 2013 [10]; Lian et al. 2018 [11] ),支持向量分类(Support Vector Classification)。然而,随着支持向量机方法理论的发展,支持向量机应用的领域越来越广泛,其中一个重要的应用是解决回归问题,即支持向量回归(Support Vector Regression)。支持向量回归与传统机器学习方法相比有较好的学习性能,是一种稳健而有效的估计方法,成为统计机器学习理论的研究热点。2004年Smola et al. [12] 详细概述了支持向量机用于回归和函数估计的基本思想。2009年ReShma et al. [13] 通过用正则化最小二乘的模糊支持向量回归,以此来处理相应的金融时间序列预测。2013年Rivas et al. [14] 提出了一种训练大规模SVR模型的求解方法,该方法将SVR问题转化为一个线性规划问题。2017年Anyu Cheng et al. [15] 通过基于混沌理论、支持向量回归的多源多尺度的交通流预测算法,并由支持向量回归模型来预测某市区的实际交通流量的变化。2019年S. Maldonado et al. [16] 提出了一套基于ε-SVR的时间序列预测问题滞后期自动选择的算法并且验证了该算法的优越性能。
SVR需要解决一个非光滑优化问题,这对于海量数据集来说计算是非常密集的。因此,在第二章中本文采用平滑技术(Horowitz 1998 [17]; Pang et al. 2012 [18]; Chen et al. 2018 [19] 和Wang et al. 2019 [20] ),提出了平滑支持向量回归(S-SVR)估计方法。然后,在有限的内存约束下,在第三章中提出了海量数据集的DC-SVR方法,该方法解决了内存限制和计算时间问题。在实践中,具有固定(非自适应)参数的学习过程只有在某些情况下才有其优势,因为不同的参数可能适合不同的数据,在以往的支持向量回归中,参数一般是提前指定的,它是非自适应性的,所以在第四章中我们考虑了SVR的自适应参数,并且给出了本文的算法。第五章中,本文通过数值模拟验证了该方法的有效性。
2. 支持向量回归
2.1. 经典支持向量回归
本文假设有n个样本
来自以下模型:
(1)
考虑随机变量
,其中
。定义
,
,超平面
。SVR的目标是估计由
定义的超平面通过求解优化问题:
(2)
通过引入两个松弛变量
,对SVR问题进行优化,对于任何样本
,当划分有误差时,松弛变量都大于0,误差不存在时松弛变量为0。其中观测值
出现误差时对应于松弛变量
,观测值
出现误差时对应的松弛变量是
。所以引入松弛变量后,可以将目标问题等式(2)转化为如下式(3)求解问题:
(3)
上述是一个凸二次规划问题,可以把式(3)中引入拉格朗日乘子,然后转化为求解它的对偶问题。对式(3)的每个约束条件添加拉格朗日乘子
,
,
,
,从而得到拉格朗日函数式(4):
(4)
把决策函数
代入上式,再令
对
和
的偏导为零可得
(5)
接着把上式代入拉格朗日函数
,最后得到SVR的对偶问题
(6)
上述过程的求解需要满足KKT条件:
(7)
由KKT条件,当且仅当
时
可以取非零值,当且仅当
时,
可以取非零值。换言之,仅当样本
不落入
间隔带中时,对应的乘子
和
才取非零值。除此之外,约束条件
、
不能同时成立,所以
和
中至少有一个为0。
把系数
代入决策函数
,可得到SVR解的形式:
(8)
对于等式(8),满足
的样本就是支持向量,这些样本点必然会落在
-间隔带之外,而在间隔带之间的样本点都满足
。所以SVR的支持向量仅仅是训练样本的一部分,支持向量的数量是一个与误差
有关的函数,误差
越大,支持向量的个数越少。
由于
和
不能全是零,根据KKT条件可知,对每个样本
有
或者
,进而可以得到
或者
成立,于是在求出
或
后,可以得到参数
。比如说,若
,则必有
,所以最后可以求出
的等式:
(9)
所以在对(6)的求解过程中得到
后,从理论上说,可任意选取满足
的样本通过等式(9)求得
。
2.2. 平滑支持向量回归估计
在这一部分中,我们提出了一种支持向量回归的线性型估计,称为平滑支持向量回归(Smooth Support Vector Regression, S-SVR)。带松弛变量的支持向量回归还有另一种解释,
-不敏感损失函数 + L2正则,就是最小化以下目标函数:
(10)
其中
是
-不敏感损失函数,
是正则化参数,
表示向量的欧几里德范数。
对于(10),由于绝对值和不敏感损失函数的存在,目标函数是不可微的,所以接下来要解决这个问题。首先,引入量Z来解决绝对值问题,使得
,所以
。即可以用
来取代绝对值
,因此
-不敏感损失函数可以写成
。所以目标函数变为:
其中
是
-不敏感损失函数。
然后基于平滑技术(Horowitz 1998 [17]; Pang et al. 2012 [18]; Chen et al. 2018 [19] 和Wang et al. 2019 [20] ),考虑了一个平滑函数
,即
。我们用平滑近似
代替
-不敏感损失函数,其中
是带宽,
近似示性函数
,
近似于
。所以
-不敏感损失函数
,并定义以下目标函数和估计量:
(11)
(12)
目标函数(12)是可微的,通过一阶最优性条件,解
满足:
(13)
其中
根据(13),可以通过以下公式表示
:
(14)
然而,这个不动点方程中没有
的封闭解,所以将(14)右边的
替换为一致的初始估计
。得到下面的S-SVR估计量:
(15)
初始估计量可以通过求解小样本的线性支持向量回归来构造,所以我们对小批量样本(如第一台机器上的样本,见下一节)的原始支持向量回归(10)进行了优化得到初始估计量。然后给定初始估计量,可以通过分布式方案解决(15)的S-SVR。
3. 分布式支持向量回归
当无法将所有数据加载到内存中时,很难求解(15)。但我们可以通过分布式方案来实现。具体来说,基于S-SVR,引入分治法提出分治支持向量回归估计(Divide and Conquer Support Vector Regression, DC-SVR)来计算
。
首先,将总数据集
分为L个子集
,每个子集的大小都相等
。用
表示第l台本地机器中的数据,第l台机器包含m数据。然后基于
获得初始估计值
:
(16)
为了计算
,对于每一批数据
,
,计算以下量:
(17)
在每台机器中计算
,然后计算出每一台机器中存储的数据所对应的局部估计量
:
(18)
所有机器接收到
计算出的局部估计量后,汇总数据将各个机器的局部估计量取平均得到最终估计量:
(19)
下面分析一下估计的渐近性质,根据(15),
和真实系数
之间的差为:
因此
可以被表示为
(20)
其中
为了证明所提出的估计量的渐近性质,首先引入一些正则性条件和假设。
假设1:e的密度函数
是Lipschitz连续的。另外,对于某些常量
,假设
。
假设2:平滑函数
满足
。进一步,假设
是两次可微的,并且它的二阶导数
是有界的。此外,我们假设带宽
。
假设3:对于某些
和
,假设
和
。
假设4:独立随机向量
满足
。
定理1. 在满足假设条件1-4的情况下,并且假设初始估计
满足
。然后我们有,
(21)
其中
(22)
证明:如果初始估计值
接近真实系数
,则M和Q分别接近
和
。
假设
,则有:
和
分别近似于
和
,所以
和
近似于
和
。
根据上述分析,当
近似
时,M和Q分别近似
和
。因此,
近似于:
假设有一个初始估计
且
,
。则有,
对于独立随机向量
且
,有
。所以能够得到:
根据上述结果,可以得出:
其中
设
和
,则有
其中
4. 参数优化
对于支持向量回归,模型参数的选择对于预测结果有着重要影响。在建立SVR模型后,需要对模型参数进行标定,使得最终模型具有较好的预测效果以及泛化能力,需要标定的模型参数及其具体含义如下:
1) 不敏感参数
该参数控制不敏感带宽度的大小,影响着支持向量的数目。当值较小时,模型回归精度较高,支持向量的数量增多,易产生过拟合。反之,模型回归精度较低,支持向量的数量减少,易导致模型欠拟合。
2) 正则化参数λ
SVR模型的惩罚因子,该参数控制模型的复杂度与模型训练误差项的比重,反映了对超出不敏感带宽度数据的惩罚程度。正则化参数λ取值过大,对超出不敏感带宽度数据的惩罚小,会使得模型训练误差增大,使得模型处于欠学习状态,而λ取值过小,能够提升模型回归精度,但模型泛化能力减弱,对于新数据的测试误差将变大,使得模型处于过学习状态。
许多研究人员使用交叉验证来选择参数(Chen et al. (2007) [21]; Anass et al. (2018) [22] )。在实践中,具有固定(非自适应)参数的学习过程只有在某些情况下才有其优势,因为不同的参数可能最适合不同的数据,这促使我们考虑对SVR中参数进行自适应。因此,基于上述分析,为了使SVR的预测效果达到最优,在本文中,我们提出一种自适应参数学习过程,根据不同的数据本文使用网格搜索和k-折交叉验证相结合的方法自适应的选择SVR模型最优参数组合
。
利用网格搜索和k-折交叉验证相结合的方法优化SVR中的参数
的具体步骤如下:
1) 建立网格坐标。设定参数λ和
的范围,设定搜索步长,在λ、
坐标系上建立二维网格,网格的节点就是λ、
组成的参数对;
2) 划分样本。利用k-折交叉验证法时,将原始样本均分成k组,每组轮流作为验证集,测试其他k-1组训练得到的模型;
3) 确定预测误差。取上述k次测试结果的均方误差的平均值作为本次模型的性能指标。对每一组λ、
的值,计算支持向量回归k次交叉验证的均方误差(MSE);
4) 确定最优参数组合。网格上所有交叉点处的参数组合经过k-折交叉验证后,MSE最小值所对应的参数组合就是模型的最优参数。
本文算法:
5. 数值模拟
在本节中,我们通过仿真来说明DC-SVR的性能。数据由以下模型生成:
其中
和X服从多元正态分布
,
,
。在我们的模拟中,误差
相互独立且产生于以下两种分布:
1) 标准正态分布,
;
2) 自由度为3的t分布,
。
最优参数组合
是由每组数据自动选择的。在模拟中,取k为5,即5-折交叉验证。根据经验,将参数
的变化范围设置为
,并将参数
的变化范围设置为
,真参数设置为
。使用核函数的积分作为平滑函数:
在本文中,所有模拟结果均为500次独立运行的平均值。我们将分而治之的方法应用于经典支持向量回归中,并与本文的方法进行比较。在这里,我们还用完整数据集(非分布式方法)估计参数,观察DC-SVR方法是否接近它。总结一下,我们将报告三种比较方法:
1) 用完整数据集估计SVR的非分布式方法(SVR-ALL);
2) naive分布式经典支持向量回归方法(ND-SVR);
3) 分治平滑支持向量回归方法(DC-SVR)。
为了评估不同方法的表现,本文采用平均绝对偏差(MAD)和均方误差(MSE)作为评价指标。
首先,在表1和表2中,固定了样本容量n和维数p的情况下,研究了机器容量m不同时
的MAD和MSE的情况。考虑了两种设置:
,
和
,
。

Table 1. MAD ( × 10 − 2 ) , MSE ( × 10 − 4 ) of SVR-ALL, ND-SVR and DC-SVR with p = 3 , n = 10 4
表1.
,
,SVR-ALL、ND-SVR和DC-SVR的
,

Table 2. MAD ( × 10 − 2 ) , MSE ( × 10 − 4 ) of SVR-ALL, ND-SVR and DC-SVR with p = 15 , n = 10 5
表2.
,
,SVR-ALL、ND-SVR和DC-SVR的
,
从表1和表2可以看出,在标准正态误差分布和t误差分布下,DC-SVR始终优于ND-SVR方法。当m变大时,DC-SVR和ND-SVR的MAD和MSE变小。从上述表还可以看出,与在整个数据集上计算的SVR-ALL相比,DC-SVR比ND-SVR方法更加接近SVR-ALL。
类似地,在表3和表4中,我们固定了p和m,改变样本大小n来观察估计量
的MAD和MSE。同样考虑了两种设置:
,
和
,
。
从表3和表4中,同样可以看出在标准正态误差分布和t误差分布下,DC-SVR的性能优于ND-SVR方法。我们还观察到,MAD和MSE随着样本n的增加而减少。上述表中结果也表明DC-SVR与在整个数据集上计算的支持向量回归估计量SVR-ALL进行比较时表现良好。

Table 3. MAD ( × 10 − 2 ) , MSE ( × 10 − 4 ) of SVR-ALL, ND-SVR and DC-SVR with p = 3 , m = 100
表3.
,
,SVR-ALL、ND-SVR和DC-SVR的
,

Table 4. MAD ( × 10 − 2 ) , MSE ( × 10 − 4 ) of SVR-ALL, ND-SVR and DC-SVR with p = 15 , m = 500
表4.
,
,SVR-ALL、ND-SVR和DC-SVR的
,
6. 结论
本文针对海量数据集提出了一种基于分而治之的平滑支持向量回归(DC-SVR)估计方法。我们的方法解决了内存限制和计算时间的问题,其模拟研究也表明了该方法的优越性。本文我们还提出了SVR参数的自适应学习过程,其中最优的参数
是由每次数据自动选择的。选择
的过程是实现DC-SVR的一个重要步骤,目前本文采用网格搜索和k-折交叉验证相结合的方法来优化参数。然而,或许可以设计一种更有效的方法,相关的研究需要进一步的工作。
NOTES
*通讯作者。