曹 斐,周 彧,王春晓,任梦宇,周 峰
(1.中国地质大学(武汉)机械与电子信息学院,武汉 430074;2.中建三局工程设计有限公司,武汉 430074)
在建筑行业,混凝土是最重要的结构材料之一,其抗压强度是指在外力作用下,单位面积所能承受的压力,又指抵抗压力破坏的能力。混凝土的抗压强度很大程度上决定了建筑的荷载、安全性能,因此如何快速有效地判断混凝土强度对施工质量和进度有重要意义[1]。
影响混凝土抗压强度的因素可分为两类,即多种原料用量比例和养护龄期,原料用量比例决定混凝土早期强度,经过一定的养护龄期后,各原料之间通过物理和化学反应充分交互作用,强度呈一定规律增长,特征复杂,各因素并非与混凝土强度呈现简单的线性关系,直接建立数学模型较为困难[2]。而机器学习可以挖掘到数据的深层规律,并通过训练得到可靠的预测模型,性质优良,因此有学者将机器学习应用于混凝土抗压强度预测的问题,采用的方法有神经网络、支持向量机。Asteris等[3]将反向传播神经网络(Back Propagayion Neural Network, BPNN)应用在自密实混凝土强度预测中,在仅有少量数据的情况下,四层的网络结构较好地完成了任务。Tsai等[4]提出将高阶神经网络(High-Order Neural Network, HONN)应用于混凝土抗压强度预测问题的研究,该网络通过使各输入参数之间形成多种乘积形式来实现非线性表达,形成了简单固定的公式。但只在同一龄期下进行了实验,未考虑全部参数,且乘积形式的表达力不足,得到的模型不够完备。高宝成等[5]利用核函数的非线性将原混凝土参数投向高维空间,将其转化为线性问题,获得支持向量回归(Support Vector Regression, SVR)预测模型,效果显著。SVR算法建立在严谨的数学理论基础上,泛化能力强,且核技巧使其擅于解决复杂的非线性问题,另外相对于其他机器学习方法,该方法对数据量的要求不高,少量样本即可进行良好的预测,因此在很多领域都得到了应用。陈通箭等[6]利用该算法预测轨道车站客流高峰期持续时间,以此提高轨道车站高峰时期的管理和运营能力。薛同来等[7]利用SVR预测水质,相比其他方法,误差明显降低。刘代刚等[8]利用SVR进行风力预测,以减小风力发电的随机性对电力系统的影响。由于SVR在各应用场景中的较强优势,本文将其作为基础算法进行混凝土抗压强度的预测。
关于SVR的优化,一个重要的手段是权重的引入,即加权型SVR(Weighted SVR,WSVR)。张讲社等[9]提出以误差大小为权重来调节惩罚参数,减少了噪声和孤立点对模型的影响。在时间序列中,张翔[10]提出通过随机森林计算出每个时间点对最终预测结果的重要度,将其作为权值对SVR核函数加权,实现对SVR时间序列预测效果的提升。本文使用的改进方法即为加权,传统的SVR往往会忽略样本优劣性,由于对所有样本出错的惩罚力度相同,劣势样本将使得实际得到的SVR模型与理想模型产生较大偏差,针对这一问题,本文提出了一种基于马氏距离的加权型SVR(WSVR based on Mahalanobis distance,MWSVR),根据训练样本到测试集中心的距离来反比量化惩罚因子,弱化异常数据在求解过程中的作用,使不同样本合理发挥作用。
SVR算法的前身是支持向量机(Support Vector Machine, SVM),原始SVM算法由Vapnik和Cortes提出来解决二分类问题[11],SVR是支持向量机在回归领域的一个重要分支。SVR解决的回归问题分为线性和非线性,但归根结底,实际解决的都是线性问题,针对非线性问题,SVR通过核函数将数据映射到高维空间,在高维空间中通过最小化结构风险来逼近函数,因为在建立模型过程中仅依靠了部分向量,所以称之为支持向量。
SVR的线性回归问题描述为:给定m个样本数据{(x1,y1),(x2,y2)…(xm,ym)},其中xi∈Rn(i=1,2…m),Rn表示n维的向量空间,R指实数域,xi代表已知的样本决策变量,包含多个因子,yi为待预测量,本文中指混凝土强度,为单一数值。如果在二维空间,SVR的目的是寻找一条直线,使所有的(xi,yi)尽可能在这条直线上;如果在高维空间,那就是寻找超平面使训练样本尽可能位于超平面上,公式描述如下[12]:
f(x)=ωTx+b
(1)
(2)
SVR的优化目标如下[12]:
(3)
式中:ε为允许误差带的宽度,当预测值f(xi)和预测值yi之间的误差超过ε时计算损失。ξi和ξ′i为松弛因子,代表预测误差。C为惩罚因子,C越大,表示对误差的惩罚力度越大,针对不同的样本,C是固定的。A项为正则项,代表模型复杂度,防止过拟合。另外还应该避免欠拟合,描述为 B项。
为求解优化问题式(3),每个约束条件引入拉格朗日乘子α、α′、μ、μ′[12]:
(4)
式(3)的对偶问题如下[12]:
(5)
先求解L函数的最小值问题,对ω、b、ξi和ξ′i求导,令其为0,得到四个等式,其中ω只与α和α′相关,如式(6)[12]所示:
(6)
将得到的四个等式代入式(4),可得式(7)[12]:
(7)
利用二次规划求解得到α和α′,根据其值得到支持向量,分为以下三类:
(1)若αi=C、α′i=0或α′i=C、αi=0,则xi为边界支持向量;
(2)若αi∈(0,C)、α′i=0或α′i∈(0,C)、αi=0,则xi为标准支持向量;
(3)若αi=0且α′i=0,则xi为非支持向量。
总之,α′i-αi≠0时,xi为支持向量,将参与到ω的计算当中,另外偏置b也由标准支持向量得到,如式(8)[12]:
(8)
引入核函数K,将原参数映射到高维空间,最终解的形式为[12]:
(9)
可以看到SVR模型的重点在于αi和α′i,(α′i-αi)的值决定了最终解的形式,而它们求解的一个重要边界条件为0≤α′i,αi≤C,这样的边界条件将全体样本一视同仁,惩罚力度相同,若能根据样本的差异,改变惩罚因子,令0≤α′i,αi≤Ci,异化边界条件,将得到更精准有效的αi和α′i的解的形式。
在回归问题中,一个可循的规律是输入参数越接近,输出就越接近,因此更好地训练与测试集接近的数据将提升测试质量。假设自变量为二维数据,维度为X1和X2,如图1,测试集中心大致反应了测试集的分布,根据训练样本的位置,可以看出它们偏离测试集中心的程度不同,因此需要相应的弱化或强化它们在训练时的作用,显然,样本1的强化意义较大,这可以通过加大惩罚力度实现,样本3则应弱化,减小其惩罚因子,允许其出错,使其在训练时几乎不发挥作用,近似剔除。因此根据训练样本到测试集中心的距离量化惩罚因子是合理的。
图1 二维数据集示例Fig.1 2D dataset example
选择合适的距离度量手段将会得到好的加权效果,马氏距离可以用来度量一个样本和一个群体之间的距离,相比其他度量方法,它与数据的量纲无关,还会考虑到各个变量之间的关系,可应用于本文的问题中。
首先定义均值向量μ=(μ1,μ2…μn),代表了每个特征的均值,协方差矩阵Cmat则代表了各个特征之间的相关关系,X的协方差矩阵公式描述如下[13]:
Cmat=cov(Xi,Xj)=E[(X-μ)T(X-μ)]
(10)
则空间中任意两点,如M、N两数据点之间的马氏距离DM(M,N)表达式如式(11)所示[13]:
(11)
现在需要构造惩罚因子Ci和距离1/DM的正比关系,由于幂次方是一种常见的、简单的正比关系,且基于前人经验[9],本文中假定了它们之间的关系如下:
(12)
式中:k和j是需要根据实际情况选择的参数。利用k、j、DM得到Ci后,约束条件不变,优化问题为:
(13)
本文也尝试了如Ci=sin(1/DM)(其中0≤1/DM≤π/2)这样的Ci和1/DM之间的正比关系以及其它幂的形式,但无良好成效,因此最终选定了式(12)的形式,式(12)以训练样本到测试集中心的马氏距离为权重实现了由C到Ci的转变,称为MWSVR。
惩罚因子的改变只对二次规划的求解过程产生影响,其他过程和SVR相同。因此MWSVR还有一些SVR中固有的参数需要调整寻优,分别是ε、σ和error,ε代表允许误差带的宽度,σ是高斯核函数的宽度,error是允许的判别误差,|α′i-αi|>error时,即可判定其为支持向量。这五个参数都可以影响支持向量的个数,对MWSVR的泛化能力造成影响,因此需要慎重选择。这些参数的选择使用了遗传算法,以测试集的均方根误差(Root Mean Squard Error, RMSE)为优化目标,RMSE可以用来衡量一组数据的预测值ypredict与真实值ytrue的偏差程度,如式(14)所示:
(14)
本文所使用的数据来自加州大学欧文分校,共计1 030条[14]。数据集示例如表1,均是未经处理的原始数据。输出变量是混凝土的抗压强度,单位为MPa。输入变量包括8项,首先为混凝土的原材料,包括水泥、炉渣、粉煤灰、水、减水剂、粗骨料和细骨料的用量,单位均为kg/m3,即每立方米混凝土中包含的各材料的质量,混合在一起的原材料经均匀搅拌,密实成型。各种原料的比例至关重要,以水与水泥用量的比值即水灰比为例来说明,图2为1 030条数据中各水灰比下的混凝土抗压强度均值,明显可看到二者成反比,这也与经验相符,水灰比较小时,颗粒间空隙小,水化反应产生的胶体容易填充空隙,蒸发后水孔较少,混凝土抗压强度较高。但由于数据局限性,图2是基于统计所描绘的折线,除水灰比外,其余自变量并不相同,故略有起伏。其次为养护龄期,刚成型的混凝土需要在一定的温度、湿度环境下养护硬化,常见龄期为7 d、28 d。在正常养护的条件下,混凝土强度将随龄期的增长而不断发展,最初7~14 d内强度增长较快,之后逐渐缓慢,28 d达到设计强度,之后会继续增长。本文所使用的数据也表明了这一点,图3展示了三组混凝土抗压强度数据和养护龄期的关系,其中各组内除养护龄期以外,自变量相同。
表1 混凝土数据集示例[14]Table 1 Concrete data set example[14]
续表
图2 混凝土抗压强度和水灰比的关系Fig.2 Relationship between concrete compressive strength and water cement ratio
图3 混凝土抗压强度和养护龄期的关系Fig.3 Relationship between concrete compressive strength and age
(15)
(16)
式中:X′和X″分别表示归一化和标准化后的数据。
遗传算法在本文中的寻优过程如下:
(1)初始化种群:随机生成50个个体,每个个体包括5条染色体,即k、j、ε、σ、error,它们的范围均设为0~200;
(2)计算各个个体的适应度RMSE,RMSE越小越好,因此这里取倒数,即1/RMSE,以便选择;
(3)选择:选择率为50%,即保留 25个个体作为父代,并生成25个子代。首先选择RMSE取最小值的个体,避免适应度高的个体丢失,再采用轮盘赌算法(个体被选中的概率与其适应度大小成正比)保留24个个体;
(4)编码:将数据变为二进制编码,以便交叉和变异,长度为22位;
(5)交叉:以概率70%随机挑选父代中的两个个体进行基因交叉,产生25个子代,保证种群总体数目不变;
(6)变异:以概率70%在随机位置对子代进行取反操作;
(7)解码:将二进制数重新转换为十进制;
(8)种群更新:25个父代及25个交叉变异产生的子代构成新种群;
(9)寻优次数已至上限100次,退出循环,否则返回(2)。
结合了遗传算法的MWSVR过程如图5所示,首先初始化50对参数k、j、ε、σ、error,再根据马氏距离DM和k、j得到惩罚因子Ci,根据ε、σ、error、Ci求解SVR对偶问题,由二次规划得到(αi-α′i),判断其值得到支持向量,再由其获得偏置b,SVR解的形式即可获得,在测试集上进行预测,得到预测值和真实值的均方根误差RMSE,保留使RMSE获得最小值的参数k、j、ε、σ、error的组合,并由遗传算法对其他的参数组合进行调整得到新的50对参数,经过多次交叉、变异、选优,得到了ε=0.102 3,σ=0.157 3,error=0.091 5,k=58.789 3,j=1.995的参数组合,在此参数下,MWSVR有最低的RMSE。
图4 改进的SVR流程图Fig.4 Flowchart of Genetic Algorithm
图5 改进的SVR流程图Fig.5 Improved SVR flowchart
本文的对比方法有决策树(Decision Tree, DT)、随机森林(Random Forest, RF)、BP神经网络、RBF(Radial Basis Function)神经网络和基础SVR。
图6 二叉树Fig.6 Binary tree
(1)决策树是一种以树形结构学习的算法模型,不断采用二元切的方式使数据分布在各个结点上,直至使所有样本在最终分叉结点上均有合理有效的预测值[15]。图6是一个简单的二叉树,根据变量t判断输出结果为V1还是V2,由于本文变量较多,且输出值范围广,所以树形结构较复杂,共有215个结点。
图7 BP神经网络结构Fig.7 The structure of BPNN
(2)随机森林则是由多棵决策树组成,所有决策树预测结果的均值即为其结果[16]。
(3)BP神经网络是多层前馈型神经网络中的一种,属于人工神经网络的一类,可包含任意多层结构,能对任何一种非线性输入输出关系进行模仿,是应用最广泛的网络之一[17]。图7即为本文的网络结构,输入层、隐含层和输出层结点数分别为8、16和1。
y的计算过程如式(17)、(18)所示。
(17)
(18)
式中:z和a分别表示线性变换和非线性变换,g为激活函数,b为偏置,z(1)、a(1)、g(1)和b1位于网络第一层,z(2)、g(2)和b2位于网络第二层。
(4)RBF神经网络也属于人工神经网络,结构为固定的三层,隐含层为径向基函数,虽然结构简单不可变,但具有良好的全局逼近能力,训练速度快[18],计算过程如下:
(19)
为了增加实验结果的客观性,所有实验都在统一训练集和测试集上进行,占比均为50%,且所有参数的选取都是以RMSE为优化目标。关于数据预处理,因决策树和随机森林是基于概率的模型,所以除了这二者,其他方法都经过了和MWSVR同样的归一化和标准化。
本文的评价指标包括时间和RMSE。
(1)时间:这里包括训练过程和测试过程的时间,不同算法复杂程度不同,所用时间的差异也较大,因此可作为衡量算法效率的指标,这里是10次实验训练和测试过程所用的平均时间,编程工具为MATLAB,计算机基本配置为Intel(R) Core(TM) i5-6200U和DDR4 8G。
(2)RMSE:表2列出了两种指标下各种方法的效果。
表2 各种方法关于混凝土抗压强度预测的效果对比Table 2 Comparison of various methods on prediction of compressive strength of concrete
先令MWSVR与决策树和随机森林作比较,MWSVR的时间复杂度明显较高,这是因为决策树和随机森林的数学过程简单,且没有参数需要逐步训练,但在混凝土问题中,这两种方法预测效果并不好;再相较于两种神经网络方法,无论是时间复杂度还是预测效果,MWSVR都具有明显的优势。最后比较MWSVR和SVR,它们所用时间相当,因为它们的求解过程相同,但MWSVR的RMSE较SVR得到了改善,而且当人为去除一些距离较远的数据时,最终结果并没有发生明显变化,说明 WSVR中异化惩罚因子的确起到了近似剔除异常数据的作用。
表3 交叉验证下的SVR和MWSVR的对比Table 3 Comparison of SVR and MWSVR with cross-validation
为了避免此结论的偶然性,将数据分为3份进行交叉验证,单独对比了SVR和MWSVR的RMSE,结果如表3所示中的1~3三组结果。这佐证了 MWSVR的优势,证明了MWSVR是一种集合了速度和效果的混凝土抗压强度预测方法。
关于MWSVR的劣势,这里做如下说明:MWSVR捕捉异常数据的能力是有限的,因为利用的是自变量之间的距离,考虑极端情况,若某个训练样本的自变量就在测试集数据中心附近,但因变量相对正常值非常大或非常小,那么它将被赋予很大的惩罚因子,但却是异常数据,显然会对模型造成干扰,因此文章的MWSVR虽然有效,但不能捕捉所有异常数据,这也是它的局限之处。在其他实验中,这种想法得到了验证,MWSVR算法只在部分数据中较SVR得到了提升。虽然在预测模型中,MWSVR和SVR时间复杂度无大差别,但在寻优过程中,MWSVR参数增多,较为复杂。
提出了一种基于马氏距离的加权型SVR,它避免了测试集数据资源的浪费,并利用训练集和测试集的马氏距离实现惩罚因子的差异化,使得不同样本在决定最终模型的过程中占有不同重要性,训练过程更有针对性,增强了训练的意义,并找到了马氏距离和惩罚因子之间的一种简单有效的幂形式的映射公式,二者呈反比关系。在混凝土抗压强度的预测问题中,分别用决策树、随机森林、BP神经网络、RBF神经网络、标准SVR与MWSVR对比,实验表明,MWSVR未造成时间复杂度的增加,且预测效果最好、误差最低,在混凝土抗压强度预测问题中行之有效。但该方法只能在早期粗略估计混凝土抗压强度,若需要更细致的输出则需要提供更多数据细节。
针对目前的不完善之处,对下一步的工作总结如下:(1)提高算法的普适性,使其能够有效识别各类异常数据,惩罚因子的加权化更加合理,使之在绝大多数情况下效果近似于或优于基础SVR;(2)寻找更佳的惩罚因子和马氏距离的映射形式,取得更加明显的提升效果;(3)本文只使用了一种混凝土数据源进行实验,且1030条数据对于8维的自变量来说并不充足,应寻找更多数据加以实验,实现更加精确的预测。